En bref : l'Agent sait écrire du code, mais ne lit pas vos Issues GitHub, le schéma de base ni la doc interne — le problème vient souvent de la source des données, pas du modèle. Cet article part du protocole MCP : couches d'architecture, trois primitives Tools / Resources / Prompts, stdio vs HTTP, puis exemples de configuration et checklist de validation pour Cursor et Claude Code. Vous pourrez brancher les sources courantes sans glue code par SaaS.
Articles connexes : Tutoriel d'installation MCP pour Claude Code · 20 MCP Server recommandés · Exposition minimale des permissions MCP
Qu'est-ce que MCP ? Quel problème résout-il ?
Le Model Context Protocol (MCP) est une norme ouverte publiée fin 2024 par Anthropic. Objectif : permettre aux applications IA (Hosts) de se connecter au monde extérieur — dépôts, bases, documentation, ticketing, navigateur — de façon unifiée et auditable, sans intégration sur mesure par source.
Avant MCP, deux approches dominaient :
- Copier-coller manuel — liens d'issues, résultats SQL, réponses API dans le chat. Précis mais lent, non scalable.
- Function Calling maison — schema et auth par GitHub, Postgres, Notion. Flexible mais coûteux ; changement de client (Cursor → Claude Code) = souvent tout refaire.
MCP propose une troisième voie : standardiser l'interface « source de données ↔ Agent ». Un GitHub MCP configuré une fois sert Cursor, Claude Code, VS Code Copilot, OpenAI Codex ; la communauté maintient des milliers de Servers pour SaaS et outils de dev.
En une phrase
MCP n'est pas le LLM : c'est le « port USB » de l'Agent — le Host raisonne, le MCP Server transforme les données externes en capacités structurées. Changement de modèle ou de client ? La config des sources peut suivre.
Trois couches : Host, Client, Server
Pour configurer MCP, comprendre d'abord les trois rôles :
| Rôle | Exemple typique | Responsabilité |
|---|---|---|
| Host | Cursor, Claude Code, Claude Desktop, VS Code | UI de chat, orchestration du modèle, décision d'appeler les tools MCP |
| Client | Connecteur MCP intégré au Host | Session avec le Server, relais tools/list, tools/call et messages JSON-RPC |
| Server | GitHub MCP, Context7, Supabase MCP, Server custom | Expose Tools / Resources / Prompts, exécute lectures/écritures et appels API |
Chaîne typique : vous demandez dans Cursor « Quels fichiers PR #42 a-t-il modifiés ? » → Host → modèle choisit mcp__github__get_pull_request → Client envoie via stdio ou HTTP au GitHub MCP → Server appelle l'API GitHub → JSON structuré → réponse basée sur des données réelles.
Point clé : vous configurez la connexion Server (commande, URL, variables d'environnement). Le Host découvre automatiquement les tools — pas de doc API à recopier dans le prompt : au démarrage, tools/list pousse la liste des capacités.
Trois primitives : Tools, Resources, Prompts
Un MCP Server expose trois types de capacités, pour des modes d'accès différents :
Tools — « Permettre à l'Agent d'agir »
Le plus courant. Chaque Tool a nom, description et schema d'entrée (JSON Schema) ; l'Agent l'invoque à la demande. Exemples : GitHub MCP search_code, Playwright MCP browser_click, MCP base execute_query.
Lors du branchement de sources : ~90 % des cas = Servers orientés Tools — lire un repo, interroger des tables, HTTP, piloter un navigateur.
Resources — « Contexte statique lisible »
Les Resources sont des fragments de données adressables, comme des fichiers en lecture seule avec URI. Le Server déclare file://docs/api.md ou db://schema/users ; le Host peut charger le contenu avant ou pendant la conversation — sans que l'Agent devine quel Tool appeler.
Adapté à : README, spec OpenAPI, snapshot de schéma DB, modèles de config — connaissance relativement stable et énumérable.
Prompts — « Points d'entrée de workflow prédéfinis »
Le Server peut exposer des modèles de prompt nommés (avec paramètres) — « Code Review », « script de migration », etc. Moins répandu que les Tools dans la communauté, mais utile pour encapsuler les SOP d'équipe.
De la source de données à l'Agent : chaîne causale de configuration
Ordre recommandé
- D'abord une source read-only
- Exécuter une tâche réelle
- Puis ajouter l'écriture
Erreurs fréquentes
- 10+ Servers d'un coup
- DSN en écriture sur prod
- Ne jamais valider après config
Types de sources et MCP Server courants
Ce tableau relie « que veux-je brancher ? » à « quel Server ? ». Liste complète de 20 Servers : MCP Server recommandés 2026.
| Type de source | MCP Server typique | Capacités principales (Tools) | Authentification |
|---|---|---|---|
| Dépôt de code (GitHub) | GitHub MCP (officiel) | Lire fichiers, chercher code, Issues/PR, statut CI | OAuth Remote ou PAT fin |
| Sémantique code locale | CodeGraph MCP | Navigation symboles, analyse d'impact | Index local, pas de token distant |
| Docs bibliothèque / framework | Context7 | Docs officielles par lib et version | Clé API (Remote) |
| Base relationnelle | Supabase MCP / DBHub | Lire schéma, exécuter SQL | OAuth ou DSN read-only |
| Web / API publiques | Fetch MCP | HTTP GET → Markdown | Aucune (egress contrôlé) |
| Navigateur / validation UI | Playwright MCP | Clics, formulaires, arbre a11y | Processus local |
| Tickets / collaboration | Linear / Notion / Slack MCP | Issues, pages, messages | OAuth Remote |
| Monitoring d'erreurs | Sentry MCP | Stack traces, statut issues | OAuth Remote |
Principe de sélection
Choisir selon le workflow, pas le classement global. Dev full-stack : Context7 + GitHub + Playwright couvrent ~80 % ; backend + Supabase ; Linear MCP si l'équipe l'utilise. Actifs simultanément : 3 à 7 Servers.
Couche transport : stdio ou HTTP ?
Client et Server MCP communiquent en JSON-RPC 2.0. En 2026, deux transports dominent :
stdio (entrée/sortie standard)
Le Host lance le Server en sous-processus, ex. npx -y @modelcontextprotocol/server-github, messages via stdin/stdout. Avantages : config simple, pas de port ouvert, idéal en local. Inconvénients : un processus par Server ; versions Docker complètes peuvent dépasser la limite ~40 tools de Cursor.
Streamable HTTP / SSE (Remote)
Server distant ou hébergé officiellement ; Client en HTTPS, souvent OAuth. GitHub, Supabase, Linear, Sentry proposent des variantes Remote. Avantages : jeux d'outils allégés, pas de Node/Docker local, tokens via OAuth. Inconvénients : dépendance réseau ; vérifier l'egress en entreprise.
| Scénario | Transport recommandé | Raison |
|---|---|---|
| Cursor + GitHub | Remote HTTP (OAuth) | Version locale complète avec 40+ tools dépasse la limite |
| Claude Code + CodeGraph | stdio (codegraph mcp) |
Index repo local, doit tourner sur la même machine |
| Source interne maison | stdio ou HTTP interne | Données dans le réseau, auditable |
| SaaS unifié en équipe | Remote HTTP | Zéro dépendance locale, droits centralisés |
Configurer les sources dans Cursor
Cursor : Settings → MCP ou ~/.cursor/mcp.json. Structure : objet mcpServers, une entrée par Server.
Exemple 1 : stdio local — Fetch MCP
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"]
}
}
}
Exemple 2 : stdio local — GitHub MCP (PAT)
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxx"
}
}
}
}
Mieux : GitHub Remote MCP officiel dans l'UI Cursor (OAuth) — moins de tools, pas de PAT en JSON. PAT fin en read-only ; ne jamais committer dans git.
Exemple 3 : Context7 (source documentation)
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
}
}
}
Après sauvegarde, redémarrer Cursor ; Settings → MCP doit afficher Connected en vert. En mode Agent : « syntaxe middleware Next.js 15 ? » — si la config est bonne, le modèle appelle Context7 au lieu d'halluciner.
Configurer les sources dans Claude Code
Claude Code : ~/.claude.json (utilisateur) ou .mcp.json à la racine du projet. Structure proche de Cursor, chemins légèrement différents.
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxx"
}
},
"codegraph": {
"command": "codegraph",
"args": ["mcp"]
}
}
}
Après modification, quitter complètement Claude Code et relancer ; à la racine du repo, lancer claude, saisir /mcp pour voir Servers et tools. Succès : préfixes mcp__github__*, mcp__codegraph__*.
Guide pas à pas : Tutoriel d'installation MCP pour Claude Code ; vue d'ensemble : Chaîne MCP GitHub Files API.
Niveau projet vs utilisateur : où écrire la config ?
| Emplacement | Cursor | Claude Code | Usage |
|---|---|---|---|
| Utilisateur (global) | ~/.cursor/mcp.json |
~/.claude.json |
Servers personnels : Context7, GitHub, Fetch |
| Projet (dépôt) | .cursor/mcp.json |
.mcp.json |
Équipe : CodeGraph, API interne, DB projet |
Bonne pratique : identifiants et préférences au niveau utilisateur (hors git) ; sources liées au dépôt (chemin CodeGraph, Server doc projet) dans .mcp.json versionné — clone-and-go pour l'équipe. Tokens sensibles via variable d'environnement, ex. "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PAT}" }, injectée par le shell ou la CI.
Validation : l'Agent utilise vraiment la source
Configuré ≠ opérationnel. Checklist :
- Connexion — Cursor : MCP vert dans Settings ; Claude Code :
/mcpsans error. - Tools visibles — Le tool cible existe, ex.
mcp__github__search_code. - Smoke test — Instruction claire : « Lister les open issues de ce repo via GitHub MCP » ou « Context7 : syntaxe migrate Prisma récente ».
- Échecs observables — Si l'Agent n'appelle rien : trop de tools, consigne vague ; préciser « utiliser GitHub MCP ».
- Limite de permissions — Action interdite (supprimer un repo) doit renvoyer 403, pas un succès silencieux.
Plafond de tools
Cursor limite à environ 40 tools. Un GitHub MCP local complet peut en exposer 40+ — privilégier le Remote officiel allégé ou désactiver des Servers. Trop de tools : mauvais choix et tokens de contexte gaspillés.
Permissions et limites de sécurité
Chaque source ouvre une porte vers l'extérieur pour l'Agent. Principe : read-only par défaut, écriture explicite, production isolée.
- GitHub PAT — Token fin, repos ciblés ; Issues/Contents read-only suffisent pour la plupart des cas dev.
- DSN base — Rôle read-only sur la DB de dev ; jamais de DSN en écriture prod dans la config projet.
- Filesystem MCP — Limiter
argsà la racine projet, pas$HOMEni/. - API internes — Endpoint staging read-only ; workspace Claude sans
.envde production.
Matrice de stratégie et chaînes d'attaque : Exposition minimale des permissions MCP.
Dépannage courant
| Symptôme | Cause probable | Action |
|---|---|---|
| Liste de tools vide | JSON invalide ; Host non redémarré | Valider le JSON ; quitter complètement Cursor / Claude Code |
| GitHub 401 / 403 | PAT expiré ou repo non autorisé | Recréer le token ; vérifier le scope repo |
| CodeGraph vide | Pas lancé à la racine ; pas d'index | codegraph init -i ; vérifier cwd |
| L'Agent n'appelle jamais MCP | Trop de tools ; tâche vague | Réduire les Servers ; nommer le tool dans le prompt |
| Timeout npx | Premier téléchargement lent ; Node absent | Préinstaller ; vérifier node -v |
Questions fréquentes
Quelle différence entre MCP et Function Calling ?
Function Calling déclare des tools dans une requête API, souvent liée au modèle/fournisseur. MCP est une connexion Server persistante et un protocole ouvert — une config, plusieurs clients, écosystème communautaire. MCP ≈ runtime de Function Calling standardisé et interchangeable.
Puis-je écrire mon propre MCP Server ?
Oui. SDK officiels TypeScript (@modelcontextprotocol/sdk), Python, etc. Cas typiques : wiki interne, API ticketing, data lake. Minimum : tools/list et tools/call, stdio — déboguer dans Cursor.
MCP envoie-t-il des données au fournisseur de modèle ?
Les résultats des tools entrent dans le contexte de conversation et partent avec votre requête vers l'API LLM du Host — nécessaire pour l'Agent. MCP ne « télécharge » rien en plus ; le risque = droits accordés au Server. Minimal privilege limite l'exposition.
Quelles sources brancher en premier en 2026 ?
Souvent Context7 (docs) + GitHub (dépôt) + Playwright (navigateur). Backend : Supabase ou DBHub ; Linear/Notion si l'équipe les utilise. Détails : 20 MCP Server recommandés.
ZavCloud Cloud Mac
Valider MCP + workflow Agent sur un vrai macOS
Mac mini dédié : index CodeGraph local, chaîne MCP Claude Code, GitHub Runner CI — développement, vérification et automatisation sur une même machine.
Commencer la configuration