11.0 KB · updated 2026-07-06 · md

mcp.fr.md

docs/i18n/integrations/mcp.fr.md

MCP — connecter Tesserae à Claude Code, Codex, Cursor

<!-- translations:start -->

English · 한국어 · 中文 · 日本語 · Русский · Español · Deutsch

<!-- translations:end -->

Tesserae fournit un serveur stdio Model Context Protocol qui expose le graphe typé compilé à tout client compatible MCP : Claude Code, Codex CLI, Cursor, Claude Desktop, et d'autres. Le serveur annonce trois surfaces MCP complètes — tools, resources et prompts — afin que les clients puissent à la fois interroger le graphe à la demande et amorcer le contexte à moindre coût depuis des URI canoniques.

Prérequis

Le serveur lit depuis .tesserae/graph.json, donc une compilation initiale est requise :

cd /path/to/your-project
tesserae init    # interactive; or --yes for non-interactive
tesserae compile  # deterministic, no LLM calls, no API keys

Recompilez chaque fois que vos sources changent. Le serveur prendra en compte le nouveau graphe au prochain appel d'outil, sans nécessiter de redémarrage.

1) Générer la configuration client

tesserae projects mcp-config

Affiche un fragment JSON ressemblant à :

{
  "mcpServers": {
    "tesserae": {
      "command": "python3",
      "args": [
        "-m", "tesserae.mcp_server",
        "--graph", "/path/to/your-project/.tesserae/graph.json"
      ]
    }
  }
}

Le chemin exact est rempli à partir du projet courant. Passez --name <alias> si vous souhaitez un nom d'entrée de serveur différent de tesserae.

2) Coller la configuration dans votre client MCP

ClientEmplacement de la configuration
Claude Code~/.claude/mcp-servers.json (or ~/.config/claude-code/mcp-servers.json)
Claude DesktopmacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Codex CLI~/.config/codex/mcp-servers.json
CursorSettings → MCP Servers → coller le JSON
Hermes~/.hermes/config.toml (utilisez le bloc équivalent TOML affiché par mcp-config --format hermes)

Redémarrez le client après modification. La session suivante se connectera et découvrira la surface Tesserae.

3) Ce que voit le client

Tools — invoqués par le modèle

Chaque outil accepte un graph_path ou un project (alias du registre) optionnel, de sorte qu'un seul serveur peut résoudre n'importe quel vault enregistré à chaque appel. À défaut, repli sur le projet actif.

Requêtes sur le graphe et récupération

OutilRôle
schemaVocabulaire contrôlé des nœuds, arêtes et wiki-kinds
graph_summaryCompteurs de nœuds et d'arêtes ainsi que distributions de types pour le projet actif
search_nodesFiltre les nœuds publics du graphe par query, type/types, kind, limit, mode/weights hybrides ; include_superseded affiche les nœuds retirés
node_contextUn nœud + ses arêtes incidentes + les nœuds voisins. use_ppr classe les voisins via un PageRank personnalisé plutôt qu'un parcours à 1 saut ; include_superseded et limit bornent le résultat
embedding_statusIndique le backend d'embeddings actif qui alimente la recherche hybride
search_factsFaits temporels projetés depuis le graphe (style Graphiti) ; current_only filtre les faits courants
timelineFaits ordonnés par valid_from pour une vue longitudinale
graph_pprPageRank personnalisé amorcé sur un ou plusieurs seed_node_id ; renvoie les top-K nœuds les plus pertinents avec alpha, directed, edge_type_weights réglables
wiki_pageLe corps de la page markdown compilée pour un nœud, plus les liens internes qu'elle référence
raw_sourceLe markdown source d'origine (plafonné à 16 KB)
lint_reportLes derniers résultats de lint produits à la compilation (plafonné à 64 KB)

Compilateur de contexte à la demande (Phase 7)

