DVF Paris
Click on "Deploy 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: condosplit
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 deployed
Maintenance
Related MCP Connectors
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
French public-data MCP: cross-ref health, demographics, business, geo & real-estate.
Real estate MCP server for Morocco — search, valuation, market analysis, 17 tools.
Private persistent memory for Claude, ChatGPT & Gemini via MCP - semantic search, zero-code setup.
Related MCP Servers
AlicenseAqualityDmaintenanceMCP server that gives Claude access to Dutch mobility data via Studio Bereikbaar's OGC API, enabling querying of travel surveys, traffic models, and accessibility maps.16MIT- FlicenseAqualityDmaintenanceMCP server for Claude Code that automates condominium expense splitting, schema visualization, and payment history management through natural language.7-
- FlicenseBqualityDmaintenanceAn MCP server that gives Claude live access to Azure pricing and cost data — retail prices, VM comparisons, reservation analysis, architecture estimates, and actual subscription spend.9-
- AlicenseAqualityBmaintenanceAn MCP server for rental apartment aggregation, enabling geographic polygon search, semantic vector search, and LLM-powered analysis. Integrates with AI agents like Claude Desktop to manage apartment hunting workflows.152MIT