Aller au contenu principal

Serveur MCP

Aperçu​

Le serveur MCP (Model Context Protocol) est un service de protocole intégré qui expose votre bibliothèque Zotero et les capacités de Synthesis sous forme de 40+ outils MCP. Les clients compatibles MCP (Claude Desktop, Cursor, extensions VS Code, etc.) peuvent accéder directement aux données de Zotero.

Le serveur MCP partage le registre de capacités sous-jacent de Host Bridge, mais suit la spécification du protocole MCP (transport HTTP streamable, JSON-RPC 2.0).

Configuration​

Zotero → Paramètres → Zotero Agents → Host Bridge → Activer le serveur MCP

Une seule case à cocher active/désactive le serveur. Activé par défaut.

Valeurs par défaut non configurables​

ParamètreValeurRaison
Adresse d'écoute127.0.0.1Sécurité : loopback uniquement
Validation de l'origineStricteUniquement 127.0.0.1, localhost, [::1]
Limite de taille de requête1 MoProtection de la mémoire
Protection d'écritureActivéeToutes les opérations d'écriture nécessitent une approbation

Sécurité​

  • Authentification par Bearer Token : partage le même jeton de session/jeton maître que Host Bridge
  • Loopback uniquement : aucun accès distant possible
  • Validation de l'origine : requêtes cross-origin rejetées (403)
  • Limite de 1 Mo : corps trop volumineux rejetés avec 413
  • File d'attente mono-threadée : 1 en exécution + 8 en attente, délai d'exécution de 45s, délai d'attente en file de 30s
  • Disjoncteurs : 3 échecs en 5 minutes → outil suspendu pendant 60s

Connexion des clients MCP​

Point d'accès​

http://127.0.0.1:<port>/mcp

Le port est attribué automatiquement (plage 26370-26569). Consultez le point d'accès Host Bridge dans les préférences pour connaître le port réel.

Exemple de configuration pour Claude Desktop​

{
"mcpServers": {
"zotero-skills": {
"type": "http",
"url": "http://127.0.0.1:26370/mcp",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}

Obtenez le jeton depuis Préférences → Host Bridge → Copier le jeton maître.

Détails du protocole​

  • Transport : HTTP streamable (POST /mcp)
  • Version : 2025-06-18
  • Identité du serveur : zotero-skills / "Zotero Agents Context Broker" v0.4.0
  • GET /mcp → 405 (seul POST est accepté)
  • Requêtes sans id → traitées comme des notifications (pas de réponse)
  • id: null → explicitement invalide

Inventaire des outils​

Tous les 40+ outils

Outils de lecture​

OutilDescription
get_current_viewInformations sur la vue actuelle de Zotero
get_selected_itemsRésumés des notices actuellement sélectionnées
search_itemsRechercher des notices (limite ≤ 50)
list_library_itemsListe paginée des notices
get_item_detailMétadonnées complètes d'une notice
get_item_notesLister les notes enfants
get_note_detailLire le corps d'une note (par blocs, ≤16k caractères par bloc)
list_note_payloadsLister les payloads de workflow dans une note
get_note_payloadLire un payload
get_item_attachmentsLister les manifestes de pièces jointes (pas d'octets de fichier)
prepare_paper_reading_contextAgréger les métadonnées, notes, payloads et pièces jointes pour un article

Outils d'écriture (nécessitent une approbation)​

OutilDescription
preview_mutationPrévisualiser une opération d'écriture sans l'exécuter
update_item_fieldsMettre à jour les champs autorisés d'une notice
add_item_tagsAjouter des balises à une ou plusieurs notices
remove_item_tagsSupprimer des balises
create_child_noteCréer une note enfant
update_noteMettre à jour le corps d'une note
create_markdown_noteCréer une note avec du HTML rendu + un payload Markdown en base64
update_markdown_noteMettre à jour une note existante basée sur du Markdown
ingest_paperIngérer un article par DOI/arXiv/PMID/ISBN (avec pièce jointe PDF)
add_items_to_collectionAjouter des notices à une collection
remove_items_from_collectionRetirer des notices d'une collection

Outil de diagnostic​

OutilDescription
get_mcp_statusDiagnostics du service : file d'attente, disjoncteurs, requêtes récentes

Outils de Synthesis​

OutilDescription
topics.listLister tous les sujets
topics.find_by_paper_refTrouver les sujets par référence d'article
topics.get_contextObtenir le contexte complet d'un sujet
topics.get_review_inputAssembler le package de revue d'un sujet
schemas.getObtenir les définitions de schéma
concepts.queryInterroger la base de connaissances de concepts
citation_graph.query_clusterInterroger un cluster de citations
citation_graph.get_overviewObtenir l'aperçu du graphe
citation_graph.get_sliceExtraire une tranche de sous-graphe
citation_graph.get_metricsCalculer les métriques du graphe (pagerank, foundation, frontier)
citation_graph.rank_external_referencesClasser les références externes
citation_graph.rank_library_papersClasser les articles de la bibliothèque
library_index.getIndex paginé de la bibliothèque
resolvers.resolveRésoudre les résolveurs de références/sujets
reference_index.getObtenir l'index de références
paper_artifacts.get_manifestObtenir le manifeste des artefacts
paper_artifacts.readLire le contenu des artefacts
paper_artifacts.export_filteredExporter les artefacts filtrés
paper_artifacts.resolve_topic_digestRésoudre le digest d'un sujet
insights.get_attention_queueObtenir la file d'attention

Protection d'écriture​

Les outils d'écriture suivent le même modèle d'approbation que Host Bridge :

Le client MCP invoque un outil d'écriture
│
├── Bearer Token validé
├── Périmètre de l'outil extrait
├── Vérification de l'approbation :
│ ├── Outil en lecture seule → exécution immédiate
│ ├── Écriture pré-approuvée → exécution immédiate
│ └── Approbation nécessaire → mise en file d'attente dans l'interface Zotero
└── Exécuter / Refuser

File d'attente : maximum 50 approbations en attente ; >10 écritures refusées en 5 minutes → disjoncteur (désactivé pendant 30s).

Prochaines étapes​