Claude Assist MCP - MCP Server sécurisé par ALMC Security 2025

Claude Assist MCP

Voir sur GitHub

MCP Claude Desktop

Un serveur Model Context Protocol (MCP) qui permet à Claude Code de communiquer avec Claude Desktop. Ce serveur permet à Claude Code d'envoyer des messages à Claude Desktop et de demander des réponses.

Inspiré par claude-chatgpt-mcp, ce projet adapte le concept à l'écosystème d'Apple en utilisant l'automatisation native de macOS.

Fonctionnalités

  • Envoi d'invites de Claude Code à Claude Desktop
  • Interrogation automatique pour les réponses avec un délai configurable
  • Liste des conversations disponibles dans Claude Desktop
  • Gestion des erreurs et logique de relance
  • Journalisation complète

Installation du serveur MCP

Vous pouvez installer et utiliser ce serveur MCP de deux façons :

Option 1 : Utilisation de npx (Recommandé)

La façon la plus simple d'utiliser ce serveur est de le faire directement avec npx, sans aucune installation :

{ "mcpServers" : { "claude-desktop" : { "command" : "npx", "args" : ["mcp-claude-desktop"] } } }

Option 2 : Installation locale

  1. Clonez ce dépôt :
git clone https://github.com/dpaluy/mcp-claude-desktop cd mcp-claude-desktop
  1. Installez les dépendances :
npm install
  1. Construire le projet :
npm run build
  1. Configurer MCP :
{ "mcpServers" : { "claude-desktop" : { "command" : "node", "args" : ["/path/to/mcp-claude-desktop/dist/index.js"] } } }

Configuration requise

  • macOS 11.0+ (Big Sur ou version ultérieure)
  • Node.js 18+
  • Application Claude Desktop installée
  • Permissions d'accessibilité accordées pour AppleScript

Accorder les permissions d'accessibilité

  1. Ouvrez les Préférences Système > Sécurité et confidentialité > Confidentialité
  2. Sélectionnez "Accessibilité" dans la barre latérale gauche
  3. Cliquez sur le cadenas pour effectuer des modifications
  4. Ajoutez Terminal (ou votre application de terminal) aux applications autorisées
  5. Redémarrez votre terminal

Outils MCP

Ce serveur MCP fournit deux outils :

demander

  • Objectif: Envoyer une requête à Claude Desktop et obtenir une réponse
  • Paramètres
    • invite: Le texte à envoyer à Claude Desktop (obligatoire)
    • conversationId: ID optionnel pour continuer une conversation spécifique
    • timeout: Délai de réponse en secondes (optionnel, défaut : 30, max : 300)
    • pollingInterval: Fréquence de vérification de la réponse en secondes (facultatif, valeur par défaut : 1,5, valeur minimale : 0,5)

get_conversations

  • Objectif: Obtenir une liste des conversations disponibles dans Claude Desktop
  • Paramètres: Aucun

Utilisation

Une fois configuré, Claude Code peut utiliser le MCP de différentes manières :

Utilisation générale

Lorsque Claude utilise ces outils, il les appelle avec des paramètres comme :

Utilisation de base :

  • Outil : ask
  • Paramètres : { "prompt" : "Qu'est-ce que l'injection de dépendances ?" }

Avec un délai personnalisé :

  • Outil : ask
  • Paramètres : { "prompt" : "Expliquer l'informatique quantique", "timeout" : 120 }

Avec le délai d'attente et l'intervalle d'interrogation :

  • Outil : ask
  • Paramètres : { "prompt" : "Quick question", "timeout" : 10, "pollingInterval" : 0.5 }

Obtenir des conversations :

  • Outil : get_conversations
  • Paramètres : {}

Utilisation dans Claude

Une fois que le serveur MCP est configuré et fonctionne, vous pouvez utiliser ces outils directement dans Claude :

Utilisation de base :

  • "Utilisez l'outil ask pour demander à Claude Desktop : Quelles sont les meilleures pratiques pour la gestion des erreurs en Python ?"
  • "Utilisez get_conversations pour lister toutes mes conversations avec Claude Desktop

Avec un délai d'attente personnalisé :

  • "Utiliser l'outil ask avec un timeout de 60 pour demander à Claude Desktop : "Explique-moi la mise en œuvre de l'arbre B+" : Expliquer l'implémentation de l'arbre B+"
  • "Utiliser ask avec timeout 10 et pollingInterval 0.5 pour demander à Claude Desktop : Qu'est-ce que 2+2 ?"

Important : la configuration du serveur MCP (illustrée ci-dessus) indique seulement à Claude comment démarrer le serveur. Les paramètres timeout et pollingInterval sont spécifiés lorsque vous utilisez l'outil dans Claude, et non dans le fichier de configuration du serveur.

Limitations connues

Lecture des réponses

En raison de l'architecture de Claude Desktop basée sur Electron, cette intégration MCP ne peut pas lire les réponses de Claude de manière programmatique. L'outil peut réussir à :

  • ✅ Envoyer des invites à Claude Desktop
  • ✅ Créer de nouvelles conversations
  • ✅ Activer et mettre au point la fenêtre de Claude
  • ❌ Lire les réponses de Claude en retour

