Guide de Configuration MCP : Mise en Place et Configuration YAML

Qu'est-ce que MCP ?

La Plateforme Modulaire de Copilote (MCP) est un cadre pour le déploiement et la gestion d'assistants IA dotés de capacités modulaires. Elle vous permet de créer des flux de travail IA personnalisés avec des outils et des intégrations spécialisés.

Configuration YAML de Base

Configuration Minimale

# mcp-config.yml
version: "1.0"

server:
  host: "0.0.0.0"
  port: 5000

models:
  - name: "default"
    provider: "ollama"
    model: "mistral:7b"
    temperature: 0.7

tools:
  - filesystem
  - web_search

Détail de la Configuration

Paramètres du Serveur :

server:
  host: "0.0.0.0"        # Écoute sur toutes les interfaces
  port: 5000             # Port de l'API
  workers: 4             # Nombre de processus worker
  timeout: 120           # Délai d'attente de la requête (secondes)

Configuration des Modèles :

models:
  - name: "code-assistant"
    provider: "ollama"    # Options: ollama, openai, anthropic
    model: "codellama:7b"
    temperature: 0.3      # Inférieur = plus déterministe
    max_tokens: 2048
    context_window: 4096

Outils et Capacités :

tools:
  - name: "filesystem"
    enabled: true
    config:
      allowed_paths:
        - "/home/user/documents"
        - "/home/user/projects"
      
  - name: "web_search"
    enabled: true
    api_key: "${SEARCH_API_KEY}"
    
  - name: "code_execution"
    enabled: false        # Désactivé pour la sécurité

Déploiement Docker

docker-compose.yml

version: '3.8'

services:
  mcp:
    image: modularcopilot/mcp:latest
    container_name: mcp-server
    restart: unless-stopped
    ports:
      - "5000:5000"
    volumes:
      - ./config:/app/config
      - ./data:/app/data
    environment:
      - MCP_CONFIG_PATH=/app/config/mcp-config.yml
      - OLLAMA_HOST=http://ollama:11434
    depends_on:
      - ollama

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama

volumes:
  ollama_data:

Commandes de Déploiement

# Démarrer les services
docker-compose up -d

# Voir les logs
docker-compose logs -f mcp

# Tester l'API
curl http://localhost:5000/health

# Télécharger le modèle
docker exec ollama ollama pull mistral:7b

Configuration Avancée

Configuration Multi-Modèles

models:
  - name: "general"
    provider: "ollama"
    model: "mistral:7b"
    use_case: "general_queries"
    
  - name: "coding"
    provider: "ollama"
    model: "codellama:13b"
    use_case: "code_generation"
    
  - name: "creative"
    provider: "openai"
    model: "gpt-4"
    api_key: "${OPENAI_API_KEY}"
    use_case: "creative_writing"

Configuration d'Outils Personnalisés

tools:
  - name: "obsidian_integration"
    type: "custom"
    script: "/app/tools/obsidian_tool.py"
    config:
      vault_path: "/data/obsidian"
      api_endpoint: "http://localhost:27124"
      
  - name: "n8n_workflows"
    type: "webhook"
    url: "http://n8n:5678/webhook/mcp"
    headers:
      Authorization: "Bearer ${N8N_TOKEN}"

Variables d'Environnement

# Fichier .env
MCP_LOG_LEVEL=INFO
OLLAMA_HOST=http://localhost:11434
OPENAI_API_KEY=sk-...
SEARCH_API_KEY=...
N8N_TOKEN=...

Exemples d'Intégration

Avec n8n

// Nœud de Requête HTTP n8n
{
  "method": "POST",
  "url": "http://mcp:5000/api/chat",
  "body": {
    "model": "general",
    "messages": [
      {
        "role": "user",
        "content": "Résumer mes notes Obsidian"
      }
    ]
  }
}

Avec Obsidian

// Intégration du plugin Obsidian
async function queryMCP(prompt: string) {
  const response = await fetch('http://localhost:5000/api/chat', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      model: 'general',
      messages: [{ role: 'user', content: prompt }]
    })
  });
  
  return await response.json();
}

Meilleures Pratiques de Sécurité

1. Authentification

server:
  auth:
    enabled: true
    type: "bearer"
    tokens:
      - "${MCP_API_TOKEN}"

2. Limitation du Taux de Requêtes

server:
  rate_limit:
    enabled: true
    requests_per_minute: 60
    burst: 10

3. Restrictions des Outils

tools:
  - name: "filesystem"
    enabled: true
    security:
      read_only: true
      allowed_extensions: [".md", ".txt"]
      max_file_size: "10MB"

Dépannage

Problèmes Courants

MCP ne démarre pas :

# Vérifier les logs
docker logs mcp-server

# Valider la configuration
docker exec mcp-server python -c "import yaml; yaml.safe_load(open('/app/config/mcp-config.yml'))"

Le modèle ne se charge pas :

# Télécharger le modèle manuellement
docker exec ollama ollama pull mistral:7b

# Vérifier les modèles disponibles
docker exec ollama ollama list

Connexion refusée :

# Vérifier si les services sont en cours d'exécution
docker ps

# Tester la connectivité
curl http://localhost:5000/health
curl http://localhost:11434/api/version

Conclusion

MCP fournit un cadre flexible pour l'intégration de l'IA. Une configuration YAML appropriée est essentielle pour un déploiement fiable. Commencez par la configuration de base, puis ajoutez progressivement les outils et les modèles selon vos besoins.

Points Clés : - Utilisez des variables d'environnement pour les secrets - Commencez par une configuration minimale - Testez chaque outil avant de l'activer - Surveillez l'utilisation des ressources - Maintenez les configurations sous contrôle de version

Pour plus d'informations : MCP GitHub