Si vous voulez que Claude ou Cursor interroge votre base de donnees, lise des fichiers locaux ou appelle des APIs internes — mais Function Calling vous a force a reecrire les integrations a chaque changement de modele — ce guide pratique couvre les fondamentaux du protocole MCP jusqu a un Server operationnel sur les SDK de juin 2026 : environnement et Hello World, Tools, Resources et Prompts, transport HTTP plus debug et tests, et un parcours de deploiement en production avec projet base de connaissances — en complement de notre analyse du protocole MCP et du guide Agent Skills.
01

Comprendre MCP avant le code : evolution, architecture et avantage face aux integrations ad hoc

Model Context Protocol est le standard ouvert publie par Anthropic en novembre 2024 pour unifier la decouverte et l invocation des capacites externes par les clients IA. L idee : un Server, connexion depuis Claude Desktop, Cursor ou tout client MCP — changer de LLM sans reecrire la couche outils.

01

Ere Function Calling : chaque fournisseur LLM ses schemas proprietaires. GPT, Claude et Gemini exigeaient des adaptateurs separes.

02

Vague Plugins : ChatGPT Plugins a demontre le besoin de donnees live, mais reste specifique OpenAI et ferme.

03

Standard MCP : Anthropic open-source un protocole neutre ; en 2026 OpenAI, Google et Microsoft l adoptent sous gouvernance Linux Foundation AAIF.

04

Objectif de design : standardiser la communication IA-outils comme HTTP a standardise les services web — un format wire, discovery runtime, outils auto-descriptifs.

architecture
┌────────────────────┐         ┌─────────────────────┐
│   MCP Client       │ ◄─────► │   MCP Server        │
│  (Claude / Cursor) │  JSON   │  (vous construisez) │
│                    │  -RPC   │                     │
└────────────────────┘         └─────────────────────┘
                                        │
                          ┌─────────────┼─────────────┐
                          ▼             ▼             ▼
                       Tools       Resources      Prompts
                    (actions)     (lecture data) (modeles)
CapaciteRoleExemple
ToolsFonctions invoquees par l IARecherche, calcul, SQL, appel HTTP
ResourcesDonnees lues via URIConfig, profils, index de notes
PromptsModeles de prompt reutilisablesCode review, simulation interview, debug

Format wire : JSON-RPC 2.0. Cycle de vie : handshake initialize → negociation des capacites → boucle request/response → arret propre. Deux modes de transport dominent : stdio (sous-processus local, zero dependance reseau) et HTTP + SSE (distant, multi-client, partage en equipe).

DimensionMCPOpenAI Function CallingLangChain Tools
StandardisationProtocole ouvertProprietaire fournisseurLie au framework
Transportstdio / HTTP+SSEHTTP seulementHTTP seulement
Cross-modelOuiNonPartiel
Resources / PromptsNatifNon supporteNon supporte
Ecosysteme (2026)10 000+ ServersMature mais verrouilleMature mais couple

MCP n est pas un autre wrapper autour de Function Calling — c est la couche protocolaire qui permet a l IA de decouvrir, decrire et invoquer des outils a l execution sans integration hard-codee par modele.

02

Environnement et Hello World : du venv a un outil visible dans Cursor

Un MCP Server operationnel en moins de dix minutes. Python avec FastMCP est le parcours recommande ; TypeScript reflete les memes concepts avec @modelcontextprotocol/sdk.

LangageSDKIdeal pour
Pythonmcp (FastMCP)Backend / IA, Hello World le plus rapide
TypeScript@modelcontextprotocol/sdkFrontend / full-stack sur Node
bash
python -m venv .venv
source .venv/bin/activate
pip install mcp

npm init -y
npm install @modelcontextprotocol/sdk

Structure de projet recommandee :

tree
my-mcp-server/
├── server.py
├── tools/
│   ├── calculator.py
│   └── web_search.py
├── resources/
│   └── file_reader.py
├── prompts/
│   └── templates.py
├── tests/
│   └── test_tools.py
└── pyproject.toml
python
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("my-first-server")

@mcp.tool()
def say_hello(name: str) -> str:
    return f"Hello, {name}! This is your first MCP tool."

if __name__ == "__main__":
    mcp.run()

Lancer et verifier avec le MCP Inspector officiel :

bash
python server.py
npx @modelcontextprotocol/inspector python server.py

Connexion clients : ajouter la commande de lancement dans Claude Desktop claude_desktop_config.json ou pointer Cursor mcp.json vers la meme commande. Apres redemarrage, confirmer l outil dans la liste et tester un appel.

