Aller au contenu principal

Créer et Déployer son Propre Serveur MCP

De l’idee au serveur en production

Vous avez vu comment utiliser les connecteurs existants et comment ajouter un connecteur personnalise. Il est temps de passer a l’etape suivante : creer votre propre serveur MCP de A a Z et le deployer pour l’utiliser dans Le Chat. Cette lecon couvre le developpement local, les bonnes pratiques de conception et les options de deploiement.

Creer un serveur MCP en local

Avec FastMCP (Python)

La bibliotheque FastMCP est l’option la plus populaire pour creer un serveur MCP en Python. Elle simplifie considerablement le processus en utilisant un systeme de decorateurs :

from fastmcp import FastMCP

mcp = FastMCP("Mon Serveur")

@mcp.tool()
def greet(name: str) -> str:
    """Salue une personne par son nom.

    Args:
        name: Le prenom de la personne a saluer.

    Returns:
        Un message de salutation personnalise.
    """
    return f"Bonjour {name} ! Bienvenue sur notre plateforme."

Quelques points essentiels :

  • Le decorateur @mcp.tool() enregistre la fonction comme outil MCP
  • La docstring est la description que le modele voit pour decider quand utiliser l’outil
  • Le typage des parametres (name: str) et du retour (-> str) informe le modele sur les types attendus
  • Le nom de la fonction doit etre clair et descriptif

Avec le SDK Anthropic (Python ou TypeScript)

L’alternative officielle est le SDK MCP d’Anthropic, disponible en Python et TypeScript. Il offre plus de controle mais demande un peu plus de configuration.

Regles d’or pour la conception

Descriptions riches : le modele ne voit que la description textuelle de votre outil. Soyez aussi descriptif que possible :

@mcp.tool()
def search_products(
    query: str,
    category: str = "all",
    max_results: int = 10
) -> str:
    """Recherche des produits dans le catalogue.

    Utilisez cet outil quand l'utilisateur cherche un produit
    par nom, reference ou categorie.

    Args:
        query: Termes de recherche (nom du produit, reference, mots-cles).
        category: Categorie de filtre. Valeurs possibles : 'all',
                  'electronics', 'clothing', 'food'. Defaut : 'all'.
        max_results: Nombre maximum de resultats a retourner (1-50).

    Returns:
        Liste de produits avec nom, prix, disponibilite et reference.
    """

Noms explicites : preferez search_products a search, create_invoice a create, get_user_orders a get_data.

Retours lisibles : retournez des textes comprehensibles, pas des identifiants bruts. Le modele doit pouvoir exploiter les retours pour formuler une reponse naturelle.

Tester en local

Lancer le serveur

python server.py

Votre serveur demarre sur un port local (par defaut localhost:8000).

Exposer avec ngrok

Pour tester avec Le Chat, exposez votre serveur local :

ngrok http 8000

ngrok fournit une URL publique (par exemple https://abc123.ngrok.io) que vous pouvez utiliser comme URL de connecteur dans Le Chat. Ajoutez /mcp a la fin pour obtenir l’endpoint complet.

Tester avec le MCP Inspector

Avant d’aller dans Le Chat, validez avec le MCP Inspector :

npx @modelcontextprotocol/inspector

Connectez-vous a votre serveur local, listez les outils, testez-les individuellement et verifiez les retours.

Options de deploiement

Une fois votre serveur MCP pret, plusieurs options s’offrent a vous pour le deployer en production :

Hugging Face Spaces

L’option gratuite recommandee par l’equipe Mistral AI. Hugging Face Spaces sont des machines virtuelles qui hebergent des applications web. Tant que vous n’avez pas besoin de GPU, c’est entierement gratuit.

Vous pouvez monter votre serveur MCP avec FastAPI et deployer plusieurs serveurs MCP sur le meme Space, chacun avec son propre endpoint (par exemple /api1/mcp, /api2/mcp). Cela permet a Le Chat de les ajouter comme connecteurs distincts.

Un avantage supplementaire : vous pouvez ajouter un frontend a votre Space pour visualiser l’activite de vos serveurs MCP.

FastMCP Cloud

FastMCP propose un service cloud qui permet d’importer directement un repository GitHub contenant un serveur MCP et de le deployer. Si votre code est au bon format, le deploiement est quasi-instantane.

Cloudflare Workers

Pour les serveurs MCP legers qui n’ont pas besoin de dependances lourdes, Cloudflare Workers offre un deploiement edge rapide et peu couteux.

Fournisseurs cloud classiques

AWS (Lambda, ECS), Google Cloud (Cloud Run, Cloud Functions) ou Azure (Functions, Container Apps) sont des options viables pour les equipes qui ont deja une infrastructure cloud.

Serveurs multi-outils vs mono-outil

Approche workflow (recommandee)

Plutot que de creer des outils granulaires, concevez des workflows complets sous forme d’un seul outil. Un hackathon MCP organise par Mistral a montre que les equipes les plus performantes creaient des outils de haut niveau :

  • book_restaurant plutot que list_restaurants + check_availability + make_reservation
  • deploy_application plutot que build + test + push + deploy

Quand granulariser

La granularite est utile quand :

  • Vous creez un serveur MCP generique utilise par differentes equipes
  • Les etapes du workflow peuvent etre utilisees independamment
  • Vous avez besoin de flexibilite dans l’ordre des operations

Gestion des variables d’environnement

Vos serveurs MCP auront souvent besoin de cles API, de credentials de base de donnees ou d’autres secrets. Quelques regles :

  • Stockez les secrets dans des variables d’environnement, jamais dans le code
  • Attention : si votre serveur MCP est public (sans authentification), toute personne qui l’utilise consomme vos cles API. Protegez votre serveur avec un token ou OAuth
  • Sur Hugging Face Spaces, utilisez les Secrets du Space pour stocker vos variables d’environnement de maniere securisee

Points cles a retenir

  • FastMCP est le moyen le plus simple de creer un serveur MCP en Python
  • Soignez les descriptions, les noms et le typage de vos outils
  • Testez d’abord en local avec ngrok et le MCP Inspector avant de deployer
  • Hugging Face Spaces offre un hebergement gratuit ideal pour les serveurs MCP
  • Preferez les outils de type workflow aux outils trop granulaires
  • Protegez vos secrets et envisagez une authentification pour vos serveurs