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

# Serveur MCP

> Connecter un agent LLM à Locus sur Streamable HTTP.

Locus expose ses capacités comme **outils MCP curés** pour les agents LLM. Les
outils sont définis à la main (un par capacité) et pointent vers le même moteur
que l'API REST — ce n'est pas un miroir 1:1 des routes HTTP.

**Endpoint :** `https://mcp.locusmedical.fr/mcp` · **Transport :** Streamable HTTP

## Connecter un client

Locus s'authentifie avec un jeton bearer statique `lsk_…` (OAuth est sur la
[roadmap](#authentification), pas encore disponible). La configuration dépend de
la capacité de votre client à envoyer un en-tête `Authorization` personnalisé.

### Clients qui supportent les en-têtes personnalisés

Cursor, Cline, VS Code, Windsurf et la plupart des clients MCP par fichier de
config peuvent appeler l'endpoint directement. Pointez-les sur l'URL avec votre
clé en bearer :

```json theme={null}
{
  "mcpServers": {
    "locus": {
      "url": "https://mcp.locusmedical.fr/mcp",
      "headers": { "Authorization": "Bearer ${LOCUS_API_KEY}" }
    }
  }
}
```

### Claude (Desktop / claude.ai)

Les connecteurs natifs de Claude attendent OAuth 2.1, que Locus n'implémente pas
encore. Utilisez le pont [`mcp-remote`](https://www.npmjs.com/package/mcp-remote)
— un petit proxy local qui injecte votre en-tête `Authorization` — dans
`claude_desktop_config.json` :

```json theme={null}
{
  "mcpServers": {
    "locus": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://mcp.locusmedical.fr/mcp",
        "--header", "Authorization: Bearer ${LOCUS_API_KEY}"
      ]
    }
  }
}
```

<Note>
  Utilisez la forme **URL + en-têtes** pour les clients qui gèrent les en-têtes ;
  utilisez **`mcp-remote`** pour Claude tant qu'OAuth natif n'est pas disponible.
</Note>

## Authentification

Chaque appel d'outil est authentifié avec la même clé `lsk_…` que l'API REST
(voir [Authentification](/fr/authentication)). Le bearer voyage dans les en-têtes
de la requête ; une clé manquante ou invalide fait renvoyer une erreur à l'outil.

OAuth 2.1 est sur la roadmap ; en attendant, l'auth par clé API (en-tête direct,
ou via `mcp-remote` pour Claude) est la voie supportée.

## JSON-RPC brut

Vous pouvez aussi piloter le serveur directement. Lister les outils :

```bash theme={null}
curl -X POST https://mcp.locusmedical.fr/mcp \
  -H "Authorization: Bearer $LOCUS_API_KEY" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

Appeler un outil :

```bash theme={null}
curl -X POST https://mcp.locusmedical.fr/mcp \
  -H "Authorization: Bearer $LOCUS_API_KEY" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"search","arguments":{"query":"HTA gravidique","limit":5}}}'
```

## Ce que renvoient les outils

Chaque outil renvoie à la fois :

* **`content`** — un résumé texte lisible, pour les clients qui affichent du texte.
* **`structuredContent`** — le JSON complet, typé par un schéma de sortie annoncé.

Voir le [catalogue d'outils](/fr/mcp/tools) pour le routage et le détail par outil.