Il s'agit d'une limitation de la façon dont les applications Electron exposent les éléments de l'interface utilisateur par le biais des API d'accessibilité. Lorsque vous utilisez l'outil de demande, vous recevrez une confirmation que le message a été envoyé, mais vous devrez consulter directement la fenêtre de Claude pour voir la réponse.

Solutions de contournement

  1. Utilisez l'API de Claude: Pour un accès programmatique aux réponses, envisagez d'utiliser directement l'API de Claude au lieu de l'automatisation du bureau
  2. Vérification manuelle: Après avoir envoyé une invite, vérifiez manuellement la réponse dans la fenêtre de Claude Desktop
  3. Automatisation à sens unique: Utilisez cet outil pour les scénarios où vous avez seulement besoin d'envoyer des invites sans lire les réponses

Intégration des commandes Claude

Les commandes Claude vous permettent de créer des flux de travail réutilisables qui combinent les outils MCP. Ce projet fonctionne de manière transparente avec Claude Commands pour permettre une automatisation puissante.

Exemple : Commande Code Peer Review

Nous avons inclus un exemple de commande Claude qui démontre comment utiliser MCP Claude Desktop pour des revues de code automatisées. La commande utilise git pour analyser les changements récents et les envoyer à Claude Desktop pour un retour d'information sur la revue par les pairs.

Configuration

  1. Copiez la commande d'exemple dans votre répertoire Claude Commands :

    cp examples/claude-peer-review.md ~/.claude/commands/
  2. La commande sera disponible dans Claude Code en tant que /claude-peer-review

Utilisation

La commande peer review accepte jusqu'à 3 arguments :

  • description: Les modifications à examiner (par exemple, "correction d'authentification")
  • polling_interval: Fréquence de vérification des réponses (par défaut : 1.5s)
  • timeout: Temps d'attente maximum pour la réponse (par défaut : 30s)

Exemples :

# Revue du commit le plus récent avec les valeurs par défaut /claude-peer-review # Revue avec description /claude-peer-review "bug fix for user login" # Intervalle d'interrogation personnalisé (2 secondes) /claude-peer-review "API update" 2 # Délai d'attente personnalisé pour les revues complexes (2 minutes) /claude-peer-review "major refactor" 1.5 120

Fonctionnement

  1. Intégration Git: La commande récupère automatiquement

    • L'état actuel de git
    • Statistiques sur les livraisons récentes
    • Différentiel complet des modifications
    • Nom de la branche actuelle
  2. Révision par Claude Desktop: Envoie les modifications à Claude Desktop avec des questions spécifiques de révision :

    • Pertinence du code et qualité de l'implémentation
    • Problèmes de sécurité ou bogues potentiels
    • Qualité du code et meilleures pratiques
    • Suggestions d'améliorations
  3. Gestion des réponses: Utilise le mécanisme d'interrogation du serveur MCP pour attendre la réponse de Claude

  4. Génération d'un résumé: Fournit un résumé structuré des éléments suivants

    • Changements examinés
    • Le retour d'information de Claude
    • Actions prises en fonction des commentaires
    • Statut de la révision finale

Création de vos propres commandes

Vous pouvez créer des commandes Claude personnalisées qui utilisent MCP Claude Desktop. Les commandes doivent :

  1. Inclure les outils dans l'objet principal :

    --- allowed-tools : mcp__claude-desktop__ask, mcp__claude-desktop__get_conversations ---
  2. Utiliser les outils MCP avec les paramètres appropriés :

    mcp__claude-desktop__ask prompt : "Your prompt here" timeout : 60 pollingInterval : 2
  3. Gérer les délais d'attente avec élégance et proposer des délais d'attente plus longs pour les requêtes complexes

Voir l'exemple de commande pour une implémentation complète.

Développement

Exécution en mode développement

npm run dev

Exécution des tests

npm test

Linting

npm run lint

Vérification de type

npm run typecheck

API

Outils

demander

Envoyer une requête à Claude Desktop et obtenir une réponse.

Paramètres :

  • prompt (chaîne, obligatoire) : L'invite à envoyer
  • conversationId (chaîne, optionnel) : Poursuivre une conversation spécifique
  • timeout (nombre, optionnel) : Délai de réponse en secondes
    • Valeur par défaut : 30 secondes
    • Minimum : 1 seconde
    • Maximum : 1 seconde 300 secondes (5 minutes)
  • pollingInterval (nombre, facultatif) : Fréquence de vérification des réponses en secondes
    • Valeur par défaut : 1,5 seconde
    • Minimum : 0.5 secondes
    • Maximum : 5 secondes 10 secondes

Réponse :

Chaîne contenant la réponse de Claude

get_conversations

Obtenir la liste des conversations disponibles dans Claude Desktop.

Paramètres : Aucun

Réponse :

{ conversations : string[] ; timestamp : string ; }

Architecture