Note : les Servers STDIO doivent rester en sous-processus pendant que le client est ouvert. Chemins absolus dans la config pour eviter les erreurs de working directory — l echec Hello World le plus frequent.

03

Tools, Resources et Prompts : les trois couches de capacites a exposer

Un Server de production enregistre des Tools pour les actions, des Resources pour les donnees lisibles et des Prompts pour les modeles reutilisables. Signatures et docstrings deviennent la documentation IA — pas besoin d OpenAPI separe.

Structure Tool : nom depuis la fonction, parametres depuis les type hints, description depuis la docstring. Modeles Pydantic pour inputs complexes :

python
from pydantic import BaseModel, Field

class SearchInput(BaseModel):
    query: str = Field(description="Search keywords")
    max_results: int = Field(default=5, description="Max results")
    language: str = Field(default="en", description="Result language")

@mcp.tool()
def web_search(input: SearchInput) -> list[dict]:
    ...
Outil pratiqueFonctionPattern cle
CalculateurExpressions mathematiqueseval securise ou AST ; retour string
Lecture/ecriture fichierI/O filesystem localWhitelist des repertoires
Requete HTTPAPIs externesAsync avec httpx ; timeout + statut
Query base de donneesSQL read-onlyQueries parametrees ; bloquer DDL
Temps / fuseauHeure actuelle, conversionStrings ISO 8601
python
import httpx

@mcp.tool()
async def fetch_url(url: str) -> str:
    async with httpx.AsyncClient(timeout=30.0) as client:
        response = await client.get(url)
        response.raise_for_status()
        return response.text

Gestion des erreurs : dicts d erreur structures pour echecs recoverable ; raise seulement pour etats irrecoverable. Timeouts sur les outils I/O. Valider les permissions avant filesystem ou base de donnees.

Resources different des Tools : Resources fournissent des donnees via URI, Tools executent des actions. Resources statiques avec URIs fixes ; dynamiques avec parametres de chemin.

python
@mcp.resource("config://app-settings")
def get_app_settings() -> str:
    return json.dumps({"version": "1.0", "env": "production"})

@mcp.resource("user://{user_id}/profile")
def get_user_profile(user_id: str) -> str:
    user = db.query_user(user_id)
    return json.dumps(user)
