Trailmark MCP Server
Trailmark MCP Server
Trailmark MCP Server — это автономная оболочка MCP вокруг .
Хотя я понимаю использование ToB с , мой сценарий использования требует MCP-сервера, который может анализировать и обслуживать несколько графов. Сервер может сканировать несколько репозиториев, а LLM может запрашивать информацию из каждого отдельно.
В основном создан с помощью OpenAI GPT-5.5 через Github Copilot в VS Code. Направьте свою LLM в директорию ai-docs для получения документации и поддержки разработки.
Требования
Python 3.12+
uv
Метаданные проекта:
имя пакета:
trailmark-mcpкоманда CLI:
trailmark-mcp
Установка
Установите зависимости среды выполнения и разработки:
uv sync --group devБыстрый старт
Запустите сервер через stdio:
uv run trailmark-mcp serve --transport stdioПроведите дымовое тестирование пути прямого сканирования без MCP-клиента:
uv run trailmark-mcp scan /path/to/repoПропустите предварительный анализ во время сканирования, когда это необходимо:
uv run trailmark-mcp scan /path/to/repo --skip-preanalysisКак работает сервер
Основная точка входа жизненного цикла — open_repository(...).
Краткое описание поведения:
если снимок состояния не существует, сервер сканирует исходный код, при необходимости выполняет предварительный анализ и сохраняет первый снимок
если снимок существует и
rescan=False, сервер перезагружает последний снимок в активную сессиюесли
rescan=True, сервер пересобирает данные из исходного кода и сохраняет свежий снимок
Это означает, что типичный рабочий процесс выглядит так:
вызов
open_repositoryиспользование инструментов графа для возвращенной сессии
вызов
save_snapshotпосле значимых изменений в памяти, когда вам нужна персистентность
Модель сессии
session_id — это состояние оболочки MCP, а не состояние ядра Trailmark.
Текущая семантика:
каждый вызов
open_repository(...)создает новый идентификатор сессиинесколько активных сессий могут сосуществовать
инструменты принимают
session_idдля работы с конкретным графомпропущенный
session_idиспользует последнюю открытую сессию, которая все еще активназакрытие сессии по умолчанию делает последнюю открытую оставшуюся сессию текущей
Используйте current_repository(session_id=...), чтобы проверить, на какой репозиторий указывает сессия.
Публичные инструменты MCP
Жизненный цикл:
open_repositorycurrent_repositoryclose_repositorysave_snapshot
Навигация:
graph_summarydiff_graphssearch_nodescallers_ofcallees_ofancestors_ofreachable_frompaths_betweenentrypoint_paths_toattack_surfacecomplexity_hotspotsfunctions_that_raise
Контекст и мутации:
subgraphannotations_offindingsnodes_with_annotationrun_preanalysisannotate_nodeclear_annotationsaugment_findings
Примечания:
diff_graphs(before_session_id, after_session_id)рассматриваетafterкак новое состояниеsearch_nodesподдерживаетcontains,exactиsuffixудаленные вспомогательные поверхности, такие как
scan_repositoryиtool_manifest, намеренно больше не являются частью публичной среды выполнения
Поведение снимков состояния
Снимки записываются внутри анализируемого репозитория, а не внутри репозитория этого сервера:
<target-repo>/.trailmark/snapshots/<timestamp>/Текущие артефакты снимков включают:
graph.jsonsummary.jsonentrypoints.jsonhotspots.jsonsubgraphs.jsonscan-metadata.json
Снимки поддерживают перезагрузку в активную сессию. Используйте rescan=True, когда вам явно нужна свежая пересборка из исходного кода.
Структура репозитория
Ключевые файлы:
src/trailmark_mcp/cli.py: точка входа CLI дляscanиservesrc/trailmark_mcp/mcp_app.py: регистрация инструментов MCPsrc/trailmark_mcp/tool_catalog.py: декларативные метаданные для открытых инструментовsrc/trailmark_mcp/services/registry.py: отслеживание сессийsrc/trailmark_mcp/services/runtime.py: основное поведение среды выполнения на базе Trailmark
Разработка
Запустите целевой набор тестов:
uv run --group dev pytest tests/test_tool_catalog.py tests/test_registry.py tests/test_stdio_server.pyТекущая CI запускает тот же целевой набор тестов на Python 3.12.
Правило расширения:
добавьте или измените поведение среды выполнения
зарегистрируйте инструмент в
mcp_app.pyобновите метаданные в
tool_catalog.pyобновите тесты
обновите документацию, если изменилось публичное поведение
Использование в VS Code
VS Code может запускать этот сервер напрямую через MCP, используя файл mcp.json на уровне рабочей области.
Типичная настройка:
откройте этот репозиторий в VS Code
убедитесь, что зависимости установлены с помощью
uv sync --group devсохраните определение сервера в
.vscode/mcp.jsonпозвольте MCP-клиенту запустить сервер через
stdio
Этот репозиторий уже включает .vscode/mcp.json для локального использования.
Пример mcp.json:
{
"servers": {
"trailmark-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"trailmark-mcp",
"serve",
"--transport",
"stdio"
]
}
}
}Если вы используете этот сервер в более крупной рабочей области с несколькими проектами, скопируйте то же определение в .vscode/mcp.json в корне этой рабочей области и убедитесь, что команда выполняется в среде, где доступны uv и этот проект.
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