Install guide / Cursor
Connect Normi to Cursor
Declare Normi in Cursor's mcp.json: the agent can then query DVF sales joined to DPE energy ratings and the BDNB, right from the editor.
https://mcp.normi.fr/mcpConfiguration checked on 10 October 2026 against Cursor's official MCP documentation. Cursor MCP documentation
Before you start
- A Normi account: sign in with Google, 500 free credits a month.
- For the API-key connection or the STDIO package: a
normi_…key, created in Dashboard → Tokens. It is shown only once. - For the STDIO package: Node.js 18 or later (
npx).
Remote connection (HTTP Streamable)Recommended
Add this block to the configuration file. With no header, Cursor detects Normi's OAuth sign-in: on first use it opens normi.fr, you sign in and approve Cursor. No key to copy; if your account doesn't have one yet, a free key is created on approval.
File: ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project)
{
"mcpServers": {
"normi": {
"url": "https://mcp.normi.fr/mcp"
}
}
}API-key variant
For a machine without a browser, or if you prefer a key: export NORMI_API_KEY in your shell, then reference it with Cursor's ${env:…} syntax. Never paste the key in clear text into a committed .cursor/mcp.json.
{
"mcpServers": {
"normi": {
"url": "https://mcp.normi.fr/mcp",
"headers": {
"Authorization": "Bearer ${env:NORMI_API_KEY}"
}
}
}
}Alternative: STDIO package
If your environment doesn't allow remote servers, run the npm package @normi/mcp-dvf locally. It relays calls to the same Normi server.
{
"mcpServers": {
"normi": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@normi/mcp-dvf"],
"env": {
"NORMI_API_KEY": "${env:NORMI_API_KEY}"
}
}
}
}A first prompt to try
The agent calls analyze_dpe_price_premium (10 credits). An excerpt of the real response, captured on 10 October 2026 against the 2014–2025 DVF data:
{
"classes": {
"B": { "count": 192, "median_prix_m2": 5479, "vs_median_pct": 18.5 },
"C": { "count": 827, "median_prix_m2": 4788, "vs_median_pct": 3.6 },
"D": { "count": 1421, "median_prix_m2": 4547, "vs_median_pct": -1.6 },
"F": { "count": 239, "median_prix_m2": 4619, "vs_median_pct": -0.1 },
"G": { "count": 94, "median_prix_m2": 4679, "vs_median_pct": 1.2 }
},
"summary": "Class B homes sell at +18.5% vs. median; class A at -3%"
}In Lyon 6 (69006), B-rated apartments sell 18.5% above the area median, while F and G stay roughly at the median. This sale × DPE join doesn't exist as such in any public source.