33800 Docs

← Retour

Proposition : MCP Server Claude Tools

Date : 28/01/2026 00:55 Status : EN ATTENTE VALIDATION

Objectif

Créer un serveur MCP (Model Context Protocol) qui expose à Claude Code :

  1. Recherche vectorielle via claude-memory API
  2. Accès connecteurs via Connectors Hub (compte gouroubleu@gmail.com)

Architecture

┌─────────────────────────────────────────────────────────────┐
│                      Claude Code                             │
│                           │                                  │
│                      MCP Protocol                            │
│                           ▼                                  │
│              ┌─────────────────────────┐                    │
│              │   mcp-claude-tools      │                    │
│              │   (Node.js/TypeScript)  │                    │
│              └───────────┬─────────────┘                    │
│                          │                                  │
│          ┌───────────────┼───────────────┐                  │
│          ▼               ▼               ▼                  │
│   ┌─────────────┐ ┌─────────────┐ ┌─────────────┐          │
│   │claude-memory│ │connectors-api│ │  (futur)   │          │
│   │  :5510      │ │   :5400      │ │            │          │
│   └─────────────┘ └─────────────┘ └─────────────┘          │
└─────────────────────────────────────────────────────────────┘

Outils MCP exposés

1. memory_search

Recherche sémantique dans la mémoire Claude.

{
  name: "memory_search",
  description: "Recherche sémantique dans la mémoire Claude (docs, tasks, backlog, scripts...)",
  parameters: {
    query: string,           // La question/recherche
    namespace?: string,      // Filtre: claude, tasks, backlog, docs, scripts, all
    limit?: number,          // Nombre de résultats (défaut: 5)
    threshold?: number       // Seuil similarité 0.3-0.9 (défaut: 0.5)
  }
}

2. memory_namespaces

Liste les namespaces disponibles et leurs stats.

{
  name: "memory_namespaces",
  description: "Liste les namespaces de la mémoire vectorielle avec stats"
}

3. connector_fetch

Appelle n'importe quelle API via Connectors Hub.

{
  name: "connector_fetch",
  description: "Appelle une API externe via Connectors Hub",
  parameters: {
    connector: string,       // github, proxmox, nextcloud, jellyfin, supabase, mailjet, ssh...
    method: string,          // GET, POST, PUT, DELETE
    path: string,            // Endpoint (ex: /user/repos, /api2/json/nodes)
    instance?: string,       // Instance spécifique si plusieurs
    body?: object,           // Corps de la requête (POST/PUT)
    query?: object           // Query params
  }
}

4. connector_list

Liste les connecteurs et instances disponibles.

{
  name: "connector_list",
  description: "Liste les connecteurs configurés et leurs instances"
}

5. ssh_execute

Exécute une commande SSH via le connecteur SSH.

{
  name: "ssh_execute",
  description: "Exécute une commande sur un serveur distant via SSH",
  parameters: {
    instance: string,        // Nom de l'instance SSH (ex: "PVE", "prod-portainer")
    command: string          // Commande à exécuter
  }
}

Authentification Connectors Hub

Le MCP stockera le token d'accès après login initial :

// Config dans ~/.claude/mcp-claude-tools.json
{
  "connectors": {
    "baseUrl": "http://192.168.1.12:5400",
    "email": "gouroubleu@gmail.com",
    "accessToken": "eyJ..." // Stocké après premier login
  },
  "memory": {
    "baseUrl": "http://192.168.1.12:5510"
  }
}

Structure du projet

/stock_8to/33800-stack/projects/mcp-claude-tools/
├── package.json
├── tsconfig.json
├── src/
│   ├── index.ts              # Entry point MCP
│   ├── tools/
│   │   ├── memory.ts         # memory_search, memory_namespaces
│   │   ├── connectors.ts     # connector_fetch, connector_list
│   │   └── ssh.ts            # ssh_execute
│   ├── clients/
│   │   ├── memory-client.ts  # Client API claude-memory
│   │   └── connectors-client.ts # Client API connectors
│   └── config.ts             # Gestion config
├── conf.gouroubleu.yml       # Config déploiement (optionnel)
└── README.md

Configuration Claude Code

Après création, ajouter dans ~/.claude/settings.json :

{
  "mcpServers": {
    "claude-tools": {
      "command": "node",
      "args": ["/stock_8to/33800-stack/projects/mcp-claude-tools/dist/index.js"],
      "env": {
        "CONNECTORS_EMAIL": "gouroubleu@gmail.com",
        "CONNECTORS_PASSWORD": "MyUlia75$w"
      }
    }
  }
}

Cas d'usage

Recherche contextuelle

Claude: Je cherche comment configurer le VPN WireGuard...
→ Appel memory_search("configuration VPN WireGuard", namespace="all")
→ Retourne les chunks pertinents de memory/freebox.md, tasks/vpn-profiles...

Vérification infrastructure

Claude: Quel est le status des VMs Proxmox ?
→ Appel connector_fetch("proxmox", "GET", "/api2/json/nodes/pve/qemu")
→ Retourne la liste des VMs avec leur état

Actions distantes

Claude: Redémarre le container connectors-api
→ Appel ssh_execute("prod-portainer", "docker restart connectors-api")
→ Retourne le résultat

Étapes de réalisation

  1. [ ] Créer le projet mcp-claude-tools
  2. [ ] Implémenter le client memory-client.ts
  3. [ ] Implémenter le client connectors-client.ts (avec auth)
  4. [ ] Implémenter les 5 outils MCP
  5. [ ] Tester localement
  6. [ ] Configurer dans Claude Code settings
  7. [ ] Documenter dans memory/

Questions

  1. Sécurité : Le password est en clair dans la config. Acceptes-tu ou préfères-tu un prompt au démarrage ?
  2. Instances SSH : Quelles machines veux-tu pré-configurer dans Connectors Hub ?
  3. Autres outils : D'autres outils MCP à ajouter (notifications, AI Orchestrator...) ?

En attente de ta validation pour commencer l'implémentation.