Type ResourceMIMECas d usage
Textetext/plain, application/jsonConfig, logs, donnees structurees
Binaireimage/*, application/pdfDocuments, captures
StreamingFlux d evenementsMetriques live, file watch

Un Server Resource filesystem liste repertoires, lit fichiers et peut s abonner aux changements. Prompts fournissent des modeles de conversation avec injection dynamique de parametres :

python
from mcp.types import PromptMessage, TextContent

@mcp.prompt()
def code_review_prompt(language: str, code: str) -> list[PromptMessage]:
    return [
        PromptMessage(
            role="user",
            content=TextContent(
                type="text",
                text=f"Review this {language} code for bugs, security, and performance:\n```{language}\n{code}\n```"
            )
        )
    ]

Les Prompts multi-tours melangent roles user et assistant — utiles pour simulations d interview, walkthroughs debug et onboarding avec structure constante.

04

Transport HTTP, authentification, debogage et tests automatises

STDIO local couvre le dev ; deployments partages ou SaaS exigent HTTP + SSE. FastMCP supporte streamable-http avec changement minimal.

TraitstdioHTTP + SSE
DeploiementSous-processus localServeur distant
LatenceQuasi nulleDepend du reseau
Multi-clientUn client par processusClients concurrents multiples
Ideal pourOutils dev personnelsEquipe / SaaS production
python
mcp = FastMCP("remote-server", transport="streamable-http")

if __name__ == "__main__":
    mcp.run(host="0.0.0.0", port=8000)

Servers HTTP production exigent auth et garde-fous : middleware Bearer Token ou API Key, CORS restreint aux origines clients connues, rate limiting sur endpoints outils touchant APIs externes ou bases de donnees. Equipes UE : evaluer le flux de donnees vers les serveurs cloud.

MCP Inspector reste l UI de debug principale : lancer contre la commande Server, appeler Tools interactivement, inspecter paires JSON-RPC request/response, simuler chemins d erreur avant connexion client.

python
import pytest
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client

@pytest.mark.asyncio
async def test_calculator_tool():
    server_params = StdioServerParameters(
        command="python",
        args=["server.py"]
    )
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            result = await session.call_tool("calculate", {"expression": "2 + 2"})
            assert result.content[0].text == "4"
ErreurCauseCorrection
Outil invisible dans le clientChemin ou commande config incorrectVerifier chemin absolu dans mcp.json / claude_desktop_config.json
Echec serialisation JSONType de retour non serialisableRetourner str ou dict
Deconnexion timeoutI/O bloquant dans tool syncPasser a async ; timeout explicite
Permission deniedChemin hors whitelistConfigurer repertoires autorises
05

Deploiement production, projet base de connaissances, ecosysteme et six etapes de rollout

Passer de Hello World a la production : containerisation, observabilite, negociation de version et projet reference qui demontre la valeur. Capstone : MCP Server base de connaissances personnelle — recherche semantique sur notes Markdown locales dans Cursor.

01

Inventory des capacites : lister queries DB, I/O fichiers, APIs internes, triggers build dont les Agents ont besoin. Taguer read-only ou write.

02

Choisir le transport : STDIO pour dev local ; HTTP+SSE quand plusieurs collegues ou agents CI partagent un Server sur host stable.

03

Implementer et Schema : enregistrer outils via SDK officiels. JSON Schema pour chaque parametre et forme de retour.

04

Configurer les clients : pointer Cursor mcp.json ou config Claude Desktop vers commande ou URL distante. Documenter variables d environnement.

05

Tester discovery et invocation : confirmer tools/list retourne le catalogue complet. Chains tools/call sample ; verifier contexte multi-etapes.

06

Deployer sur host production : containeriser avec Docker ; Railway/Render pour demarrages rapides, Cloud Run/Lambda pour serverless, ou Mac cloud dedie pour toolchain Apple et 24/7. Voir tarifs.

Options de deploiement : Docker isole les deps Python. Railway et Render offrent deploys one-click. AWS Lambda et Google Cloud Run pour workloads serverless burst. VPS self-hosted plus Nginx reverse proxy pour equipes avec infra existante. Logging structure, metriques Prometheus sur appels outils, Sentry pour alertes, endpoint /health. Declarer version protocole MCP et negocier capacites au handshake pour degradation gracieuse.

Projet base de connaissances : indexer Markdown local avec ChromaDB ou Qdrant, embed avec text-embedding-3-small, surveiller changements via watchfiles. Trois Tools — indexer notes, recherche semantique, ecrire/updater note — plus Resource listant fichiers indexes. Dans Cursor, demander « Qu ai-je ecrit sur MCP la semaine derniere ? » — l Agent appelle votre outil search.

Server communautaireCapacite
mcp-server-filesystemListe repertoires, lecture/ecriture fichiers
mcp-server-githubIssues, PRs, recherche code
mcp-server-brave-searchRecherche web via API Brave
mcp-server-postgresQueries SQL parametrees
mcp-server-slackMessages canal et publication

En 2026 tous les grands clients IA livrent le support MCP natif. Les marketplaces listent des milliers de Servers ; l adoption entreprise pousse OAuth 2.0 et audits de securite. Prochaines etapes : spec complete sur modelcontextprotocol.io, publier votre premier Server, combiner MCP avec Agent Skills.

A

Echelle ecosysteme MCP (2026) : nombre de Servers publics depasse 10 000, effets de reseau comparables a la croissance web HTTP initiale (sources : agregats openEuler / Jacar).

B

Reduction cout integration : la standardisation MCP reduit le cout d integration outils IA de 38 a 55 % versus adaptateurs par fournisseur (sources : Atlan / WorkOS).

C

Barriere startup baisse : interfaces outils standardisees reduisent l entree startups IA d environ 62 % ; travail integrateur traditionnel baisse d environ 43 % (sources : surveys industrie).

ApprocheMCP Server productionGap principal
Laptop STDIODev local rapideFermeture capot tue le processus ; pas 24/7
VPS Linux generiqueHTTP+SSE deployablePas toolchain Apple ; mismatch iOS CI
Serverless (Lambda/Cloud Run)Peu d ops pour traffic burstCold start ; limites session stateful
Mac cloud KVMNODE + MCPNoeud dedie, launchd, rollback snapshotPlanification location requise

Comparer les alternatives honnementement. HTTP+SSE sur MacBook principal casse a la fermeture du capot et aux mises a jour OS. Serverless sans affinite session perd le contexte Agent multi-etapes. Endpoints MCP sans auth invitent injection de prompt et appels outils non autorises — environ 1 000 Servers non proteges indexes en audits 2026. Pour equipes avec Apple Silicon, disponibilite 24/7 et isolation entre MCP Server, iOS CI et Agent Gateway, louer un Mac Mini M4 ou M4 Pro KVMNODE dedie est souvent la meilleure reponse : tarifs jour/week/mois flexibles, processus launchd, rollback snapshot. Comparez sur la page tarifs, details dans le centre d aide, provisionnement via commander quand votre stack MCP a besoin d un host qui reste en ligne apres fermeture du laptop.