Trailmark MCP Server
Trailmark MCP-Server
Trailmark MCP-Server ist ein eigenständiger MCP-Wrapper um .
Obwohl ich die Verwendung durch ToB mit verstehe, erfordert mein Anwendungsfall einen MCP-Server, der mehrere Graphen analysieren und bereitstellen kann. Der Server kann mehrere Repositories scannen und das LLM kann Informationen von jedem einzeln anfordern.
Größtenteils erstellt mit OpenAI GPT-5.5 via Github Copilot in VS Code. Verweisen Sie Ihr LLM für Dokumentation und Entwicklungsunterstützung auf das Verzeichnis ai-docs.
Anforderungen
Python 3.12+
uv
Projekt-Metadaten:
Paketname:
trailmark-mcpCLI-Befehl:
trailmark-mcp
Installation
Installieren Sie Laufzeit- und Entwicklungsabhängigkeiten:
uv sync --group devSchnellstart
Starten Sie den Server über stdio:
uv run trailmark-mcp serve --transport stdioSmoke-Test des direkten Scan-Pfads ohne MCP-Client:
uv run trailmark-mcp scan /path/to/repoÜberspringen der Voranalyse während des Scans bei Bedarf:
uv run trailmark-mcp scan /path/to/repo --skip-preanalysisFunktionsweise des Servers
Der primäre Lebenszyklus-Einstiegspunkt ist open_repository(...).
Zusammenfassung des Verhaltens:
Wenn kein Snapshot existiert, scannt der Server die Quelle, führt optional eine Voranalyse durch und speichert den ersten Snapshot.
Wenn ein Snapshot existiert und
rescan=Falsegesetzt ist, lädt der Server den neuesten Snapshot in eine Live-Sitzung.Wenn
rescan=Truegesetzt ist, baut der Server die Quelle neu auf und speichert einen frischen Snapshot.
Das bedeutet, der übliche Ablauf ist:
open_repositoryaufrufenGraph-Tools gegen die zurückgegebene Sitzung verwenden
save_snapshotnach bedeutsamen Mutationen im Arbeitsspeicher aufrufen, wenn Persistenz gewünscht ist
Sitzungsmodell
session_id ist ein Zustand des MCP-Wrappers, kein Zustand des Trailmark-Kerns.
Aktuelle Semantik:
Jeder
open_repository(...)-Aufruf erstellt eine neue Sitzungs-ID.Mehrere Live-Sitzungen können koexistieren.
Tools akzeptieren
session_id, um einen bestimmten Graphen anzusprechen.Eine weggelassene
session_idverwendet die zuletzt geöffnete, noch aktive Sitzung.Das Schließen der Standardsitzung befördert die zuletzt geöffnete verbleibende Sitzung.
Verwenden Sie current_repository(session_id=...), um zu überprüfen, auf welches Repository eine Sitzung verweist.
Öffentliche MCP-Tools
Lebenszyklus:
open_repositorycurrent_repositoryclose_repositorysave_snapshot
Navigation:
graph_summarydiff_graphssearch_nodescallers_ofcallees_ofancestors_ofreachable_frompaths_betweenentrypoint_paths_toattack_surfacecomplexity_hotspotsfunctions_that_raise
Kontext und Mutation:
subgraphannotations_offindingsnodes_with_annotationrun_preanalysisannotate_nodeclear_annotationsaugment_findings
Hinweise:
diff_graphs(before_session_id, after_session_id)behandeltafterals den neuen Zustand.search_nodesunterstütztcontains,exactundsuffix.Entfernte Hilfsflächen wie
scan_repositoryundtool_manifestsind absichtlich nicht mehr Teil der öffentlichen Laufzeit.
Snapshot-Verhalten
Snapshots werden unter dem analysierten Repository geschrieben, nicht unter diesem Server-Repository:
<target-repo>/.trailmark/snapshots/<timestamp>/Aktuelle Snapshot-Artefakte beinhalten:
graph.jsonsummary.jsonentrypoints.jsonhotspots.jsonsubgraphs.jsonscan-metadata.json
Snapshots unterstützen das Neuladen in eine Live-Sitzung. Verwenden Sie rescan=True, wenn Sie explizit einen frischen Neuaufbau aus der Quelle benötigen.
Repository-Struktur
Wichtige Dateien:
src/trailmark_mcp/cli.py: CLI-Einstiegspunkt fürscanundservesrc/trailmark_mcp/mcp_app.py: MCP-Tool-Registrierungsrc/trailmark_mcp/tool_catalog.py: deklarative Metadaten für bereitgestellte Toolssrc/trailmark_mcp/services/registry.py: Sitzungsverfolgungsrc/trailmark_mcp/services/runtime.py: Haupt-Laufzeitverhalten basierend auf Trailmark
Entwicklung
Führen Sie die fokussierte Testsuite aus:
uv run --group dev pytest tests/test_tool_catalog.py tests/test_registry.py tests/test_stdio_server.pyDie aktuelle CI führt dieselbe fokussierte Suite unter Python 3.12 aus.
Erweiterungsregel:
Laufzeitverhalten hinzufügen oder ändern
Tool in
mcp_app.pyregistrierenMetadaten in
tool_catalog.pyaktualisierenTests aktualisieren
Dokumentation aktualisieren, falls sich das öffentliche Verhalten geändert hat
Verwendung in VS Code
VS Code kann diesen Server direkt über MCP mithilfe einer mcp.json-Datei auf Workspace-Ebene starten.
Typisches Setup:
Öffnen Sie dieses Repository in VS Code
Stellen Sie sicher, dass die Abhängigkeiten mit
uv sync --group devinstalliert sindBehalten Sie die Serverdefinition in
.vscode/mcp.jsonbeiLassen Sie den MCP-Client den Server über
stdiostarten
Dieses Repository enthält bereits .vscode/mcp.json für die lokale Verwendung.
Beispiel mcp.json:
{
"servers": {
"trailmark-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"trailmark-mcp",
"serve",
"--transport",
"stdio"
]
}
}
}Wenn Sie diesen Server aus einem größeren Multi-Projekt-Workspace verwenden, kopieren Sie dieselbe Definition in das .vscode/mcp.json des Workspace-Roots und stellen Sie sicher, dass der Befehl in einer Umgebung ausgeführt wird, in der uv und dieses Projekt verfügbar sind.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/parsiya/trailmark-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server