promptgarten 🌱
🌍 ZH
Guide●●●7 min · +65 XP

Écrire son propre serveur MCP

Un serveur MCP met des outils, des données ou des modèles à disposition de n'importe quel client compatible MCP – de Claude Code à Antigravity.

Trois briques de base

Un serveur MCP propose à un client comme Claude Code ou Antigravity trois types de capacités : les Tools (des fonctions que le modèle appelle activement, par exemple une requête en base de données), les Resources (des données passives comme des fichiers ou des réponses d'API, fournies par l'application) et les Prompts (des modèles prêts à l'emploi que les utilisateurs·rices choisissent délibérément).

Le déroulement minimal

Un serveur tourne comme un processus à part et communique avec le client via un protocole défini (généralement l'entrée/sortie standard ou HTTP). Au démarrage, le client interroge tools/list, reçoit en retour une liste de définitions d'outils avec un schéma JSON pour les paramètres, et appelle tools/call avec les bons arguments quand c'est nécessaire. Ton serveur n'a donc qu'à : enregistrer des outils avec un nom, une description et un schéma d'entrée, et renvoyer le résultat lors d'un appel.

SDKs officiels

L'organisation modelcontextprotocol maintient des SDKs officiels pour Python, TypeScript, Java, Kotlin, C#, Go, PHP, Ruby, Rust et Swift – tu n'as pas besoin d'implémenter le protocole à la main.

Connexion à un client

Un serveur terminé s'enregistre dans la configuration du client (par exemple mcpServers dans Claude Code ou mcp_config.json dans Antigravity), généralement avec une commande et des arguments pour démarrer le processus serveur. Il apparaît ensuite dans le gestionnaire MCP du client, et ses outils deviennent disponibles pour le modèle.

EXEMPLE

Noyau minimal d'un serveur Python (avec le SDK officiel) : un décorateur `@mcp.tool()` enregistre une fonction `get_forecast(latitude, longitude)` comme outil – le client la découvre automatiquement via `tools/list` et l'appelle quand c'est nécessaire.

🛠️ EXERCICE — À TOI DE JOUER

Construis avec un SDK MCP officiel (par exemple Python) un serveur minimal avec exactement un tool, et connecte-le à un client compatible MCP.

  1. Installe le SDK officiel pour ton langage et crée un serveur avec un seul tool (par exemple une fonction qui renvoie la date du jour).
  2. Enregistre le serveur dans la configuration MCP de ton client (par exemple Claude Code ou Antigravity) avec la commande de démarrage et les arguments.
  3. Ouvre le gestionnaire MCP du client (par exemple /mcp), vérifie que le serveur est connecté, et laisse le modèle appeler ton tool.

AUTO-VÉRIFICATION

  • Le client a-t-il détecté automatiquement ton tool via tools/list, sans que tu l'aies enregistré manuellement ?
  • Que se passe-t-il si ton processus serveur (en transport STDIO) écrit ses logs par erreur sur stdout au lieu de stderr ?
  • Pourrais-tu maintenant connecter ce même serveur à un autre client MCP sans le réécrire ?

QUIZ RAPIDE

Qu'est-ce qui distingue un « Tool » MCP d'une « Resource » MCP ?

SOURCES

SUJETS LIÉS

MCP (Model Context Protocol) : comment les outils IA se connectent ●●○Tool Use : comment les LLM appellent des outils ●●○Claude Code : l'agent CLI d'Anthropic ●●○Plugins : extensions pour outils de codage IA ●○○