Install guide / Windsurf (Devin Desktop)
Connect Normi to Windsurf (Devin Desktop)
Windsurf has been called Devin Desktop since June 2026. Add Normi to its mcp_config.json file: the agent can then query DVF sales, DPE energy ratings and the BDNB from the editor.
https://mcp.normi.fr/mcpConfiguration checked on 10 October 2026 against the official Devin Desktop documentation (current format, and the older Windsurf/Cascade format). Devin 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 and save. With no header, Devin Desktop detects Normi's OAuth sign-in: click Authenticate on the server's entry, sign in to normi.fr and approve the application.
File: ~/.config/devin/mcp_config.json (Windows: %APPDATA%\devin\mcp_config.json)
{
"mcpServers": {
"normi": {
"url": "https://mcp.normi.fr/mcp"
}
}
}For a single project, use .devin/mcp_config.json at the repository root (or .devin/mcp_config.local.json, which Git ignores).
API-key variant
Export NORMI_API_KEY in your environment, then reference it with ${env:…}: the key never appears in clear text in the file.
{
"mcpServers": {
"normi": {
"url": "https://mcp.normi.fr/mcp",
"headers": {
"Authorization": "Bearer ${env:NORMI_API_KEY}"
}
}
}
}Older Windsurf format (Cascade)
Installs still named Windsurf read ~/.codeium/windsurf/mcp_config.json and expect the serverUrl field. Open it from the … menu of the Cascade panel → MCPs section → “Open MCP config file”.
File: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"normi": {
"serverUrl": "https://mcp.normi.fr/mcp",
"headers": {
"Authorization": "Bearer ${env:NORMI_API_KEY}"
}
}
}
}Alternative: STDIO package
If remote servers are blocked, run the npm package @normi/mcp-dvf locally. It relays calls to the same Normi server.
{
"mcpServers": {
"normi": {
"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": {
"A": { "count": 329, "median_prix_m2": 3571, "vs_median_pct": 4 },
"C": { "count": 2474, "median_prix_m2": 3526, "vs_median_pct": 2.7 },
"D": { "count": 4671, "median_prix_m2": 3395, "vs_median_pct": -1.1 },
"F": { "count": 1103, "median_prix_m2": 3303, "vs_median_pct": -3.8 },
"G": { "count": 418, "median_prix_m2": 3440, "vs_median_pct": 0.2 }
},
"summary": "Class A homes sell at +4% vs. median; class F at -3.8%"
}In central Nantes the gap between classes is clear: +4% above the median for class A, -3.8% for class F. These medians describe the market; they are not adjusted for location or year of sale.