DVF Paris
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DVF Parisshow me real estate prices in the 11th arrondissement"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DVF Paris — MCP App
An interactive MCP App that displays Paris real estate prices per arrondissement, directly inside Claude.
Built with the MCP Apps SDK (@modelcontextprotocol/ext-apps).

What it does
Ask Claude about Paris real estate prices and get an interactive widget with:
Fullscreen mode (v0.8): split layout with map (60%) and info panel (40%), interactive search
Interactive map (Leaflet + OpenStreetMap) highlighting the arrondissement
Choropleth sections (v0.6): cadastral sections colored by median price, clickable for details
Price stats: average price/m², median price/m², number of sales
Apartments / Houses toggle
Comparison mode: compare two arrondissements side-by-side with a bar chart
Address search (v0.5): search by address and get stats for the cadastral section
UI-driven search (v0.8): search addresses and browse arrondissements directly from the widget
Data source: DVF (Demandes de Valeurs Foncieres) from data.gouv.fr.
Related MCP server: nyc-property-intel
Architecture
Claude MCP Server UI (iframe)
│ │ │
│── "prix Paris 11" ──────>│ │
│ │── get-dvf-stats ───────>│
│ │ structuredContent │── Map + Stats
│ │ │
│── "compare 6e vs 11e" ──>│ │
│ │── compare-dvf-stats ───>│
│ │ mode: "compare" │── Map + Bar chart
│ │ │
│── "prix rue Roquette" ──>│ │
│ │── search-dvf-address ──>│
│ │ mode: "address" │── Map + Marker + CompareClaude calls
get-dvf-stats,compare-dvf-statsorsearch-dvf-addressThe tool returns data + a reference to
ui://dvf/mcp-app.htmlClaude fetches the resource and displays it in a sandboxed iframe
The UI receives data via
app.ontoolresult
MCP Tools
Tool | Input | Output |
|
| Price stats for one arrondissement |
|
| Side-by-side comparison with bar chart |
|
| Stats for cadastral section + comparison with arrondissement |
Stack
Component | Technology |
MCP Apps SDK |
|
MCP Server |
|
Build | Vite + TypeScript |
UI | Vanilla JS |
Map | Leaflet + OpenStreetMap (no API key needed) |
Charts | Pure SVG (no dependencies) |
Transport | stdio (Claude Desktop) or Streamable HTTP |
External APIs
API | Usage |
Real-time DVF stats | |
Address geocoding | |
Cadastral section geometries (GeoJSON) |
Setup
npm install
npm run buildClaude Desktop configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dvf-paris": {
"command": "bash",
"args": ["-c", "cd /path/to/dvf-mcp-app && npx tsx main.ts --stdio"]
}
}
}Then restart Claude Desktop.
Development
# Watch mode (UI hot reload + server)
npm run dev
# Build only
npm run build
# Run server (Streamable HTTP on port 3001)
npm run serveProject structure
dvf-mcp-app/
├── server.ts # MCP Server + Tools + Resource
├── main.ts # Entry point (stdio + HTTP)
├── mcp-app.html # UI shell (HTML)
├── src/
│ ├── mcp-app.ts # UI logic (map, chart, host communication)
│ ├── mcp-app.css # Widget styles
│ ├── api/ # External API clients
│ │ ├── cadastre.ts # Cadastre GeoJSON client
│ │ ├── data-gouv.ts # MCP data.gouv client
│ │ └── geoplateforme.ts # Geocoding client
│ └── data/
│ ├── dvf-paris.json # Pre-computed stats (fallback)
│ └── arrondissements.geojson.json # GeoJSON boundaries
├── package.json
├── tsconfig.json
└── vite.config.tsRoadmap
v0.1 — Basic stats widget
v0.2 — Interactive map with Leaflet
v0.3 — Comparison mode (2 arrondissements)
v0.4 — Real-time data via data.gouv.fr API (with JSON fallback)
v0.5 — Address search with cadastral section stats
v0.6 — Choropleth cadastral sections (clickable, color-coded by price)
v0.7 — Link to recent transactions (optional)
v0.8 — Fullscreen mode with interactive search (split layout, callServerTool)
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/benoitvx/dvf-mcp-app'
If you have feedback or need assistance with the MCP directory API, please join our Discord server