ariadne
Ariadne
Нить Ариадны — выход из лабиринта микросервисов.
Граф зависимостей API между сервисами для стеков Spring Boot + TypeScript. MCP stdio-сервер для ИИ-ассистентов (Claude Code, Cursor, Windsurf) с CLI-аналогом. Локальная база SQLite + TF-IDF. Никаких ML-зависимостей.

Что это делает
Индексирует уровень контрактов — GraphQL-мутации, REST-эндпоинты, Kafka-топики, фронтенд-запросы. Больше ничего. Именно поэтому результаты помещаются в контекстное окно ИИ.
Спросите Claude: "где в стеке используется createOrder?", и query_chains вернет:
Top Cluster #1 [confidence: 0.91]
Services: gateway, orders-svc, billing-svc, web
- [web] Frontend Mutation: createOrder
- [gateway] GraphQL Mutation: createOrder
- [orders-svc] HTTP POST /orders: createOrder
- [orders-svc] Kafka Topic: order-created
- [billing-svc] Kafka Listener: order-created → chargeCustomerОколо 500 токенов за запрос. Эквивалентный grep -r createOrder по четырем репозиториям вернет 40+ совпадений в DTO, тестах и конфигах объемом около 2000 токенов, где уровень контрактов будет скрыт.
Поддерживает: GraphQL · Spring HTTP/Kafka/RestClient · TypeScript Apollo/fetch/axios · Cube.js.
Related MCP server: TempoGraph
Попробуйте за 30 секунд (без настройки)
pip install ariadne-mcp
ariadne-mcp demoКлонирует spring-petclinic-microservices в ~/.cache/ariadne-mcp/demo, сканирует его и выводит основной кластер для owner — реальную цепочку вызовов между сервисами. Никаких файлов конфигурации, никакой настройки рабочего пространства.
Установка в вашем рабочем пространстве
pip install ariadne-mcp
cp "$(python -c 'import ariadne_mcp, os; print(os.path.join(os.path.dirname(ariadne_mcp.__file__), "ariadne.config.example.json"))')" ariadne.config.json
# edit ariadne.config.json (list the repos you want indexed)
ariadne-mcp install ariadne.config.json ~/your-workspaceПерезапустите Claude Code. Команда install идемпотентна — запускайте её повторно после получения нового кода или позвольте ассистенту вызвать rescan при появлении stale_warning.
Конфигурация
{ "repos": [
{ "path": "../gateway" },
{ "path": "../orders-svc" },
{ "path": "../web" }
]}Сканеры определяются автоматически на основе файлов верхнего уровня в каждом репозитории (pom.xml / build.gradle / package.json / SDL). См. docs/CONFIG.md для таблицы обнаружения и синтаксиса переопределения.
Попробуйте на публичном примере
examples/spring-petclinic/ — клонируйте публичный пример spring-petclinic-microservices, добавьте конфиг, просканируйте и выполните запрос. Воспроизводимый полный цикл менее чем за минуту.
Архитектура, инструменты MCP, математика оценки, обратная связь → docs/ARCHITECTURE.md. Пользовательские сканеры (Go, Rust и любые другие) → docs/CUSTOM_SCANNERS.md.
Available Tools
5 toolsexpand_nodeA
One-hop neighbours of a known node (endpoint / Kafka topic / GraphQL operation / frontend call), with similarity scores and file paths. Read-only; no writes except a local exploration row if called within 10 min of a matching query_chains. Returns up to 3 matched source nodes × up to 10 neighbours (edges with score ≥ 0.08), plus a stale_warning field — call rescan if non-null.
Use AFTER query_chains when you already have a concrete node name and want to trace one hop further. Use query_chains (not this) when starting from a business term or when you don't yet know a node name. Partial, case-insensitive match against node id and raw_name; ambiguous inputs return multiple source groups.
Inputs: name (required).
query_chainsA
Query cross-service chains by business term or endpoint name. Returns candidate clusters of related GraphQL operations, HTTP endpoints, Kafka topics, and frontend queries across all services indexed by the local Ariadne DB. Use this when you need to understand which APIs, topics, or frontend operations are involved in a business feature.
Inputs: hint (required), top_n.
rate_resultA
Record whether Ariadne results were useful. Call this after using query_chains or expand_node to log feedback for future improvement. If node_ids is omitted after a recent query_chains call, Ariadne infers node_ids from hint + cluster_rank. Feedback is stored locally in feedback.db and survives DB rebuilds.
Inputs: hint (required), accepted (required), node_ids, cluster_rank.
rescanA
Refresh the Ariadne index from inside the conversation. Call this when query_chains or expand_node returned a stale_warning, or after you know the user's code has changed. Re-scans every repo listed in the install-time ariadne.config.json, rebuilds TF-IDF token edges, and invalidates cached DB handles so the next query sees fresh data. No arguments; zero configuration.
Inputs: no named parameters.
show_helpA
Return a quick setup and usage guide for Ariadne. Call this first when you are unsure how to use Ariadne, how to index your own microservices, or why query_chains returned no results. Always safe to call — no DB required.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: query_chains for discovery from a business term, expand_node for one-hop traversal from a known node, rescan for index refresh, rate_result for feedback, and show_help for guidance. The descriptions explicitly disambiguate the closest pair (query_chains vs expand_node) by stating when to use each. No two tools overlap in function.
Four of five names follow a clear verb_noun pattern (expand_node, query_chains, rate_result, show_help). The lone 'rescan' is a bare verb without a noun object, a minor deviation that stays readable and consistent in style. Overall predictable and snake_case throughout.
Five tools is well-scoped for a code-relationship exploration server, covering discovery, traversal, maintenance, feedback, and help. Each tool earns its place with no redundant or filler entries. The surface is focused rather than bloated.
The lifecycle is well covered: discovery (query_chains), traversal (expand_node), freshness (rescan), and feedback (rate_result) plus onboarding help. Minor gaps exist — e.g. no way to list indexed repos or enumerating all nodes — but core workflows are supported. A read-only exploration domain reasonably needs no create/update/delete operations.
Maintenance
Related MCP Connectors
LLM Orchestration Agent (Opentelemetry Api)
LLM Observability & Orchestration Agent (Langchain)
Related MCP Servers
- FlicenseAqualityDmaintenanceA TypeScript tool that ranks files in your codebase by importance, tracks dependencies, and provides file summaries to help understand code structure through Cursor's Model Context Protocol.14302-
- AlicenseAqualityCmaintenanceCode graph context engine that parses codebases with tree-sitter (170+ languages), builds structural dependency graphs, and provides 24 MCP tools for code intelligence. One prepare_context call gives your AI agent the right files for any task. Includes focus, blast radius, hotspots, dead code detection, and hybrid search.241AGPL 3.0
- AlicenseAqualityDmaintenanceExtract domain knowledge from codebases to reduce LLM token consumption by 20x and time in agentic search by 10x — gathers and makes concepts, naming conventions, and vocabulary queryable via MCP.1943MIT
- AlicenseNot gradedqualityCmaintenanceMulti-language code-graph MCP server with 18 tools for structural code queries — find_symbol, callers, callees, blast_radius, dead_code, and cross-stack dataflow_trace from HTTP request through service layers to SQL. Tree-sitter parsing for Python, TypeScript, JavaScript, and Go; local-first, no API key required.18MIT