Definir des outils avec MCP
Le SDK Python officiel de MCP simplifie la construction de serveurs MCP. Au lieu d’ecrire manuellement des schemas JSON complexes pour les outils, vous les definissez avec des decorateurs et le SDK gere le reste.
Avantages du SDK Python MCP
- Creation de serveurs MCP avec un minimum de code boilerplate
- Generation automatique de schemas JSON depuis les signatures de fonctions Python
- Definition simplifiee des outils via des decorateurs
- Validation des types et gestion des erreurs integrees
Configuration du serveur
from mcp.server.fastmcp import FastMCP
from pydantic import Field
mcp = FastMCP("DocumentMCP", log_level="ERROR")
docs = {
"deposition.md": "Ce document couvre le temoignage d'Angela Smith...",
"report.pdf": "Le rapport detaille l'etat d'une tour de condensation...",
"financials.docx": "Ces donnees financieres decrivent le budget du projet...",
"outlook.pdf": "Ce document presente les performances projetees...",
"plan.md": "Le plan decrit les etapes de mise en oeuvre...",
"spec.txt": "Ces specifications definissent les exigences techniques..."
}
Implementer l’outil de lecture
@mcp.tool(
name="read_doc_contents",
description="Lire le contenu d'un document et le renvoyer sous forme de chaine."
)
def read_document(
doc_id: str = Field(description="Id du document a lire")
):
if doc_id not in docs:
raise ValueError(f"Document avec l'id {doc_id} introuvable")
return docs[doc_id]
Implementer l’outil d’edition
@mcp.tool(
name="edit_document",
description="Editer un document en remplacant une chaine par une nouvelle."
)
def edit_document(
doc_id: str = Field(description="Id du document a editer"),
old_str: str = Field(description="Le texte a remplacer. Doit correspondre exactement."),
new_str: str = Field(description="Le nouveau texte a inserer.")
):
if doc_id not in docs:
raise ValueError(f"Document avec l'id {doc_id} introuvable")
docs[doc_id] = docs[doc_id].replace(old_str, new_str)
Points cles
- Importez
Fieldde pydantic pour les descriptions de parametres - Utilisez les type hints pour specifier les types de parametres
- Incluez la gestion d’erreurs pour les cas limites
- Ecrivez des noms et descriptions d’outils clairs et descriptifs
- Le SDK convertit automatiquement votre signature de fonction en schema JSON
Le SDK Python MCP reduit considerablement la complexite par rapport a l’ecriture manuelle de schemas JSON.