Aller au contenu

Utiliser le serveur MCP

Ce guide montre comment connecter un client MCP externe — Claude Code, un éditeur, MCP Inspector — au serveur d’outils propre à Control Center.

Control Center enregistre 110 outils et les sert au moyen du Model Context Protocol, à la version de protocole 2024-11-05. Des familles entières d’outils que vous pourriez attendre sont absentes : il n’y a aucun outil de réunion ni de calendrier, et aucun outil de projet.

La surface MCP partage l’écouteur principal de cc_server. Il n’y a pas de port MCP distinct.

Point de terminaison Méthode Objet
/mcp POST Transport HTTP streamable — c’est ce que parle un client
/mcp DELETE Terminer une session
/sse GET Flux de notifications envoyées par le serveur

Une installation locale par défaut se trouve donc à http://127.0.0.1:9030/mcp.

  1. Allez dans Paramètres → Serveur → Serveurs MCP
  2. Lisez la carte Serveur MCP — elle indique s’il est en cours ou arrêté, ainsi que le port sur lequel il écoute

La surface est activée par défaut sur une installation neuve, donc un client sur la boucle locale fonctionne sans détour par les paramètres. Démarrer au lancement de l’app détermine s’il revient après un redémarrage ; Démarrer / Arrêter sont des commandes de session qui ne modifient pas cette préférence.

Le serveur se lie à la boucle locale par défaut, donc le point de terminaison n’est joignable que depuis la machine sur laquelle cc_server s’exécute, à moins de l’avoir démarré avec --bind any.

Pointez votre client vers le point de terminaison HTTP streamable. La forme exacte de la configuration appartient à votre client ; l’URL est la même dans un cas comme dans l’autre.

{
"mcpServers": {
"control-center": {
"type": "http",
"url": "http://127.0.0.1:9030/mcp"
}
}
}

Claude Code ne prendra pas cette configuration dans un .mcp.json de projet — il réserve les serveurs MCP propres à un projet à une invite d’approbation à laquelle un claude -p non interactif ne répond jamais. Passez la configuration explicitement :

Fenêtre de terminal
claude --mcp-config /path/to/mcp.json --strict-mcp-config

--strict-mcp-config force Claude à n’utiliser que ce fichier, de sorte que le même serveur n’est pas aussi découvert depuis le projet et enregistré deux fois.

Point de contrôle : demandez au client de lister ses outils. Vous devriez voir des entrées mcp__* couvrant les tickets, les espaces, la mémoire, le graphe de code et la révision.

  1. Dans Paramètres → Serveur → Serveurs MCP, sur la ligne Jeton d’authentification, appuyez sur Définir et collez un jeton
  2. Envoyez-le comme Authorization: Bearer <token> à chaque requête POST /mcp

Une surface sans jeton refuse tout appelant hors boucle locale avec un 403. C’est un échec en position fermée par conception : c’est le jeton qui rend possible, à lui seul, le service hors hôte.

Les changements de jeton s’appliquent immédiatement à la surface active — sans redémarrage.

Chaque outil qui touche des données propres à un espace de travail exige workspace_id, et un appel sans cet identifiant est refusé plutôt que résolu contre un espace de travail « courant » quelconque :

{
"workspace_id": "acme",
"title": "Fix login bug",
"priority": "high"
}

L’identifiant est celui de l’URL de votre navigateur ou de l’application : /workspaces/<workspace_id>/…. Les seules exceptions sont les outils qui couvrent réellement plusieurs espaces de travail, comme list_workspaces et les outils de fil de nouvelles — le fil de nouvelles est propre à chaque utilisateur et un agent n’a pas d’utilisateur à lui, donc ces outils agissent sur les fils du propriétaire du serveur.

Les outils de portée dépôt vérifient en plus que le dépôt est lié à cet espace de travail.

  • Filtrage par mode. Un appel est résolu côté serveur selon le mode de l’espace de l’agent appelant. Un agent en mode lecture seule ne peut pas atteindre un outil d’écriture en omettant space_id — le mode est plutôt retrouvé à partir de son exécution active.
  • Garde-fous d’action. Les outils de mutation déclarent leurs classes d’effets et passent par la même politique que le reste du produit. Voir Configurer les garde-fous.
  • Confirmation. Certains outils destructeurs construisent une charge utile de confirmation qui doit être approuvée avant que l’appel se poursuive.

Le catalogue complet est annoncé dans tools/list sans filtrage de découverte — un client MCP externe refuse d’appeler un outil qui n’est pas dans sa liste en cache, donc masquer des outils les casse plutôt que de faire du rangement.

  • Vérifiez que la carte Serveur MCP indique qu’il est en cours
  • Vérifiez que le port correspond à celui de votre cc_server
  • Dans Claude Code, vérifiez que vous avez passé --mcp-config et --strict-mcp-config

Erreur 403 depuis une machine qui n’est pas le serveur

Section intitulée “Erreur 403 depuis une machine qui n’est pas le serveur”

Aucun jeton porteur n’est configuré. Définissez-en un et envoyez-le.

Un appel d’outil échoue avec « Missing or invalid argument: workspace_id »

Section intitulée “Un appel d’outil échoue avec « Missing or invalid argument: workspace_id »”

Ajoutez workspace_id. Il n’y a pas d’espace de travail implicite.

Outils MCP liste le catalogue. Appelez le nom exactement tel qu’il y figure.