Créer un serveur MCP pour connecter Claude à vos outils internes
Le Model Context Protocol (MCP) est un standard ouvert proposé par Anthropic qui permet à Claude — et aux autres LLM compatibles — d’interagir avec des outils externes via une interface structurée. En exposant vos services internes (ex: Gitea, CKAN, Nextcloud, bases de données…) sous forme de serveur MCP, vous donnez à Claude la capacité d’agir directement sur vos systèmes, sans copier-coller ni intégration ad hoc.
Cet article vous guide pas à pas dans la création d’un serveur MCP minimal en Python, à l’aide de la bibliothèque FastMCP.
Prérequis
- Python 3.11+
- pip / uv
- Un compte Claude Pro ou accès à Claude Desktop / Claude Code
1. Installer FastMCP
FastMCP est la façon la plus simple de créer un serveur MCP en Python :
pip install fastmcp
2. Créer votre premier outil MCP
Un serveur MCP expose des tools (outils), des resources (données) et des prompts. Voici un exemple minimaliste qui expose une fonction permettant à Claude de lister les dépôts d’une instance Gitea :
from fastmcp import FastMCP
import httpx
mcp = FastMCP("gitea-bridge")
GITEA_URL = "https://git.exemple.fr"
GITEA_TOKEN = "votre_token_api"
@mcp.tool()
def lister_depots(utilisateur: str) -> list[dict]:
"""Liste les dépôts publics d'un utilisateur Gitea."""
headers = {"Authorization": f"token {GITEA_TOKEN}"}
r = httpx.get(f"{GITEA_URL}/api/v1/users/{utilisateur}/repos", headers=headers)
r.raise_for_status()
return [{"nom": d["name"], "description": d["description"]} for d in r.json()]
if __name__ == "__main__":
mcp.run()
Lancez-le :
python gitea_mcp.py
3. Connecter le serveur à Claude Desktop
Dans la configuration de Claude Desktop (~/.config/claude/claude_desktop_config.json sur Linux, ou %APPDATA%\Claude sur Windows), ajoutez :
{
"mcpServers": {
"gitea-bridge": {
"command": "python",
"args": ["/chemin/vers/gitea_mcp.py"]
}
}
}
Redémarrez Claude Desktop. L’outil apparaît automatiquement dans la liste des outils disponibles.
4. Tester depuis Claude
Dans une conversation, vous pouvez maintenant demander à Claude :
« Liste les dépôts de l’utilisateur louis sur Gitea. »
Claude appellera automatiquement l’outil lister_depots et vous retournera la réponse structurée.
5. Aller plus loin
Une fois le principe maîtrisé, vous pouvez :
- Exposer des resources (documents, fichiers, métadonnées CKAN) que Claude peut lire en contexte
- Ajouter une authentification côté serveur MCP (OAuth, token)
- Déployer le serveur MCP dans un conteneur Docker et le connecter via stdio ou HTTP
- Combiner plusieurs serveurs MCP pour créer un agent capable d’agir sur toute votre infrastructure (Gitea + Nextcloud + CKAN)
Ressources
- modelcontextprotocol.io — spécification officielle MCP
- FastMCP sur GitHub
- Documentation Claude
