Créer un serveur MCP (Model Context Protocol) pour connecter Claude à vos outils internes

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