Créer votre propre serveur MCP en Python (en 10 minutes)
Créez, testez et connectez un serveur MCP minimal avec le SDK Python officiel et MCPServer, avec des conseils de conception.
Choisir un SDK
Il existe des SDK officiels pour TypeScript, Python, C#, Java, Kotlin, Go et d’autres langages. Ce guide utilise le SDK Python officiel 2.x, qui nécessite Python 3.11 ou plus récent. Les anciennes versions 1.x utilisaient FastMCP de mcp.server.fastmcp au lieu de MCPServer.
1. Préparer le projet
uv init demo && cd demo
uv add "mcp[cli]"2. Écrire le serveur
Un outil est une fonction ordinaire avec des annotations de type et une docstring ; le SDK en tire le schéma et la description de l’outil. mcp.run() démarre un serveur stdio.
# 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
if __name__ == "__main__":
mcp.run()3. Le tester
Ouvrez-le dans le MCP Inspector pour appeler vos outils depuis une interface web :
uv run mcp dev server.py4. Le connecter à un client
Utilisez un chemin absolu. Claude Desktop et Cursor acceptent cette entrée ; dans Claude Code, lancez claude mcp add demo -- uv run --with "mcp[cli]" mcp run /chemin/absolu/server.py.
{
"mcpServers": {
"demo": {
"command": "uv",
"args": ["run", "--with", "mcp[cli]", "mcp", "run", "/absolute/path/to/server.py"]
}
}
}Conseils de conception
- Choisissez des noms et descriptions d’outils clairs : le modèle choisit les outils en les lisant.
- Validez les entrées et renvoyez des textes courts et utiles.
- N’exposez pas d’actions destructrices sans confirmation.
- Ajoutez le sujet
mcp-serverà votre dépôt GitHub et Socketlist le référencera automatiquement.