Install guide / Gemini CLI / Antigravity CLI
Connect Normi to Gemini CLI and Antigravity CLI
Add Normi to Google's command-line agent: Gemini CLI, or Antigravity CLI (agy), which replaces it for individual accounts. The agent can then query DVF sales, DPE energy ratings and the BDNB from the terminal.
https://mcp.normi.fr/mcpConfigurations checked on 10 October 2026 against the official Gemini CLI and Antigravity documentation. Gemini CLI 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).
agy) for individual accounts on 18 June 2026. Gemini CLI is still used with Gemini Code Assist Standard/Enterprise or Vertex AI. Both are covered below.Gemini CLI: remote connection (HTTP Streamable)Recommended
Add the server, then run /mcp auth normi inside Gemini CLI: it opens the Normi sign-in in your browser. --scope user writes to ~/.gemini/settings.json (all projects); without it, the config goes into the project's .gemini/settings.json.
gemini mcp add --transport http --scope user normi https://mcp.normi.fr/mcp # then, inside Gemini CLI: /mcp auth normi
With an API key, without a browser:
export NORMI_API_KEY=normi_YOUR_TOKEN gemini mcp add --transport http --scope user \ --header "Authorization: Bearer $NORMI_API_KEY" normi https://mcp.normi.fr/mcp
Or directly in the file. Gemini CLI uses httpUrl for HTTP Streamable (url means SSE) and replaces $NORMI_API_KEY with the environment variable:
File: ~/.gemini/settings.json
{
"mcpServers": {
"normi": {
"httpUrl": "https://mcp.normi.fr/mcp",
"headers": {
"Authorization": "Bearer $NORMI_API_KEY"
}
}
}
}Gemini CLI: STDIO package
A local alternative: the npm package @normi/mcp-dvf relays calls to the same Normi server.
File: ~/.gemini/settings.json
{
"mcpServers": {
"normi": {
"command": "npx",
"args": ["-y", "@normi/mcp-dvf"],
"env": {
"NORMI_API_KEY": "$NORMI_API_KEY"
}
}
}
}Antigravity CLI (agy)
Antigravity reads ~/.gemini/config/mcp_config.json (global) or .agents/mcp_config.json (project). A remote server is declared with serverUrl. Normi supports dynamic client registration, so Antigravity handles OAuth with no other setting. Start authentication from the agent settings (Customizations tab → Authenticate), then check with /mcp.
File: ~/.gemini/config/mcp_config.json
{
"mcpServers": {
"normi": {
"serverUrl": "https://mcp.normi.fr/mcp"
}
}
}With an API key. Antigravity's documentation doesn't describe environment-variable substitution in this file, so don't commit it if it contains the key.
{
"mcpServers": {
"normi": {
"serverUrl": "https://mcp.normi.fr/mcp",
"headers": {
"Authorization": "Bearer normi_YOUR_TOKEN"
}
}
}
}A first prompt to try
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": "NANTES",
"periode": { "mois": 24, "date_debut": "2023-12-31", "date_fin": "2025-12-31" },
"type_local": "Maison",
"transactions_revente": 1967,
"flips_detectes": 50,
"taux_de_flip": 2.54,
"marge_brute_mediane": -11500,
"marge_mediane_pct": -3.31,
"duree_detention_mediane_jours": 624
}Not at the median: over 24 months, 50 of the 1,967 house resales in Nantes are quick resales (2.54%), with a median gross margin of -€11,500 (-3.3%) after about 21 months of ownership. Normi only returns aggregates, never an address. The response fields are in French because the API's field names are.