> ## Documentation Index
> Fetch the complete documentation index at: https://docs.urbanora.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP

> Brancher Cursor ou Claude sur Urbanora avec la même clé API.

Le [Model Context Protocol](https://modelcontextprotocol.io) expose chaque route partenaire comme un outil. L'agent découvre les paramètres ; vous n'écrivez pas de client HTTP.

URL : `https://mcp.urbanora.fr/mcp` (local : `http://127.0.0.1:8094/mcp`).

Auth : **la même clé** que le REST, en Bearer (ou `X-Api-Key`). Le MCP ne vérifie pas le hash : il forward vers `partner-api`. Un 401 amont fait échouer l'outil proprement.

Pas d'OAuth utilisateur en v1. Sessions en mémoire processus — un replica, ou sticky session.

## Cursor

`~/.cursor/mcp.json` (ou Settings → MCP) :

```json theme={null}
{
  "mcpServers": {
    "urbanora": {
      "url": "https://mcp.urbanora.fr/mcp",
      "headers": {
        "Authorization": "Bearer upk_live_VOTRE_CLE"
      }
    }
  }
}
```

En local : `"url": "http://127.0.0.1:8094/mcp"` + la même clé.

## Claude

Même URL Streamable HTTP, même header `Authorization: Bearer upk_…`. Ajoutez le connecteur depuis les paramètres MCP du client.

## Outils

Un outil = un endpoint. Commencer par `qualify_building`. `find_contact` est facturable au succès.

| Outil | partner-api |
| - | - |
| `qualify_building` | `GET /v1/buildings/qualify` |
| `geocode_address` | `GET /v1/search/address` |
| `get_imb` | `GET /v1/imb/{code}` |
| `get_syndic` | `GET /v1/syndics/{siren}` |
| `get_syndic_portfolio` | `GET /v1/syndics/{siren}/portfolio` |
| `search_zone` | `POST /v1/zones/search` |
| `aggregate_zone` | `POST /v1/zones/aggregate` |
| `find_contact` | `POST /v1/contacts/find` |
| `get_contact_job` | `GET /v1/contacts/jobs/{jobId}` |
| `get_sources` | `GET /v1/meta/sources` |
| `get_usage` | `GET /v1/meta/usage` |

Sans clé, `POST /mcp` → **401**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.