OutilRôle
compile_contextCompile un document de contexte avec citations sur mesure pour une query ou des seeds explicites. Parcourt un sous-graphe de profondeur bornée (depth, 1–10, défaut 2), classe via PPR et remplit un budget de caractères (défaut 32000 ; 0 pour illimité). Déterministe par défaut ; avec synthesize: true, produit une tranche narrative "topic" rédigée par le LLM. Renvoie body, citations, selected_node_ids et char_budget_used
list_communitiesListe les nœuds COMMUNITY_SUMMARY créés par la passe post-compilation, classés par nombre de membres (min_size, limit) ; avec node_context, suivez les arêtes summarizes jusqu'aux membres
fresh_insightsConstats de session classés par un score de décroissance à la Ebbinghaus (les plus récents et les plus consultés d'abord) ; écarte ceux remplacés par des quasi-doublons plus récents. kind, limit, include_superseded optionnels

Mémoire de session (voir sessions.md)

OutilRôle
list_sessionsEnveloppes de session (id, started_at, title, files_touched, compteurs de constats) pour le projet actif ; since, limit
find_session_findingsTous les constats de session liés à node_id via discussed_in / references, filtrables par kinds (insight / decision / question / todo / hypothesis / takeaway)
find_code_symbol_mentionsÉtend un constat de session aux symboles CodeFunction/CodeClass/CodeMethod qu'il mentionne, via les arêtes discusses de la passe optionnelle de liaison insight↔symbole

Questions-réponses et registre

OutilRôle
askQuestions-réponses en langage naturel via le backend de mémoire configuré (raganything, cognee, ou wiki compilé). backend, top_k ; diffusion multi-vault via scope/scope_aliases ; claude_config_dir pour le routage multi-comptes
list_projects / register_project / activate_project / unregister_projectContrôle du registre multi-projets

Configuration guidée

OutilRôle
tesserae_setup_planDétecte l'environnement et propose un plan de configuration en JSON. Lecture seule — ne touche jamais à .tesserae/
tesserae_setup_applyApplique un plan (éventuellement édité) : écrit .tesserae/config.json et exécute des actions d'installation/exécution protégées. Conditionné par confirm_install_actions / confirm_run_actions

Resources — chargées automatiquement dans le contexte du modèle

URI que le client peut tirer via son sélecteur de ressources sans consommer un tour d'outil :

  • tesserae://graph/schema — même charge utile que l'outil schema, prête à servir de contexte statique
  • tesserae://graph/summary — résumé du projet actif
  • tesserae://lint-report — le dernier lint report au format markdown

Plus des templates d'URI que le client peut construire à la demande :

  • tesserae://wiki/{kind}/{slug} — le corps de n'importe quelle page wiki compilée
  • tesserae://raw/{source_path} — n'importe quel markdown source brut

Prompts — modèles de recherche en un clic

Ils apparaissent dans le menu slash du client (par ex. la palette / de Claude Code) :

PromptArgumentsCe qu'il fait
summarize-paperslug (requis)Appelle node_context + wiki_page + éventuellement raw_source, puis renvoie un résumé structuré : contribution, esquisse de méthode, résultats principaux, limites, nœuds liés
find-related-worktopic (requis), limitEnchaîne search_nodes + node_context pour les K éléments liés les plus pertinents avec justifications de pertinence
compare-approachesa, b (les deux requis)Récupère node_context pour les deux + search_facts pour les affirmations de performance ; renvoie une comparaison côte à côte avec synthèse
gap-analysistopic (optionnel)Fait remonter les questions ouvertes non résolues, les benchmarks manquants, les affirmations peu étayées
triage-open-questionsaucunListe chaque nœud OpenQuestion, les regroupe par sujet, propose un ordre de priorité

Chaque prompt se matérialise par un unique message utilisateur qui indique au modèle exactement quels outils Tesserae enchaîner, afin que le modèle n'ait pas à redécouvrir la surface à chaque fois.

Multi-projet : enregistrer plusieurs vaults sous un même serveur

Un registre persistant à ~/.tesserae/registry.json permet au même serveur MCP de résoudre n'importe quel projet enregistré par son nom :

tesserae register-project /path/to/research --name research
tesserae register-project /path/to/notes    --name notes

Après cela, tout outil acceptant project ou graph_path résoudra project: "research" via le registre au lieu d'exiger un chemin complet. Le serveur vérifie même que le graph_path enregistré existe toujours et renvoie une erreur claire si une recompilation est nécessaire.

Fan-out sur chaque vault enregistré

L'outil ask accepte scope: "all-registered" pour interroger en parallèle chaque projet enregistré et renvoyer les résultats agrégés :

{
  "name": "ask",
  "arguments": {
    "question": "Where is splatting used?",
    "scope": "all-registered"
  }
}

Restreignez à un sous-ensemble avec scope_aliases: ["research", "notes"].

CLI Claude multi-comptes

Si votre outil ask passe par la CLI Claude et que vous avez plusieurs comptes (par ex. ~/.claude et ~/.claude-personal2), passez claude_config_dir à chaque appel :

{
  "name": "ask",
  "arguments": {
    "question": "...",
    "claude_config_dir": "/Users/you/.claude-personal2"
  }
}

Le serveur exporte CLAUDE_CONFIG_DIR pour la durée de cet appel uniquement et restaure la valeur précédente ensuite. Aucune fuite entre les appels.

Vérification

Après le redémarrage de votre client MCP, confirmez la connexion :

  • Claude Code : /mcp devrait lister tesserae avec le nombre d'outils.
  • Cursor : l'icône MCP dans la barre de chat devrait afficher tesserae: connected avec les compteurs de tools/resources/prompts.
  • Codex / Hermes : invoquez n'importe quel outil par son nom (par ex. schema) et vérifiez la réponse.

Si rien n'apparaît, vérifiez à deux fois que --graph pointe vers un .tesserae/graph.json existant — le serveur valide désormais cela au démarrage et à chaque appel d'outil, vous verrez donc un message d'erreur clair plutôt qu'une 500 silencieuse.

Où cela s'inscrit

Le serveur MCP est l'interface de lecture du graphe typé. Pour le chemin d'écriture (ingestion des sources, recompilation, rafraîchissement d'outils compagnons comme RAG-Anything ou Understand-Anything), utilisez la CLI directement. Les deux sont découplés : la CLI met à jour .tesserae/, le serveur MCP lit ce qui s'y trouve au prochain appel d'outil.