mcp-server
The MCP Server is a context management server that supports Model Context Protocol using SQLite for persistence and offers real-time communication through Server-Sent Events. It integrates with GitHub Copilot and provides RESTful API routes for context handling.
MCP Server (Model Context Protocol)
Serveur de gestion de contexte compatible avec le protocole MCP (Model Context Protocol), utilisant SQLite pour la persistance et SSE (Server-Sent Events) pour les communications en temps réel.
Version actuelle : 2.0.0
🚀 Installation
Docker (Une seule commande)
docker run -d --name mcp-server --restart unless-stopped -p 3000:3000 -v "$(pwd)/data":/app/data -e NODE_ENV=docker -e PORT=3000 -e DB_PATH=/app/data/context.db -e LOG_LEVEL=info --memory=512m --cpus=1 --health-cmd="wget -qO- http://localhost:3000/health || exit 1" --health-interval=30s --health-timeout=10s --health-retries=3 --health-start-period=10s --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 maf38/mcp-server:2.0.0
Docker Compose (Installation avancée)
version: '3'
services:
mcp-server:
image: maf38/mcp-server:2.0.0
container_name: mcp-server
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- /path/to/data:/app/data
environment:
NODE_ENV: docker
PORT: 3000
DB_PATH: /app/data/context.db
LOG_LEVEL: info
deploy:
resources:
limits:
memory: 512M
cpus: '1.0'
⚠️ N'oubliez pas de remplacer /path/to/data
par le chemin réel où vous voulez stocker la base de données.
Unraid
- Allez dans l'Apps
- Recherchez "MCP Server"
- Cliquez sur Install
🔧 Configuration
Variables d'environnement
Essentielles
PORT
: Port d'écoute du serveur (défaut: 3000)DB_PATH
: Chemin de la base de données (défaut: /app/data/context.db)
Logging
NODE_ENV
: Environnement d'exécution ("docker" pour désactiver les fichiers de logs)LOG_LEVEL
: Niveau de log (error, warn, info, http, debug) (défaut: info)
📖 API
Routes MCP
Route SSE (Server-Sent Events)
GET /sse
Établit une connexion SSE pour recevoir les mises à jour en temps réel.
Message MCP
POST /message
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "context/update",
"params": {
"key": "string",
"value": "string",
"metadata": {
"type": "string",
"timestamp": "string",
"source": "string"
}
}
}
Routes REST
Sauvegarder/Mettre à jour un contexte
POST /context
Content-Type: application/json
{
"key": "string",
"value": "string",
"metadata": {
"type": "string",
"timestamp": "string",
"source": "string"
}
}
Récupérer un contexte
GET /context/:key
Opérations par lots (batch)
POST /context/batch
Content-Type: application/json
[
{
"key": "string",
"value": "string",
"metadata": {
"type": "string",
"timestamp": "string",
"source": "string"
}
}
]
Supprimer un contexte
DELETE /context/:key
Routes système
Vérifier l'état du serveur
GET /health
Obtenir les capacités du serveur
GET /capabilities
🔍 Logging
En environnement Docker
- Les logs sont envoyés vers stdout/stderr
- Accessibles via
docker logs mcp-server
- Niveaux de log configurables via
LOG_LEVEL
En environnement standard
- Logs stockés dans le dossier
logs/
- Rotation quotidienne des fichiers
- Compression automatique des anciens logs
- Conservation pendant 14 jours
- Limite de 20MB par fichier
Format des logs
YYYY-MM-DD HH:mm:ss.SSS [LEVEL] [CONTEXT] Message {Metadata}
🔒 Persistance des données
Les données sont stockées dans SQLite à l'emplacement spécifié par DB_PATH
.
Pour Docker et Unraid, montez un volume sur /app/data
.
🛠️ Développement
Prérequis
- Node.js >= 18
- npm
Installation
npm install
npm run build
npm start
Tests
npm test
📦 Publication Docker
L'image est disponible sur Docker Hub :
- Version stable (2.0.0) :
maf38/mcp-server:2.0.0
- Version latest :
maf38/mcp-server:latest
🔄 Intégration avec GitHub Copilot
Ce serveur implémente le protocole MCP (Model Context Protocol) qui permet à GitHub Copilot de maintenir un contexte persistent entre les sessions. Les fonctionnalités incluent :
- Communication bidirectionnelle via SSE
- Format de messages JSON-RPC 2.0
- Persistance SQLite
- Support des métadonnées
- Opérations batch
Pour plus d'informations sur le protocole MCP, consultez la documentation dans le dossier docs/
.