France Data MCP
Provides AI agents with access to French public registries including company records, property sale prices, housing energy performance, and short-term rental rates via MCP tools.
README
France Data MCP
French public registries as tools for AI agents: company records, property sale prices, housing energy performance, and short-term rental rates.
Endpoint: https://france-data-mcp.fly.dev/mcp (streamable HTTP)
Why this exists
The three REST APIs behind it are listed on API marketplaces, where they compete with 98,000 others for search placement. MCP is a different channel with different economics and much less crowding: Apify returns 80% of revenue to developers, MCPize 85%, against RapidAPI's 75%. More importantly, a listing that does not rank on one marketplace earns nothing there — a second channel decorrelates that risk.
This server owns no data. It is distribution.
Tools
| Tool | Answers |
|---|---|
search_companies |
Find a French company by name, trade name or address |
lookup_company |
One company by SIREN, or the owner of a SIRET |
validate_company_id |
Is this SIREN/SIRET well-formed, and does it exist |
property_prices |
Median and percentile €/m² for a commune |
property_price_trend |
Did this local market rise or fall, year by year |
energy_profile |
Energy label distribution, and the share barred from letting |
prices_by_energy_label |
What an energy rating is worth locally |
short_let_market |
Nightly price percentiles for any city worldwide |
Design notes
Docstrings are the interface. The model reads them to choose a tool and its arguments, so they say what a tool answers and when to prefer it — not how it works.
Responses are trimmed, not proxied. An LLM pays for every token it reads. Returning the full REST payload would make each call expensive and slow to reason over, so each tool returns the answer rather than the record.
Caveats pass through unchanged. Several of these statistics are easy to misread — most sharply, poorly rated homes selling at a premium in old city centres. An agent reporting a median should be able to report its limits too, so the caveat text travels with the number.
Access control
MCP_ACCESS_TOKEN unset leaves the server open, which is the right setting while
the goal is directory listing and discovery. Set it to require a bearer token when
selling access directly. Marketplaces handle their own billing, so a server
distributed there runs open and lets the marketplace gate it.
Configuration
| Variable | Purpose |
|---|---|
COMPANY_API_SECRET / PROPERTY_API_SECRET / AIRBNB_API_SECRET |
Proxy secrets for the three backends |
PUBLIC_HOST |
Hostname allowed past DNS-rebinding protection |
MCP_ACCESS_TOKEN |
Optional bearer token |
The SDK rejects unknown Host headers to block DNS rebinding and allows only
localhost by default. Without PUBLIC_HOST declared, every real request answers
421 Misdirected Request — which is exactly what happened on first deploy.
Running locally
pip install -r requirements.txt
uvicorn app.main:app --port 8080
Deploying
flyctl deploy --remote-only
Scale-to-zero, one machine.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.