Trailmark MCP Server
Servidor MCP de Trailmark
El servidor MCP de Trailmark es un envoltorio MCP independiente para .
Aunque entiendo el uso que hace ToB con , mi caso de uso requiere un servidor MCP que pueda analizar y servir múltiples grafos. El servidor puede escanear múltiples repositorios y el LLM puede solicitar información de cada uno por separado.
Creado principalmente con OpenAI GPT-5.5 a través de Github Copilot en VS Code. Dirija su LLM al directorio ai-docs para obtener documentación y soporte de desarrollo.
Requisitos
Python 3.12+
uv
Metadatos del proyecto:
nombre del paquete:
trailmark-mcpcomando CLI:
trailmark-mcp
Instalación
Instale las dependencias de tiempo de ejecución y desarrollo:
uv sync --group devInicio rápido
Inicie el servidor a través de stdio:
uv run trailmark-mcp serve --transport stdioPrueba de humo de la ruta de escaneo directo sin un cliente MCP:
uv run trailmark-mcp scan /path/to/repoOmita el preanálisis durante el escaneo cuando sea necesario:
uv run trailmark-mcp scan /path/to/repo --skip-preanalysisCómo funciona el servidor
El punto de entrada principal del ciclo de vida es open_repository(...).
Resumen del comportamiento:
si no existe ninguna instantánea, el servidor escanea la fuente, ejecuta opcionalmente el preanálisis y guarda la primera instantánea
si existe una instantánea y
rescan=False, el servidor recarga la última instantánea en una sesión activasi
rescan=True, el servidor reconstruye desde la fuente y guarda una instantánea nueva
Esto significa que el flujo común es:
llamar a
open_repositoryusar herramientas de grafo contra la sesión devuelta
llamar a
save_snapshotdespués de mutaciones significativas en memoria cuando desee persistencia
Modelo de sesión
session_id es el estado del envoltorio MCP, no el estado central de Trailmark.
Semántica actual:
cada llamada a
open_repository(...)crea un nuevo ID de sesiónpueden coexistir múltiples sesiones activas
las herramientas aceptan
session_idpara apuntar a un grafo específicoel
session_idomitido utiliza la sesión abierta más recientemente que aún esté abiertacerrar la sesión predeterminada promueve la sesión restante abierta más recientemente
Utilice current_repository(session_id=...) para verificar a qué repositorio apunta una sesión.
Herramientas MCP públicas
Ciclo de vida:
open_repositorycurrent_repositoryclose_repositorysave_snapshot
Navegación:
graph_summarydiff_graphssearch_nodescallers_ofcallees_ofancestors_ofreachable_frompaths_betweenentrypoint_paths_toattack_surfacecomplexity_hotspotsfunctions_that_raise
Contexto y mutación:
subgraphannotations_offindingsnodes_with_annotationrun_preanalysisannotate_nodeclear_annotationsaugment_findings
Notas:
diff_graphs(before_session_id, after_session_id)trata aaftercomo el nuevo estadosearch_nodesadmitecontains,exactysuffixlas superficies auxiliares eliminadas como
scan_repositoryytool_manifestya no forman parte intencionalmente del tiempo de ejecución público
Comportamiento de las instantáneas
Las instantáneas se escriben bajo el repositorio analizado, no bajo este repositorio del servidor:
<target-repo>/.trailmark/snapshots/<timestamp>/Los artefactos de instantánea actuales incluyen:
graph.jsonsummary.jsonentrypoints.jsonhotspots.jsonsubgraphs.jsonscan-metadata.json
Las instantáneas admiten la recarga en una sesión activa. Use rescan=True cuando necesite explícitamente una reconstrucción nueva desde la fuente.
Diseño del repositorio
Archivos clave:
src/trailmark_mcp/cli.py: punto de entrada CLI parascanyservesrc/trailmark_mcp/mcp_app.py: registro de herramientas MCPsrc/trailmark_mcp/tool_catalog.py: metadatos declarativos para herramientas expuestassrc/trailmark_mcp/services/registry.py: seguimiento de sesionessrc/trailmark_mcp/services/runtime.py: comportamiento principal del tiempo de ejecución respaldado por Trailmark
Desarrollo
Ejecute la suite de pruebas enfocada:
uv run --group dev pytest tests/test_tool_catalog.py tests/test_registry.py tests/test_stdio_server.pyLa CI actual ejecuta esa misma suite enfocada en Python 3.12.
Regla de extensión:
agregar o cambiar el comportamiento del tiempo de ejecución
registrar la herramienta en
mcp_app.pyactualizar los metadatos en
tool_catalog.pyactualizar las pruebas
actualizar la documentación si cambió el comportamiento público
Uso en VS Code
VS Code puede iniciar este servidor directamente a través de MCP utilizando un archivo mcp.json a nivel de espacio de trabajo.
Configuración típica:
abra este repositorio en VS Code
asegúrese de que las dependencias estén instaladas con
uv sync --group devmantenga la definición del servidor en
.vscode/mcp.jsondeje que el cliente MCP inicie el servidor a través de
stdio
Este repositorio ya incluye .vscode/mcp.json para uso local.
Ejemplo de mcp.json:
{
"servers": {
"trailmark-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"trailmark-mcp",
"serve",
"--transport",
"stdio"
]
}
}
}Si utiliza este servidor desde un espacio de trabajo multiproyecto más grande, copie la misma definición en el .vscode/mcp.json de la raíz de ese espacio de trabajo y asegúrese de que el comando se ejecute en un entorno donde uv y este proyecto estén disponibles.
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