Le serveur MCP utilise AppleScript pour communiquer avec Claude Code :

  1. Claude Code envoie une invite via MCP
  2. AppleScript active Claude Desktop et crée une nouvelle conversation
  3. L'invite est saisie dans Claude Desktop
  4. Le serveur interroge Claude Desktop pour obtenir une réponse
  5. Une fois la réponse détectée, elle est analysée et renvoyée à Claude Code

Résolution des problèmes

Problèmes courants

  1. "Échec de l'exécution de l'AppleScript

    • S'assurer que Claude Desktop est installé et fonctionne
    • Vérifier les permissions d'accessibilité
    • Essayez d'exécuter le serveur avec un niveau de journal plus élevé : LOG_LEVEL=3
  2. "Response timed out" (réponse interrompue)

    • Augmenter le paramètre timeout : timeout : 60 (60 secondes)
    • Pour les requêtes complexes, utilisez des délais plus longs : timeout : 120 (2 minutes)
    • Réduire l'intervalle d'interrogation pour une détection plus rapide : pollingInterval : 0.5
    • Vérifier que Claude Desktop répond normalement
    • S'assurer que le système n'est pas soumis à une charge importante
  3. "Permission refusée

    • Accorder les permissions d'accessibilité à votre terminal
    • Exécuter la commande build avec les permissions adéquates
  4. Leserveur MCP s'arrête après avoir envoyé des requêtesSi le serveur MCP s'arrête après avoir traité des requêtes, vous pouvez :

    • Désactiver l'interrogation des réponses (recommandé pour la stabilité) :

      export SKIP_CLAUDE_POLLING=true

      Ceci enverra le message à Claude Desktop mais n'essaiera pas de lire la réponse.

    • Activer la journalisation de débogage pour voir ce qui se passe :

      export LOG_LEVEL=3
    • Vérifier la sortie stderr - Tous les journaux sont maintenant écrits sur stderr pour éviter d'interférer avec le protocole MCP sur stdout.

Limites connues de l'interrogation par réponse

L'interrogation des réponses peut occasionnellement causer de l'instabilité en raison des éléments suivants

  • Durée d'interrogation prolongée (30 secondes par défaut)
  • Lecture complexe des éléments de l'interface utilisateur à partir des applications Electron
  • Problèmes de synchronisation avec la génération de la réponse de Claude

Envisagez d'utiliser SKIP_CLAUDE_POLLING=true pour un fonctionnement plus fiable si vous n'avez pas besoin de lire les réponses.

Contribuer

Les contributions à MCP Claude Desktop sont les bienvenues ! Qu'il s'agisse de corriger des bogues, d'ajouter des fonctionnalités ou d'améliorer la documentation, votre aide est appréciée.

Pour commencer

  1. Créer un dépôt (fork)
  2. Clonez votre dépôt :
    git clone https://github.com/YOUR_USERNAME/mcp-claude-desktop cd mcp-claude-desktop
  3. Installer les dépendances :
    npm install
  4. Créer une nouvelle branche :
    git checkout -b feature/votre-nom-de-fonctionnalité

Processus de développement

  1. Effectuez vos modifications
  2. Exécuter des tests pour s'assurer que tout fonctionne :
    npm test
  3. Exécuter linting pour maintenir la qualité du code :
    npm run lint
  4. Exécuter la vérification de type :
    npm run typecheck
  5. Construire le projet :
    npm run build

Directives de style de code

  • Utiliser TypeScript pour tout le code source
  • Suivre le style de code existant (imposé par ESLint)
  • Écrire des messages de validation significatifs
  • Ajouter des tests pour les nouvelles fonctionnalités
  • Mettre à jour la documentation si nécessaire

Soumettre des modifications

  1. Livrez vos modifications avec un message descriptif :
    git commit -m "feat : add support for conversation history"
  2. Poussez vers votre fork :
    git push origin feature/votre-nom-de-fonctionnalité
  3. Créer une demande d'extraction sur GitHub

Directives pour les demandes de retrait

  • Fournir une description claire des changements
  • Faire référence à tous les problèmes liés
  • S'assurer que tous les tests sont réussis
  • Mettre à jour le README si de nouvelles fonctionnalités sont ajoutées
  • Être réactif aux commentaires de la revue de code

Signaler des problèmes

  • Utilisez GitHub Issues pour signaler les bogues
  • Inclure la version macOS et la version Node.js
  • Fournir les étapes pour reproduire le problème
  • Inclure les messages d'erreur ou les journaux pertinents

Demandes de fonctionnalités

  • Ouvrir un problème pour discuter de nouvelles fonctionnalités
  • Expliquer le cas d'utilisation et les avantages
  • Être ouvert aux retours d'expérience et aux approches alternatives

Licence

MIT

Liés dans Communication - MCP Servers sécurisés

ServeurRésuméActions
Clash of ClansVoir
Serveur Dixa MCPUne implémentation de serveur FastMCP pour l'API Dixa, fournissant des ressources et des outils pour...Voir
Gestion d'Apex X (Twitter)Voir
FastIntercomVoir
Somme du chatCe serveur MCP est utilisé pour résumer vos messages de chat.Voir
BlueskyVoir