Introduction : pourquoi le protocole de contexte modèle
Il Protocole de contexte de modèle (MCP) et un standard ouvert développé par Anthropic qui définit comment les applications d’IA communiquent avec des outils externes. MCP résout un problème fondamental : donner à modèles linguistiques la capacité de agir dans le monde réel, pas seulement générer du texte.
Avant MCP, chaque intégration entre une IA et un outil externe nécessitait une implémentation personnalisée, avec proprietary protocols and fragile integrations. MCP standardise cette communication, créant un écosystème où n'importe quel outil peut être rendu accessible à toute IA compatible, tout comme l'USB-C l'a fait unified hardware connectors.
Dans cette série de 14 articles, nous explorerons MCP de la fondation à la mise en œuvre avancé, analysant le projet open source en détail Tech-MCP, un monorepo TypeScript avec 31 serveurs MCP, plus de 85 outils et 6 packages partagés.
Ce que Vous Apprendrez dans Cette Serie
- Les fondamentaux du protocole MCP et son architecture Hôte/Client/Serveur
- Les trois primitives : Outils, Ressources et Invites avec validation Zod
- Comment créer des serveurs et des clients MCP dans TypeScript à partir de zéro
- Pattern architetturali: monorepo, EventBus, pacchetti condivisi
- 31 vrais serveurs MCP pour la productivité, DevOps, base de données, gestion de projet
- Collaboration inter-serveurs avec événements typés et invocation inter-serveurs
- Testing, best practice e deploy in produzione
Les problèmes provoqués par MCP
Les grands modèles linguistiques (LLM) sont puissants en matière de raisonnement et de génération de texte, mais ils présentent Limitations fondamentales qui limitent son utilité pratique :
- Ils ne peuvent pas accéder aux données en temps réel: La formation a une date limite, donc l'IA ne connaît pas les événements récents ni les données mises à jour
- Ils ne peuvent pas effectuer d'actions: créer des fichiers, appeler des API, interagir avec des bases de données, gérer des déploiements sont des opérations impossibles sans intégrations externes
- Ils n'ont pas de contexte local: L'IA ne connaît pas votre projet, vos tâches, la structure de votre base de code ou votre environnement de développement
MCP comble cette lacune en fournissant un protocole de communication bidirectionnel entre l'IA et le monde extérieur, permettant aux modèles linguistiques de devenir de véritables assistants opérationnels.
Le problème N x M des intégrations
Sans norme, connectez-vous N Applications d'IA M les outils externes nécessitent NxM intégrations personnalisées. Chaque combinaison possède son propre protocole, sa propre authentification, son format de données. Cette approche n’est pas évolutive.
MCP réduit la complexité à N+M: chaque application IA implémente un client MCP, chaque outil implémente un serveur MCP et ils communiquent tous via le même protocole standard.
Analogie : MCP comme USB-C pour l'IA
Avant l’USB-C, chaque appareil possédait son propre connecteur propriétaire. Aujourd’hui, l’USB-C unifie tout : chargement, données, vidéo. MCP fait de même pour l'IA : un protocole standard unique qui connecte n’importe quel modèle de langage vers n’importe quel outil externe, éliminant ainsi les intégrations personnalisées.
Architettura MCP: Host, Client e Server
L'architecture MCP est basée sur trois composants principaux qui fonctionnent ensemble pour permettre l’interaction entre l’IA et les outils externes :
1. Host
L'Hôtes et l'application d'IA que l'utilisateur utilise directement. Gère la session utilisateur, connecte les serveurs MCP et orchestre les appels d’outils. Exemples d'hôtes :
- Bureau Claude: L'application de bureau d'Anthropic
- Curseur IDE: l'IDE avec IA intégrée
- Code VS avec extensions MCP
- Applications personnalisées qui utilisent le SDK MCP
2. Client
Il Client et le composant logiciel de l'hôte qui implémente le côté client du protocole MCP. Maintient une connexion 1:1 avec un serveur MCP et gère :
- La Négociation de capacité lors de l'initialisation
- Il routage des messages JSON-RPC entre l'hôte et le serveur
- La gestion du cycle de vie de la connexion
3. Server
Il Serveur et le composant qui expose les fonctionnalités à l'IA. Un serveur MCP peut offrir trois types de primitives :
Les trois primitives MCP
| Primitive | Description | Controle | Exemple |
|---|---|---|---|
| Tools | Fonctions que l'IA peut invoquer | L'IA décide quand les appeler | create-sprint, analyze-diff |
| Resources | Données que l'application peut lire | L'applicazione controlla l'accesso | Fichier, database, API response |
| Prompts | Modele predefiniti riutilizzabili | L'utente seleziona quale usare | "Analysez ce code pour les bugs" |
Transport : comment les clients et les serveurs communiquent
Il Transport et le mécanisme physique de communication entre le client et le serveur. MCP prend en charge deux modes principaux :
STDIO (Standard Input/Output)
Le transport le plus courant pour les serveurs locaux. Client et serveur communiquent via stdin e
stdout du processus. Chaque message est un objet JSON-RPC séparé par une nouvelle ligne.
Le canal stderr reste disponible pour la journalisation.
- Pro: installation simple, pas de configuration réseau, sécurisé (local)
- Contre: Local uniquement, un processus par connexion
HTTP + SSE (Streamable HTTP)
Pour les serveurs distants ou lorsque plusieurs connexions sont nécessaires. Le client envoie des requêtes HTTP POST, le serveur répond Événements envoyés par le serveur pour le streaming. Prend en charge l'ID de session pour maintenir l’état entre les demandes.
- Pro: supporto remoto, connessioni multiple, scalabile
- Contre: plus complexe à configurer, nécessite un serveur HTTP
Comment fonctionne un appel d'outil
Pour comprendre concrètement le fonctionnement de MCP, suivons pas à pas le déroulement d'un appel d'outil :
Utente: "Crea uno sprint chiamato Sprint-15"
|
v
[1] L'AI ragiona e decide di chiamare il tool "create-sprint"
|
v
[2] Il Client MCP serializza la richiesta in JSON-RPC:
{ "method": "tools/call",
"params": { "name": "create-sprint",
"arguments": { "name": "Sprint-15" } } }
|
v
[3] Il Server MCP riceve, esegue la logica, ritorna il risultato:
{ "content": [{ "type": "text", "text": "Sprint creato con id 42" }] }
|
v
[4] L'AI riceve il risultato e lo presenta all'utente:
"Ho creato lo sprint Sprint-15 (ID: 42)"
Flusso Dettagliato del Protocollo
- Découverte: au démarrage, le Client demande au Serveur la liste des outils disponibles (
tools/list) - Schème: chaque outil déclare ses paramètres avec un schéma JSON/Zod validable
- Invocation: l'IA décide de manière autonome quand et quel outil appeler en fonction du contexte de la conversation
- Exécution: le Serveur exécute la logique métier et renvoie le résultat
- Composition: L'IA peut combiner plusieurs appels d'outils pour effectuer des tâches complexes
MCP vs REST API vs Plugin AI
MCP n'est pas le seul moyen d'intégrer des outils à l'IA, mais il offre des avantages significatifs par rapport à celle-ci. aux alternatives traditionnelles :
Comparaison entre les approches d'intégration
| Caracteristique | REST API | Plugin AI | MCP |
|---|---|---|---|
| Standardizzato | Si (HTTP) | No (vendor-specific) | Si (protocollo aperto) |
| Discovery automatico | No | Parziale | Si |
| Tipizzazione parametri | OpenAPI | Varia | Zod / JSON Schema |
| Bidirezionale | No | No | Si |
| Streaming nativo | No | Varia | Si (SSE) |
| Vendor lock-in | No | Si | No |
| Composabilita | Manuale | Limitata | Nativa |
Pourquoi MCP est important pour les développeurs
MCP représente un changement de paradigme dans l’interaction entre les développeurs et l’IA. Voici les avantages les principaux qui le rendent fondamental :
- Interopérabilité: Un serveur MCP fonctionne avec Claude Desktop, Cursor, VS Code et tout autre client compatible sans modifications. Écrivez une fois, travaillez partout.
-
Composabilité: L'IA peut combiner des outils de différents serveurs en un seul flux de travail.
Par exemple : analyser le code (
code-review), générer les tests (test-generator), et enregistrez l'heure (time-tracking) - le tout en une seule conversation. - Sécurité: Le protocole définit clairement ce qu'un serveur peut faire. L'utilisateur garde toujours le contrôle de l’approbation des actions sensibles.
- Écosystème ouvert: N'importe qui peut créer un serveur MCP. Vous n'avez pas besoin d'autorisation pas de vendeurs, il n’y a pas de marchés sur lesquels compter.
- Contexte persistant: Contrairement aux API sans état, MCP prend en charge les sessions avec état, permettant au serveur de maintenir le contexte entre les appels ultérieurs.
Le projet Tech-MCP : une suite complète
Pour démontrer la puissance et la flexibilité de MCP, j'ai développé Tech-MCP, un projet open source qui implémente 31 serveurs MCP organisé dans un monorepo TypeScript. Ces serveurs couvrent l'ensemble du cycle de vie du développement logiciel :
Tech-MCP in Numeri
| Metrique | Valeur |
|---|---|
| Server MCP | 31 |
| Tools disponibili | 85+ |
| Pacchetti condivisi | 6 |
| Eventi tipizzati | 29 |
| Linguaggio | TypeScript 5.7 |
| Runtime | Node.js 20+ |
| Build system | Turborepo + pnpm |
Catégories de serveurs
Les 31 serveurs sont organisés en catégories fonctionnelles qui couvrent tous les aspects du développement :
- Produttività (3): code-review, dependency-manager, project-scaffolding
- DevOps (3): docker-compose, log-analyzer, cicd-monitor
- Database (2): db-schema-explorer, data-mock-generator
- Documentation (2) : documentation API, connaissances de la base de code
- Testing (2): test-generator, performance-profiler
- Utility (3): regex-builder, http-client, snippet-manager
- Project Management (5): scrum-board, agile-metrics, time-tracking, project-economics, retrospective-manager
- Comunicazione (2): standup-notes, environment-manager
- Avanzati (9): incident-manager, decision-log, access-policy, quality-gate, workflow-orchestrator, insight-engine, mcp-registry, dashboard-api
Configuration de l'environnement de développement
Pour suivre cette série et commencer à développer des serveurs MCP, assurez-vous d'avoir installé :
Prerequis
- Node.js 20+: runtime JavaScript/TypeScript (
node --version) - pnpm 9+: gestionnaire de paquets pour monorepo (
npm install -g pnpm) - TypeScript 5.7+: linguaggio tipizzato (
npx tsc --version) - Bureau Claude: pour tester les serveurs MCP (télécharger depuis
claude.ai) - Git: pour cloner le référentiel Tech-MCP
Clonare e Avviare Tech-MCP
Pour explorer le projet complet, clonez le référentiel et installez les dépendances :
# Clona il repository
git clone https://github.com/fedcal/Tech-MCP.git
cd Tech-MCP
# Installa le dipendenze con pnpm
pnpm install
# Compila tutti i pacchetti e server
pnpm build
# Verifica che tutto funzioni
pnpm test
Configurare Claude Desktop
Pour tester un serveur MCP avec Claude Desktop, éditez le fichier de configuration :
// macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
// Windows: %APPDATA%\Claude\claude_desktop_config.json
// Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"scrum-board": {
"command": "node",
"args": ["path/to/Tech-MCP/servers/scrum-board/dist/index.js"],
"env": {}
}
}
}
Structure de la série
Cette série de 14 articles suit un cheminement progressif, à partir de fondements théoriques jusqu'à la mise en œuvre avancée :
Feuille de Route des Articles
| # | Sujet | Niveau |
|---|---|---|
| 01 | Introduzione al Model Context Protocol | Beginner |
| 02 | Primitive MCP: Tools, Resources e Prompts | Beginner |
| 03 | Architecture Monorepo et modèles de projet | Intermediate |
| 04 | Créer le premier serveur MCP en TypeScript | Intermediate |
| 05 | Créer un client MCP et un transport HTTP | Intermediate |
| 06 | Pacchetti Condivisi: Core, EventBus e Database | Intermediate |
| 07-11 | Serveurs par catégories (Productivité, DevOps, DB, PM, Avancé) | Intermediate/Advanced |
| 12 | Collaborazione Inter-Server e EventBus | Advanced |
| 13 | Testing, Best Practice e Produzione | Advanced |
| 14 | Tech-MCP : aperçu complet du projet Open Source | Advanced |
Conclusions
Le Model Context Protocol représente un saut qualitatif dans l’intégration entre l’IA et les outils de développement. Il ne s'agit pas d'un simple wrapper autour des appels d'API, mais d'un protocole structuré qui permet la découverte automatique, la saisie forte, communication bidirectionnelle et composabilité native.
Dans le prochain article, nous les approfondirons trois primitives MCP (Outils, ressources et invites), analyser en détail comment les définir, les valider avec Zod et gérer leur cycle de vie. Nous allons commencer à écrire du code, en explorant la structure d'un gestionnaire d'outils et son format des réponses.
Le code complet de tous les exemples est disponible au dépôt Tech-MCP sur GitHub.







