Créer son serveur MCP.
Un serveur MCP permet à Claude, ChatGPT ou Cursor d’utiliser directement vos outils et vos données. Ce guide vous mène du dossier vide à un serveur branché à Claude, avec du code testé sur la version actuelle du SDK. Et si vous préférez qu’on le construise pour vous, c’est notre métier.
Par Simon Duchène, fondateur de Canopy · Mis à jour le
Qu’est-ce qu’un serveur MCP, et pourquoi en créer un ?
Le Model Context Protocol (MCP) est un standard ouvert, que Anthropic a annoncé et publié en open source le 25 novembre 2024, qui définit comment une IA se connecte à des outils externes (voir l’introduction officielle). Un serveur MCP déclare des outils (des actions que l’IA peut déclencher), des ressources (des données qu’elle peut lire) et des prompts. Une fois branché, l’assistant découvre ces outils seul et les appelle quand la conversation le demande.
Pour une entreprise, c’est la suite logique du GEO : après être cité par les IA, devenir utilisable par elles. Un client qui demande à son assistant de vérifier un stock, de réserver un créneau ou de comparer vos offres peut le faire sans passer par votre site.
Le standard n’appartient plus à un seul éditeur : le 9 décembre 2025, Anthropic a fait don de MCP à l’Agentic AI Foundation, fonds dédié de la Linux Foundation cofondé par Anthropic, Block et OpenAI. À cette date, Anthropic recensait plus de 10 000 serveurs MCP publics actifs et plus de 97 millions de téléchargements mensuels des SDK Python et TypeScript.
Comment créer un serveur MCP en cinq étapes ?
Prérequis : Node.js 22 ou plus récent. Le code ci-dessous a été compilé et exécuté avec le SDK officiel @modelcontextprotocol/sdk en version 1.31.
- 01
Installer le SDK
Un projet Node.js en module ES, le SDK officiel et Zod pour décrire les paramètres des outils. Python dispose d’un SDK équivalent si votre équipe y est plus à l’aise.
terminal mkdir mon-serveur-mcp && cd mon-serveur-mcp npm init -y && npm pkg set type=module npm install @modelcontextprotocol/sdk zod npm install -D typescript @types/node - 02
Déclarer un premier outil
Un outil, c’est un nom, une description que l’IA lit pour décider quand l’appeler, un schéma de paramètres et une fonction. Ici, une recherche dans un catalogue produit. Remplacez le tableau par un appel à votre base ou à votre API.
src/index.ts import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { z } from 'zod'; const CATALOGUE = [ { nom: 'Chaise en chêne', prix: 149, stock: 12 }, { nom: 'Table basse noyer', prix: 389, stock: 3 }, ]; const server = new McpServer({ name: 'catalogue', version: '1.0.0' }); server.registerTool( 'rechercher_produit', { title: 'Rechercher un produit', description: 'Cherche un produit du catalogue par mot-clé. Renvoie le nom, le prix et le stock.', inputSchema: { query: z.string().describe('Mot-clé, par exemple « chaise »') }, }, async ({ query }) => { const resultats = CATALOGUE.filter((p) => p.nom.toLowerCase().includes(query.toLowerCase()), ); return { content: [{ type: 'text', text: JSON.stringify(resultats) }] }; }, ); await server.connect(new StdioServerTransport()); - 03
Compiler et tester avec l’Inspector
MCP Inspector est l’outil de test officiel : il lance votre serveur, liste ses outils et vous permet de les appeler à la main avant de les confier à une IA.
terminal npx tsc --init --module nodenext --target es2022 --outDir dist --rootDir src npx tsc npx @modelcontextprotocol/inspector node dist/index.js - 04
Le brancher à Claude
En local, le client lance votre serveur comme un processus et lui parle par l’entrée et la sortie standard (stdio). Avec Claude Code, une commande suffit. Avec Claude Desktop, on déclare le serveur dans le fichier de configuration.
Claude Code claude mcp add catalogue -- node /chemin/vers/mon-serveur-mcp/dist/index.js - 05
Le mettre en ligne
Pour que vos clients ou d’autres équipes l’utilisent sans rien installer, le serveur passe en Streamable HTTP, le transport distant recommandé par la spécification, derrière une authentification OAuth. C’est là que se jouent la sécurité, les quotas et la supervision.
TypeScript n’est pas le seul choix : MCP propose 10 SDK officiels (TypeScript, Python, C#, Go, Rust, Ruby, Java, Swift, PHP, Kotlin), dont 6 classés Tier 1. Côté spécification, une fonctionnalité dépréciée reste en place au moins 12 mois avant de pouvoir être retirée (90 jours en procédure accélérée).
Sur votre poste ou en ligne ?
| Serveur local | Serveur distant | |
|---|---|---|
| Usage | Outils internes, prototypes, postes de développeurs. | Service ouvert à vos clients, partenaires ou à toute l’équipe. |
| Transport | stdio : le client lance le serveur sur la machine. | Streamable HTTP : le serveur tourne sur une URL. |
| Authentification | Aucune en général, accès limité à la machine. | OAuth 2.1, comme le prévoit la spécification MCP. |
| Mise à jour | Chaque poste doit récupérer la nouvelle version. | Un déploiement, tout le monde est à jour. |
Qu’est-ce qui fait un bon serveur MCP ?
- 01
Peu d’outils, bien nommés
Une IA choisit mieux entre six outils clairs qu’entre quarante. Partez des tâches de vos utilisateurs, pas de la liste de vos routes d’API.
- 02
Des descriptions écrites pour l’IA
La description est ce que le modèle lit pour décider. Dites ce que fait l’outil, quand l’utiliser, et ce qu’il renvoie. C’est le levier de qualité le plus sous-estimé.
- 03
Lecture d’abord, écriture ensuite
Commencez par des outils en lecture seule. Pour ceux qui modifient des données (commande, paiement, suppression), exigez une confirmation et signalez-le dans les annotations de l’outil.
- 04
Des réponses courtes et structurées
Renvoyez les champs utiles, pas l’objet complet de votre base. Chaque caractère renvoyé consomme le contexte du modèle et dégrade la suite de la conversation.
Le serveur MCP de Toolzy.io.
Toolzy.io, la marketplace de location d’outils entre voisins que nous avons développée, a son propre serveur MCP. Branché à Claude, il permet de demander « une perceuse à louer près de Bordeaux ce week-end » et d’obtenir des annonces réelles, avec distance, prix et disponibilités. Trois outils suffisent :
search_toolsCherche un outil à louer dans une ville, puis dans les communes voisines sur 15 km. Chaque résultat indique s’il est sur place et à quelle distance. Filtres : catégorie, prix par jour, livraison, accompagnement.
get_tool_detailsRenvoie la fiche d’une annonce (prix, caractéristiques, photos) et des alternatives de la même catégorie à moins de 20 km, à proposer si l’outil est trop cher ou trop loin.
check_availabilityVérifie qu’un outil est libre sur des dates données et calcule le prix total de la location.
Ce qui compte n’est pas le nombre d’outils, mais leurs descriptions : chacune dit à l’IA quand l’utiliser et comment présenter le résultat. Voir l’étude de cas Toolzy.
Besoin d’un serveur MCP en production ?
Cadrage des outils utiles à vos clients ou à vos équipes, développement en TypeScript, branchement à votre API, à Airtable, Supabase ou n8n, authentification OAuth, déploiement et supervision. Comme pour Toolzy. Vous gardez le code.
Serveur MCP : les questions fréquentes.
Un serveur MCP (Model Context Protocol) expose des outils, des données et des modèles de prompts à une IA selon un protocole standard. Une fois branché, un assistant comme Claude ou ChatGPT peut appeler ces outils au fil de la conversation : chercher dans votre catalogue, créer un ticket, consulter un stock.
Pour un serveur sur mesure, oui : quelques dizaines de lignes de TypeScript ou de Python suffisent pour un premier outil. Des outils comme n8n permettent aussi d’exposer des workflows en MCP sans écrire de code, avec moins de contrôle sur le comportement.
Claude (Desktop, Code et claude.ai), ChatGPT, Cursor, VS Code avec GitHub Copilot, Windsurf et de nombreux autres. C’est l’intérêt du protocole : un seul serveur, utilisable dans tous ces outils.
Le serveur MCP s’appuie souvent sur votre API, mais il la présente dans un format qu’une IA sait découvrir et utiliser seule : liste des outils, descriptions, schémas de paramètres. L’API s’adresse à des développeurs, le serveur MCP s’adresse à des agents.
Il l’est autant qu’on le conçoit. Un serveur distant doit authentifier ses utilisateurs (OAuth), limiter chaque outil aux données de l’utilisateur connecté, valider tous les paramètres et journaliser les appels. Les outils qui écrivent des données demandent une attention particulière.
Un serveur local avec quelques outils en lecture se monte en quelques jours. Un serveur distant, authentifié et branché à vos systèmes, relève d’un projet IA & automatisation, chiffré sur devis après un cadrage.