Aller au contenu principal

Connectez un outil personnalisé MCP

Exemple pratique Interroger une table de QC publique par l'intermédiaire d'un serveur local MCP

Cet exemple expose une table publique RNA-seq QC existante à travers un petit serveur local MCP. Il lit un CSV fixe et offre deux opérations; il ne interroge pas le réseau, n'installe pas de paquets ou ne modifie pas l'ensemble de données.

Plateforme
Votre choix est gardé à travers les chapitres.

Télécharger l'exemple réel

Enregistrez les deux fichiers localement et notez leurs chemins complets. Le serveur utilise la bibliothèque standard de Python. Il lit le CSV sélectionné au démarrage, donc redémarrez/reconnectez-le délibérément si vous remplacez cette entrée.

Ajoutez-le dans Open-Science

  1. Ouvrez Settings → Connectors → Add connector → Local command.
  2. Définit Display name à GSE60450 QC.
  3. Choisissez python3 — script file comme Command, ou Other… avec le chemin exécutable réel Python sur Windows.
  4. Ouvrez Advanced settings. Définissez le nom/ID du connecteur à gse60450-qc et décrivez-le comme un accès en lecture seule à la table QC sauvegardée.
  5. Dans Arguments, placez le chemin absolu du script sur la première ligne et le chemin absolu du CSV sur la seconde. Chaque ligne est un seul argument. N'ajoutez pas de guillemets shell autour d'un chemin simplement parce qu'il contient des espaces.
  6. Laisser l'environnement vide pour cet exemple. Vérifiez le script du serveur, vérifiez I trust this connector, puis Add.
  7. Rechercher GSE60450 et confirmer Connected et la disponibilité pour Main Agent.

Configuration locale réelle MCP

/absolute/path/qc-mcp-server.py
/absolute/path/rnaseq-sample-qc.csv

Ces deux lignes sont un modèle de chemin, pas des chemins littéraux à coller inchangé. Si python3 n'est pas disponible dans l'application, choisissez Autre et le chemin exécutable réel. Le lanceur sélectionné doit exister sur cet ordinateur.

Entrées d ' outils et produits vérifiés

OutilEntréeContenu escompté effectif
get_dataset_summaryObjet videGSE60450, URL source, nom de fichier d'entrée, lignes 12 et identifiants d'échantillon complets
get_sample_qcsample_id chaîne de caractèresLes quatre mesures numériques de QC de l'échantillon sélectionné

Demandez à l'agent :

Utilisez le gse60450-qc Connector connecté. Appelez get_dataset_summary, puis get_sample_qc pour MCL1-DG_BC2CTUACXX_ACTTGA_L002_R1. Ne rapportez que les réponses réelles et conservez le CSV.

Dans cet exemple, l'application native a renvoyé Nombres totaux de 23,227,641, gènes de nombre zéro 8,664, gènes détectés de 18,515 et 237 médian pour cet échantillon. L'appel résumé des données a renvoyé les lignes 12. Celles-ci correspondent à la table originale de QC enregistrée.

Le Connector personnalisé connecté avec succès

Inspecter le comportement du serveur et des erreurs

Le serveur implémente MCP initialiser, ping, découverte d'outils et appels sur stdio. Ses deux schémas d'outils sont définis dans le script téléchargeable. La sortie standard est le canal de protocole; l'ajout d'imprimés de débogage ordinaires peut briser la connexion. Les diagnostics locaux appartiennent à l'erreur standard.

Cartographie des erreurs connues : un nom d'échantillon invalide peut faire surface comme connector_unavailable dans l'application même lorsque le serveur personnalisé retourne une erreur spécifique au domaine. Vérifiez le journal du serveur et validez l'identificateur de l'échantillon avant de vous reconnecter. Signaler des erreurs persistantes avec Dépannage.

N'invoquez pas le protocole tools/list comme outil d'affaires via host.mcp; l'application découvre déjà les outils du serveur lors de la connexion. La tentative d'appel gse60450-qc/tools/list a été rejetée en tant qu'outil inconnu. Utilisez les noms d'opération découverts ou inspectez le propre schéma du serveur.

Exporter et déplacer vers un autre ordinateur

Choisissez Actions → Export de la ligne, sélectionnez le format désiré et vérifiez l'aperçu de configuration. L'exportation réelle a mis en garde contre le fait que les deux chemins d'argument étaient locaux. Save configuration exporte les paramètres, pas les Python interprète, script ou CSV- Oui. Copiez ces fichiers séparément, mettez à jour les chemins, confirmez la confiance locale et répétez les deux appels réussis.

DéfautVérifier
La commande ne peut pas démarrerChemin exécutable, chemin de script et permissions de fichiers
CSV ne peut pas être luDeuxième argument et emplacement réel du fichier
Connecté mais outil indisponibleAffectation d'agent, catalogue actuel et nom exact de l'outil
Mauvaise entréeObligatoire sample_id et l'identificateur complet original, et non l'étiquette de la parcelle compacte
Erreur Connector après un appel échouéInspecter les détails d'erreur serveur/application et se reconnecter le cas échéant
Fonctionne dans un terminal mais pas dans l'applicationApp-visible exécutable/environnement et protocole seulement stdout

Pour étendre l'exemple, définissez un petit schéma d'entrée, retournez les identifiants de source et testez les entrées normales, vides et non valides avant d'exposer l'outil. Gardez ces opérations assez étroites pour qu'un utilisateur puisse inspecter ce que l'appel va lire ou changer.

Référence de mise en œuvre: ConnecteurAddForm.tsx, service.ts.

Pour gérer la même configuration personnalisée de MCP à partir de scripts, utilisez Commandes Connector CLI ou Méthodes SDK. Un test de connexion réussi découvre des outils; vérifier un appel d'affaires limité séparé avant d'appeler l'intégration opérationnelle.