# Serveur MCP BlockVectra : RPC blockchain et outils de documentation pour les agents IA

> Source: https://docs.blockvectra.com/fr/guides/mcp-server/

Le serveur MCP BlockVectra, disponible à l'adresse `https://docs.blockvectra.com/mcp`, offre aux développeurs et aux agents IA 15 outils pour les appels RPC blockchain, l'état des chaînes, les tarifs et la documentation. Aucune API key n'est nécessaire pour s'y connecter : 10 outils n'en exigent jamais ; les autres utilisent `x-api-key` depuis les en-têtes de votre client. Installation en une ligne : `claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp`

Le point de terminaison est [le point de terminaison MCP](https://docs.blockvectra.com/mcp) (POST HTTP recevant du JSON-RPC 2.0 ; GET renvoie 405), servi en MCP Streamable HTTP et sans état. Pour les fichiers HTTP, le JSON public et le flux d'inscription qui l'accompagne, consultez [Connecter les agents IA](https://docs.blockvectra.com/fr/guides/ai-agents/).

## Outils

| Outil | Rôle | API key | Accès |
| --- | --- | --- | --- |
| `read_doc` | Lit une page de la documentation au format Markdown. | Non requise | Lecture seule |
| `search_docs` | Recherche dans les titres, chemins et résumés de la documentation. | Non requise | Lecture seule |
| `list_chains` | Liste les chaînes prises en charge, leurs paramètres et leurs politiques de méthodes (GET /v1/chains). | Non requise | Lecture seule |
| `get_status` | Lit l'état en direct du service et des chaînes (GET /v1/status). | Non requise | Lecture seule |
| `get_pricing` | Lit les poids en Compute Units, les paramètres du forfait gratuit et les valeurs par défaut des clés (GET /v1/plans). | Non requise | Lecture seule |
| `estimate_usage` | Estime les Compute Units et le coût d'une ou plusieurs méthodes. | Non requise | Lecture seule |
| `how_to_get_api_key` | Renvoie les étapes pour obtenir une API key et les formes d'authentification des requêtes. | Non requise | Lecture seule |
| `get_method_info` | Affiche la disponibilité d'une méthode par chaîne, son poids en CU et son prix. | Non requise | Lecture seule |
| `explain_error` | Recherche la signification d'une erreur, sa facturation, son caractère réessayable et la marche à suivre. | Non requise | Lecture seule |
| `list_docs` | Liste toutes les pages de la documentation avec leur chemin et leur titre. | Non requise | Lecture seule |
| `rpc_call` | Exécute une méthode JSON-RPC en lecture seule sur une chaîne prise en charge. | Facultative : sans clé uniquement pour les méthodes de public.methods de la chaîne | Lecture seule |
| `data_api_get` | Envoie une requête GET à la Data API d'une chaîne prise en charge. | Requise (en-tête x-api-key) | Lecture seule |
| `get_account` | Lit le solde du compte, les CU et les limites de débit (GET /v1/account). | Requise (en-tête x-api-key) | Lecture seule |
| `get_deposit_address` | Lit l'adresse de dépôt du compte, les réseaux ouverts et les tokens. | Requise (en-tête x-api-key) | Lecture seule |
| `send_raw_transaction` | Diffuse une transaction brute déjà signée (eth_sendRawTransaction). | Facultative : sans clé uniquement pour les méthodes de public.methods de la chaîne | Diffuse une transaction signée |

Ce tableau est généré à partir du registre d'outils du serveur ; il liste donc chaque outil renvoyé par `tools/list`. Chaque outil accepte les arguments et renvoie les champs décrits dans son propre schéma `tools/list`.

### Sécurité de l'API key

Les outils avec clé nécessitent une API key pour exécuter des requêtes Data API, des opérations de compte ou des méthodes RPC en dehors des méthodes publiques d'une chaîne.

* **Lecture stricte depuis les en-têtes** : l'API key est lue uniquement à partir des en-têtes de requête HTTP du client MCP (`x-api-key: rgw_...` ou `Authorization: Bearer rgw_...`).
* **Ne jamais inclure de clés dans le chat** : ne transmettez jamais d'API keys ou de clés privées dans les arguments d'outils et ne les collez pas dans le chat. Les arguments d'outils et l'historique du chat entrent dans les journaux de conversation et les contextes ; la transmission de clés dans les arguments sera rejetée.

S'ils sont appelés sans en-tête d'API key, les outils avec clé renvoient `isError: true` et orientent l'agent vers `how_to_get_api_key` et le [guide d'inscription programmatique](https://docs.blockvectra.com/fr/guides/programmatic-signup/?ref=docs-mcp-server).

## Installation dans votre client

Vous pouvez vous connecter au serveur MCP de documentation BlockVectra à l'adresse `https://docs.blockvectra.com/mcp` à travers les environnements et frameworks de développement courants.

Commencez sans API key. Connectez-vous au point de terminaison MCP, appelez list\_chains, puis lisez quickstart avec read\_doc. Ajoutez une API key dans les en-têtes HTTP de votre client lorsque vous avez besoin de la Data API ou des outils de compte. L'accès RPC sans clé suit la politique de méthodes publiques de chaque chaîne.

L'en-tête `x-api-key` est facultatif. Sans API key, les clients peuvent utiliser tous les outils de documentation en lecture seule (`read_doc`, `search_docs`, `list_docs`), la découverte des chaînes (`list_chains`), l'état en direct (`get_status`), l'estimation des tarifs (`get_pricing`, `estimate_usage`), les explications d'erreurs (`explain_error`) et les méthodes autorisées sur les points de terminaison publics. Lorsque vous utilisez des outils avec clé (`rpc_call` sur des méthodes restreintes, `send_raw_transaction`, `data_api_get`, `get_account` et `get_deposit_address`), configurez l'en-tête `x-api-key` avec votre API key.

### Claude Code

Connectez-vous au serveur MCP à l'aide de la CLI :

```bash
claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp
```

Pour inclure une API key facultative pour les outils authentifiés, transmettez l'option `--header` (ou `-H`) et référencez une variable d'environnement au lieu de coller la clé. Utilisez des guillemets simples pour que votre shell ne l'expanse pas ; Claude Code expanse `${BLOCKVECTRA_API_KEY}` au démarrage de la session :

```bash
claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp \
  --header 'x-api-key: ${BLOCKVECTRA_API_KEY}'
```

La même configuration sous forme de fichier `.mcp.json` au niveau du projet (ce que `claude mcp add --scope project` écrit également) :

```json
{
  "mcpServers": {
    "blockvectra-docs": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp",
      "headers": { "x-api-key": "${BLOCKVECTRA_API_KEY}" }
    }
  }
}
```

Exportez `BLOCKVECTRA_API_KEY` dans l'environnement qui lance `claude`. Claude Code vous demande d'approuver un serveur `.mcp.json` de niveau projet la première fois que vous exécutez `claude` dans ce répertoire ; d'ici là, `claude mcp list` l'affiche comme `Pending approval`.

Pour les scripts et la CI, transmettez le fichier avec `--mcp-config` et autorisez les outils du serveur. La clé reste dans l'environnement et le client MCP ajoute lui-même l'en-tête, de sorte que l'agent n'a pas besoin d'une commande shell qui expanse `$BLOCKVECTRA_API_KEY` (la vérification des permissions de Claude Code rejetait de telles commandes en mode non interactif avec `Contains simple_expansion`) :

```bash
claude -p "Use rpc_call to run eth_blockNumber on base_mainnet" \
  --mcp-config ./mcp.json --allowedTools "mcp__blockvectra-docs__*"
```

Lorsque la clé est définie, le résultat de `rpc_call` contient aussi `cu_charged` et `balance_units` ; un appel sans clé ne renvoie que la réponse JSON-RPC. Si la variable n'est pas définie, le client envoie le texte littéral de l'en-tête et le serveur répond `invalid_api_key` (code d'erreur `-32024`) au lieu de basculer vers le point de terminaison sans clé.

Documentation officielle : [Documentation MCP de Claude Code](https://code.claude.com/docs/en/mcp).

### Cursor

Ajoutez le serveur à la configuration MCP de Cursor :

```json
{
  "mcpServers": {
    "blockvectra": {
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Cursor prend également en charge l'installation en un clic via des liens profonds (deep links) à l'aide de la configuration encodée en base64 `eyJ1cmwiOiJodHRwczovL2RvY3MuYmxvY2t2ZWN0cmEuY29tL21jcCJ9` (représentant `{"url":"https://docs.blockvectra.com/mcp"}`) :

```text
cursor://anysphere.cursor-deeplink/mcp/install?name=blockvectra&config=eyJ1cmwiOiJodHRwczovL2RvY3MuYmxvY2t2ZWN0cmEuY29tL21jcCJ9
```

Lorsque vous avez besoin d'outils authentifiés (Data API ou gestion de compte), ajoutez l'objet `headers` avec votre API key :

```json
{
  "mcpServers": {
    "blockvectra": {
      "url": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "${env:BLOCKVECTRA_API_KEY}"
      }
    }
  }
}
```

La forme `${env:NAME}` suit la documentation de Cursor, qui résout les variables dans `url` et `headers` ; cette forme n'a pas été exécutée avec Cursor ici. Placez le fichier dans `.cursor/mcp.json` (projet) ou `~/.cursor/mcp.json` (global).

Documentation officielle : [Documentation MCP de Cursor](https://cursor.com/docs/context/mcp) et [Liens d'installation Cursor](https://cursor.com/docs/context/mcp/install-links).

### VS Code

Dans VS Code, configurez le serveur dans `.vscode/mcp.json` sous la clé de premier niveau `servers` avec `type: "http"` :

```json
{
  "servers": {
    "blockvectra": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Lorsque vous avez besoin d'outils authentifiés, ajoutez l'objet `headers` :

```json
{
  "servers": {
    "blockvectra": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}
```

Pour stocker des identifiants sensibles, VS Code permet de référencer des variables d'entrée ou des fichiers d'environnement au lieu d'écrire les clés en dur. Vous pouvez aussi ajouter des serveurs avec l'action de la palette de commandes `MCP: Add Server`.

Documentation officielle : [Documentation des serveurs MCP de VS Code](https://code.visualstudio.com/docs/copilot/customization/mcp-servers) et [Référence de configuration MCP de VS Code](https://code.visualstudio.com/docs/agents/reference/mcp-configuration).

### Codex

Ajoutez le serveur à l'aide de la CLI OpenAI Codex :

```bash
codex mcp add blockvectra --url https://docs.blockvectra.com/mcp
```

Dans `config.toml`, configurez l'URL du serveur :

```toml
[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
```

Lorsque vous avez besoin d'outils authentifiés, configurez les en-têtes de requête dans `config.toml` :

```toml
[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
http_headers = { "x-api-key" = "YOUR_API_KEY" }
```

Vous pouvez aussi faire correspondre l'en-tête à une variable d'environnement :

```toml
[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
env_http_headers = { "x-api-key" = "BLOCKVECTRA_API_KEY" }
```

Documentation officielle : [Documentation MCP de la CLI OpenAI Codex](https://learn.chatgpt.com/docs/extend/mcp?surface=cli).

### Gemini CLI

Dans la configuration de Gemini CLI, ajoutez le serveur sous `mcpServers` en utilisant `httpUrl` pour Streamable HTTP :

```json
{
  "mcpServers": {
    "blockvectra": {
      "httpUrl": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Lorsque vous avez besoin d'outils authentifiés, ajoutez l'objet `headers` avec votre API key :

```json
{
  "mcpServers": {
    "blockvectra": {
      "httpUrl": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}
```

Documentation officielle : [Documentation du serveur MCP de Gemini CLI](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md).

### OpenAI Responses API

Lors de l'appel de l'OpenAI Responses API, transmettez le serveur MCP dans le tableau `tools` avec `type: "mcp"` :

```bash
OPENAI_API_BASE="https://api.openai.com/v1"
curl "$OPENAI_API_BASE/responses" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "tools": [{
      "type": "mcp",
      "server_label": "blockvectra",
      "server_url": "https://docs.blockvectra.com/mcp",
      "require_approval": "never"
    }],
    "input": "..."
  }'
```

Lorsque vous avez besoin d'outils authentifiés, ajoutez le champ `headers` dans la définition de l'outil :

```json
{
  "type": "mcp",
  "server_label": "blockvectra",
  "server_url": "https://docs.blockvectra.com/mcp",
  "headers": { "x-api-key": "YOUR_API_KEY" },
  "require_approval": "never"
}
```

Documentation officielle : [Guide des outils MCP d'OpenAI](https://developers.openai.com/api/docs/guides/tools-connectors-mcp) et [Référence de l'OpenAI Responses API](https://developers.openai.com/api/reference/resources/responses/methods/create).

### Windsurf

Dans Windsurf, configurez le serveur sous `mcpServers` en utilisant le champ `serverUrl` :

```json
{
  "mcpServers": {
    "blockvectra": {
      "serverUrl": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Lorsque vous avez besoin d'outils authentifiés, ajoutez l'objet `headers` avec votre API key :

```json
{
  "mcpServers": {
    "blockvectra": {
      "serverUrl": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}
```

Windsurf permet aussi de référencer des variables d'environnement, par exemple `"x-api-key": "${env:BLOCKVECTRA_API_KEY}"`.

Documentation officielle : [Documentation MCP de Windsurf](https://docs.devin.ai/desktop/cascade/mcp).

### Claude Desktop et claude.ai

Les connecteurs personnalisés se configurent via l'interface utilisateur :

* **claude.ai** : accédez à **Customize** > **Connectors**, cliquez sur **+ Add**, sélectionnez **Add custom connector** et saisissez l'URL :
  ```text
  https://docs.blockvectra.com/mcp
  ```
* **Claude Desktop** : ouvrez le menu des paramètres du compte et configurez les connecteurs personnalisés via l'interface des connecteurs.

En se connectant à l'URL, Claude peut rechercher dans les guides, lire la documentation en Markdown, consulter les chaînes prises en charge, vérifier l'état du réseau et calculer des estimations de tarifs sans identifiants.

Documentation officielle : [Guide des connecteurs personnalisés de Claude](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).

### Vérifier la connexion et dépanner

Dans Claude Code, `claude mcp list` affiche l'état de chaque serveur. Pour connaître le nombre d'outils réellement enregistrés, exécutez une fois la commande avec la sortie en flux et lisez l'événement `init`, ou consultez le journal de débogage :

```bash
claude -p "say ok" --mcp-config ./mcp.json --output-format stream-json --verbose
claude -p "say ok" --mcp-config ./mcp.json --debug mcp --debug-file mcp-debug.log
```

Une connexion fonctionnelle affiche `"status": "connected"` et les outils `mcp__blockvectra-docs__*` (tels que `list_chains` et `rpc_call`) dans l'événement `init`. Dans le journal de débogage, cherchez les lignes relatives à `blockvectra-docs`, comme `Successfully connected` et `Failed to fetch tools`. Si le serveur est `connected` mais qu'aucun outil n'apparaît, lisez la raison indiquée par le journal de débogage (`--debug mcp`) après `Failed to fetch tools`. Pour vérifier que le serveur lui-même fonctionne correctement, utilisez les appels curl ci-dessous.

### Appeler le point de terminaison MCP sans client

Le point de terminaison est du JSON-RPC 2.0 sur POST HTTP ; n'importe quel client HTTP peut donc l'appeler :

```bash
curl -s https://docs.blockvectra.com/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

curl -s https://docs.blockvectra.com/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"rpc_call","arguments":{"chain":"base_mainnet","method":"eth_blockNumber","params":[]}}}'
```

Le premier appel renvoie la liste des outils ; le second renvoie la réponse JSON-RPC dans `result.structuredContent`. Les identifiants de chaîne sont des slugs tels que `base_mainnet` ; obtenez-les avec `list_chains`. Les outils avec clé nécessitent l'en-tête `x-api-key` ; cet appel lit votre compte avec la clé issue d'une variable d'environnement :

```bash
curl -s https://docs.blockvectra.com/mcp -H 'content-type: application/json' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_account","arguments":{}}}'
```

Il renvoie `key_id`, `plan`, `balance_units`, `balance_cu` et les limites de débit de la clé dans `result.structuredContent`. Si votre agent exécute des commandes via un shell soumis à des permissions, cette expansion de variable peut être bloquée ; configurez plutôt l'en-tête dans le client MCP.

## FAQ

### Le serveur MCP BlockVectra nécessite-t-il une API key ?

Non. La connexion ne demande aucune clé, et 10 des 15 outils n'en exigent jamais. `rpc_call` et `send_raw_transaction` s'exécutent sans clé uniquement pour les méthodes de `public.methods` de la chaîne (lisez-les avec `list_chains`). `data_api_get`, `get_account` et `get_deposit_address` nécessitent l'en-tête `x-api-key`.

### Le serveur MCP peut-il créer ou révoquer des API keys ?

Non. Aucun outil ne crée, ne liste ni ne révoque d'API keys. `how_to_get_api_key` ne renvoie que les étapes ; un agent crée une clé via HTTP en suivant l'[inscription programmatique](https://docs.blockvectra.com/fr/guides/programmatic-signup/?ref=docs-mcp-server), et les personnes en créent une dans la console. Les clés ne passent jamais par les arguments d'outils.

### Un agent peut-il envoyer des transactions via le serveur MCP ?

Il peut diffuser, pas signer. `rpc_call` rejette les méthodes d'écriture telles que `eth_sendRawTransaction`, `eth_sendTransaction`, `eth_sign` et `personal_*`. `send_raw_transaction` diffuse via `eth_sendRawTransaction` une transaction que vous avez déjà signée localement ; le serveur ne détient ni ne voit jamais de clé privée.

### Que se passe-t-il en cas d'échec d'un appel ?

Les erreurs d'outils renvoient `isError: true` avec une raison structurée. Utilisez `explain_error` ou la [référence des codes d'erreur](https://docs.blockvectra.com/fr/errors/) pour savoir si un échec est facturé et s'il faut réessayer.

## Pages associées

* [Connecter les agents IA](https://docs.blockvectra.com/fr/guides/ai-agents/) : fichiers lisibles par machine, points de terminaison JSON publics et flux de sélection de chaîne.
* [Inscription programmatique](https://docs.blockvectra.com/fr/guides/programmatic-signup/?ref=docs-mcp-server) : créez une API key avec une signature de portefeuille, sans navigateur.
* [Recettes pour frameworks d'agents](https://docs.blockvectra.com/fr/guides/agent-frameworks/) : ElizaOS, viem, wagmi et Coinbase AgentKit.
* [Codes d'erreur](https://docs.blockvectra.com/fr/errors/) : chaque erreur avec ses règles de facturation et de nouvel essai.
