sentra-mcp
Serveur MCP minimal construit avec FastAPI et la librairie officielle mcp[server]. Il expose un flux SSE compatible ChatGPT Developer Mode et fournit deux outils de démonstration (ping, time).
Caractéristiques
Serveur
FastMCP(SSE) monté dans FastAPI (/sseen GET + POST JSON-RPC sur la même route).Healthcheck REST
GET /healthpour la supervision.Deux outils MCP :
ping→{"message": "pong"}time→{"utc": "<timestamp ISO-8601>"}
Configuration via
.env(nom du service, instructions, chemins SSE, port, niveau de logs).Dockerfile basé sur
python:3.12-slimet orchestration docker-compose (port8400).
Structure du dépôt
mcp/– package applicatif (configuration + app FastAPI/MCP).docker/– artefacts de conteneurisation (Dockerfile,Caddyfile).docker-compose.yml– stack API + proxy optionnel..env.example– gabarit d’environnement.requirements.txt– dépendances Python.
Démarrage local
Préparer un environnement virtuel et installer les dépendances :
python -m venv .venv source .venv/bin/activate pip install -r requirements.txtCopier
.env.examplevers.envsi besoin et ajuster.Lancer le serveur :
uvicorn mcp.main:app --host 0.0.0.0 --port 8400 --reloadVérifier la santé :
curl -fsSL http://localhost:8400/healthTester le flux MCP SSE (exemple manuel) :
# 1) Ouvrir une connexion SSE et récupérer le point de POST retourné (event "endpoint") curl -N http://localhost:8400/sse # 2) Dans un autre terminal, envoyer un appel JSON-RPC vers le point retourné curl -fsSL -X POST "http://localhost:8400/sse?session_id=<ID>" \ -H 'Content-Type: application/json' \ --data '{"jsonrpc":"2.0","id":"1","method":"call_tool","params":{"name":"time","arguments":{}}}'
Docker & Compose
L’API MCP écoute sur
http://localhost:8400.Activer le profil
reverse-proxysi vous souhaitez l’HTTPS géré par Caddy :docker compose --profile reverse-proxy up -d.
Supervision & restart
Le docker-compose.yml applique un healthcheck (/health) toutes les 30s et restart: unless-stopped.
Validation (local ou VPS)
docker compose up --buildou déployer l’image sur votre VPS.Consulter les logs :
docker compose logs -f api.Vérifier :
curl -fsSL http://<hote>:8400/health curl -N http://<hote>:8400/sse # récupérer l’event endpoint curl -fsSL -X POST "http://<hote>:8400/sse?session_id=<ID>" \ -H 'Content-Type: application/json' \ --data '{"jsonrpc":"2.0","id":"1","method":"call_tool","params":{"name":"ping","arguments":{}}}'docker pspour confirmer que seuls les services MCP sont exposés.Surveiller la charge (
htop,docker stats).
Intégration ChatGPT Developer Mode
Publier l’URL HTTPS du service (reverse proxy / Caddy / Cloudflare Tunnel).
Vérifier le certificat TLS.
Dans ChatGPT → Connectors → Developer Mode, déclarer l’URL MCP (point
/sse).Valider que les outils
pingettimeapparaissent et répondent.
Préparation VPS (rappel)
Inventorier CPU/RAM/disques :
lscpu,free -h,df -h /.Nettoyer Docker (
docker container/image/volume/system prune).Couper les services en conflit (
sudo ss -tulpn | grep ':8400').Mettre à jour la machine (
sudo apt update && sudo apt upgrade -y).Revoir le pare-feu OVH +
ufw/nftablespour limiter les IP autorisées.
Pistes d’évolution
Ajouter des outils riches (
git.commit_push,files.write,n8n.trigger,doc.index,doc.query, ...).RAG local (embeddings CPU + Chroma/FAISS).
Authentification (OAuth/Bearer), RBAC, quotas, métriques Prometheus.
Durcissement réseau (rate limiting, WAF, mTLS interne).
Provisionnement infra (Terraform + Ansible) et observabilité.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A minimal FastAPI-based MCP server that provides basic utility tools like ping and time functions. Designed for easy deployment with Docker support, authentication, and extensible architecture for future tool additions.