Skip to content

Configuration MCP

Le Protocole de Contexte de Modèle (MCP - Model Context Protocol) permet à Sidian de se connecter à des outils et services externes, étendant les capacités de l'IA au-delà de l'édition de code. Ce guide explique comment configurer et gérer les serveurs MCP.

Qu'est-ce que le MCP ?

Le MCP est un protocole standardisé qui permet aux assistants IA de se connecter en toute sécurité à des outils et des sources de données externes :

Capacités

  • Opérations sur le système de fichiers
  • Gestion des dépôts Git
  • Requêtes de base de données
  • Intégrations d'API
  • Stockage de la mémoire et du contexte

Avantages

  • Exécution sécurisée en bac à sable (sandboxed)
  • Protocole standardisé
  • Architecture extensible
  • Serveurs développés par la communauté
  • Configuration facile

Emplacement de la Configuration

Sidian lit la configuration MCP à partir de l'emplacement suivant :

Fichier de Configuration

  • Windows : C:\Users\{VotreNomDUtilisateur}\.sidian\mcp.json
  • macOS : ~/.sidian/mcp.json
  • Linux : ~/.sidian/mcp.json

Configuration de Base

Le fichier de configuration MCP utilise le format JSON avec la structure suivante :

Serveurs MCP Populaires

Voici quelques serveurs MCP couramment utilisés et leurs configurations :

Serveur de Système de Fichiers

Fournit un accès au système de fichiers pour lire, écrire et gérer des fichiers :

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/chemin/vers/votre/espace/de/travail"],
      "env": {}
    }
  }
}

Serveur Git

Permet les opérations Git et la gestion des dépôts :

json
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/chemin/vers/votre/depot/git"],
      "env": {}
    }
  }
}

Memory Server

Provides persistent memory for AI conversations:

json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"],
      "env": {}
    }
  }
}

Serveur de Base de Données

Se connecte à des bases de données pour des requêtes et des opérations :

json
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "votre-cle-api-brave-ici"
      }
    }
  }
}

Configuration Avancée

Variables d'Environnement

Définir des variables d'environnement pour les serveurs MCP :

json
{
  "mcpServers": {
    "custom-server": {
      "command": "node",
      "args": ["/chemin/vers/serveur-personnalise.js"],
      "env": {
        "API_KEY": "votre-cle-api",
        "DEBUG": "true",
        "TIMEOUT": "30000"
      }
    }
  }
}

Options du Serveur

Configurer des options spécifiques au serveur :

json
{
  "mcpServers": {
    "web-server": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-web"],
      "options": {
        "timeout": 30000,
        "retries": 3,
        "logLevel": "info"
      }
    }
  }
}```

### Configuration Conditionnelle
Utiliser différentes configurations en fonction de l'environnement :

```json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "        "${SIDIAN_PROJECT_ROOT:-/chemin/par/defaut}""
      ]
    }
  }
}

Considérations de Sécurité

Sandboxing (Bac à sable)

  • Les serveurs MCP s'exécutent dans des processus isolés
  • Accès limité aux ressources système
  • Limites de permission configurables
  • Journalisation d'audit pour toutes les opérations

Contrôle d'Accès

  • Mettre sur liste blanche les répertoires et fichiers autorisés
  • Restreindre l'accès réseau
  • Limiter l'exécution de commandes
  • Surveiller l'utilisation des ressources

Bonnes Pratiques

  • Utilisez les permissions minimales requises
  • Mettez régulièrement à jour les paquets des serveurs MCP
  • Surveillez les journaux du serveur pour toute activité suspecte
  • Utilisez des variables d'environnement pour les données sensibles

Dépannage

Le Serveur ne Démarre Pas

  • Vérifiez si Node.js est installé et accessible
  • Vérifiez que le paquet du serveur est installé : npm list -g
  • Vérifiez la syntaxe du fichier de configuration MCP
  • Consultez les journaux du serveur pour des messages d'erreur spécifiques
  • Essayez d'exécuter manuellement la commande du serveur dans le terminal

Erreurs de Permission

  • Assurez-vous que Sidian a les droits de lecture/écriture sur les répertoires configurés
  • Vérifiez les permissions du système de fichiers sur les dossiers du projet
  • Exécutez Sidian en tant qu'administrateur si nécessaire (Windows)
  • Vérifiez que le fichier de configuration MCP est lisible

Le Serveur Tombe en Panne Constamment

  • Mettez à jour le paquet du serveur MCP à la dernière version
  • Vérifiez les conflits de versions de Node.js
  • Augmentez les valeurs de timeout dans la configuration
  • Surveillez les ressources système (CPU, mémoire)
  • Vérifiez les journaux du serveur pour des schémas d'erreur

Problèmes de Performance

  • Réduisez le nombre de serveurs MCP actifs
  • Optimisez les configurations des serveurs
  • Utilisez des serveurs locaux au lieu de serveurs distants
  • Surveillez la latence du réseau pour les serveurs distants
  • Envisagez des stratégies de mise en cache

Serveurs MCP Personnalisés

Création de Serveurs Personnalisés

Vous pouvez créer des serveurs MCP personnalisés pour des besoins spécifiques :

javascript
// serveur-personnalise.js
const { Server } = require('@modelcontextprotocol/sdk/server/index.js');
const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio.js');

const server = new Server({
  name: 'serveur-personnalise',
  version: '1.0.0'
});

// Ajoutez ici vos outils et ressources personnalisés
server.setRequestHandler('tools/list', async () => {
  return {
    tools: [
      {
        name: 'outil-personnalise',
        description: 'Un outil personnalisé pour des opérations spécifiques',
        inputSchema: {
          type: 'object',
          properties: {
            input: { type: 'string' }
          }
        }
      }
    ]
  };
});

const transport = new StdioServerTransport();
server.connect(transport);

Configuration pour un Serveur Personnalisé

json
{
  "mcpServers": {
    "custom": {
      "command": "node",
      "args": ["/chemin/vers/serveur-personnalise.js"]
    }
  }
}

Surveillance et Journalisation

Statut du Serveur

Surveillez le statut du serveur MCP dans Sidian :

  • Vérifiez le statut de connexion du serveur dans les paramètres
  • Visualisez les journaux du serveur dans le panneau de sortie
  • Surveillez l'utilisation des ressources
  • Suivez les taux d'erreur et les performances

Débogage

Activez la journalisation de débogage pour le dépannage :

json
{
  "mcpServers": {
    "debug-server": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/chemin"],
      "env": {
        "DEBUG": "*",
        "LOG_LEVEL": "debug"
      }
    }
  }
}

La configuration MCP vous permet d'étendre considérablement les capacités d'IA de Sidian. Commencez avec des serveurs de base et ajoutez progressivement des configurations plus complexes selon vos besoins.