Install guide / n8n

Connect Normi to an n8n AI agent

In n8n, the MCP Client Tool node gives an AI Agent access to the Normi tools: DVF sales, DPE energy ratings and the BDNB, inside your automated workflows (market monitoring, lead enrichment, reports).

https://mcp.normi.fr/mcp

Settings checked on 10 October 2026 against the n8n documentation and the MCP Client Tool node source code (node version 1.4). n8n MCP Client Tool 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

  1. In your workflow, add an AI Agent node and connect a chat model to it.
  2. On the agent's Tool input, add MCP Client Tool.
  3. Fill in the Endpoint and the HTTP Streamable transport.
  4. Authentication Bearer Auth: create a credential with your normi_… key as the token.
  5. Choose which tools the agent can see, then run the workflow.
Endpoint:          https://mcp.normi.fr/mcp
Server Transport:  HTTP Streamable
Authentication:    Bearer Auth
  Credential → Bearer Token: normi_YOUR_TOKEN
Tools to Include:  Selected
  → analyze_dpe_price_premium, get_market_overview, resolve_location

The node also offers MCP OAuth2. An API key is still the simplest choice for a workflow that runs unattended: it doesn't depend on any browser session.

Scoping the agent

A short system message avoids unnecessary calls. Normi requires a location filter on every request: asking for resolve_location first avoids errors on municipality names.

You are a real estate analyst. For any question about a place,
call resolve_location first to get the canonical filters,
then the relevant Normi tool. Always state how many sales were used.

STDIO package

n8n's built-in node doesn't start STDIO servers: use the remote connection above. To call Normi without an agent, the HTTP Request node also works with the REST API (reference in French), which exposes the same data.

A first prompt to try

“What is the quick-resale rate for houses in Rennes, and are those resales profitable?”

The agent calls detect_flips (10 credits). An excerpt of the real response, captured on 10 October 2026 against the 2014–2025 DVF data:

{
  "commune": "RENNES",
  "periode": { "mois": 24, "date_debut": "2023-12-31", "date_fin": "2025-12-31" },
  "type_local": "Maison",
  "transactions_revente": 938,
  "flips_detectes": 11,
  "taux_de_flip": 1.17,
  "marge_brute_mediane": -6040,
  "marge_mediane_pct": -1.44,
  "duree_detention_mediane_jours": 651
}

Over 24 months, 11 of the 938 house resales in Rennes (1.17%) are quick resales, with a median gross margin of -€6,040 (-1.4%). In a workflow, connect the agent's output to an email or a Google Sheets row for a monthly report. The response fields are in French because the API's field names are.

Troubleshooting

The node lists no tools, or fails to connect↓
Check the transport: choose HTTP Streamable, not Server Sent Events. Nodes created at version 1 only have an “SSE Endpoint” field: delete the node and add a new MCP Client Tool to get the current version.
401 even though the key is right↓
With Bearer Auth, enter the key alone (normi_…), without the word “Bearer”. With Header Auth, the name is Authorization and the value is “Bearer normi_…”.
The agent calls too many tools, or the wrong ones↓
Set “Tools to Include” to Selected and keep only the tools the workflow needs. Every call costs credits: a loosely scoped agent can spend a lot in one run.
Timeout on a large call↓
Some analyses take a few seconds. Raise the node's Options → Timeout (60,000 ms by default) if your instance cuts off earlier.
Error 401 — Unauthorized↓
API key: it is missing, mistyped or revoked (the normi_ prefix is part of the key). Check that the environment variable is visible to the client. OAuth: access has expired or been revoked; reconnect from the client.
“no active API key” (403) on every call↓
Your account no longer has an active key. Create one in the dashboard: an OAuth connection resumes on the next call, a key-based config needs the new key.
Insufficient credits↓
The message comes back in the tool response, not as HTTP 402. The free plan tops up to 500 credits on the 1st of each month; you can also buy credits from the dashboard.
Error 429 — Rate limited↓
You are over your plan's requests-per-minute limit. Wait a few seconds, or cap how many calls your agent makes in parallel.

Next steps