Aller au contenu

MCP Python SDK

Traduction automatique

Cette page a été traduite automatiquement à partir de la documentation en anglais, et la page en anglais fait foi. Si quelque chose vous semble incorrect, la page Traductions explique comment le signaler.

Cette documentation décrit la v2, la branche stable actuelle

Vous découvrez la v2, ou vous venez de la v1 ? Nouveautés de la v2 fait le tour des changements en cinq minutes, et le Guide de migration couvre chaque changement incompatible. Encore en v1.x ? Sa documentation se trouve dans la documentation v1.x. Quelque chose vous semble maladroit ou confus ? Dites-le-nous.

Le Model Context Protocol (MCP) permet aux applications de fournir du contexte aux LLM de façon standardisée, en séparant la fourniture du contexte de l’interaction avec le LLM proprement dite.

Voici son SDK Python officiel. Il vous permet de :

  • Construire des serveurs MCP qui exposent des outils (tools), des ressources et des prompts à n’importe quel hôte MCP.
  • Construire des clients MCP qui se connectent à n’importe quel serveur MCP.
  • Parler tous les transports standard : stdio, Streamable HTTP et SSE.

Prérequis

Python 3.10+.

Installation

uv add "mcp[cli]"
pip install "mcp[cli]"

L’extra [cli] vous fournit la commande mcp ; vous en aurez besoin pour le développement. Consultez Installation pour savoir à quoi sert chaque dépendance.

Exemple

Le créer

Créez un fichier server.py :

server.py
from mcp.server import MCPServer

mcp = MCPServer("Demo")


@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers."""
    return a + b


@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
    """Greet someone by name."""
    return f"Hello, {name}!"

C’est un serveur MCP complet.

Il expose un outil, add, et une ressource paramétrée, greeting://{name}.

L’exécuter

uv run mcp dev server.py

Cette commande démarre votre serveur et ouvre le MCP Inspector, une interface interactive pour l’explorer. Ouvrez l’URL qu’elle affiche.

Note

L’Inspector est une application Node.js : mcp dev a donc besoin de npx dans votre PATH.

Essayer

Dans l’Inspector, allez dans Tools et appelez add avec a=1, b=2.

Vous obtenez 3 en retour. ✨

L’Inspector a construit ce formulaire (un champ entier obligatoire pour a, un autre pour b) à partir de vos annotations de type. Claude fera de même, ainsi que tous les autres hôtes MCP.

Allez maintenant dans Resources et lisez greeting://World :

Hello, World!

Récapitulatif

Regardez à nouveau ce que vous n’avez pas écrit :

  • Aucun JSON Schema. a: int, b: int est le schéma.
  • Aucune analyse de requête, aucune sérialisation, aucun code de validation.
  • Aucune gestion du protocole.

Vous avez écrit deux fonctions Python avec des annotations de type et une docstring. Le SDK fait le reste.

Et ensuite

  • Prise en main vous mène de l’installation à un serveur fonctionnel et testé.
  • Vous construisez une application qui utilise des serveurs MCP ? Commencez par Clients.
  • Vous avez déjà une application FastAPI ou Starlette ? Ajouter à une application existante y monte un serveur MCP.
  • Vous cherchez un message d’erreur précis ? Dépannage est indexé par le texte exact.
  • Vous vous demandez ce qui a changé dans la v2 ? Nouveautés de la v2 en fait le tour en cinq minutes.
  • Vous migrez depuis la v1 ? Commencez par le Guide de migration.
  • Vous cherchez une signature exacte ? La Référence de l’API est générée à partir du code source.
  • Vous lisez avec un LLM ? Cette documentation est aussi publiée au format llms.txt : llms.txt est un index des pages, et llms-full.txt contient toutes les pages dans un seul fichier.