
Ariadne
io.github.whyy9527由 GitHub 帳號 whyy9527 發布v0.2.2更新於 Oct 29, 2026
Deterministic local cross-service API-chain discovery for AI coding agents.
概覽
本機 MCP 伺服器,索引微服務儲存庫的介面契約層,讓助理追蹤某個操作在各服務間的呼叫鏈。
- 可以做什麼
- 索引所設定儲存庫的契約層:GraphQL mutation、REST 端點、Kafka topic 與前端查詢
- 依操作名稱查詢跨服務呼叫鏈,回傳附信心分數的排序叢集
- 展開呼叫鏈並對結果評分,用於本機回饋重排
- 結果被標記為過期時重新掃描工作區
- 執行零設定示範,複製公開範例堆疊並輸出真實呼叫鏈
- 適用情境
- 適合助理在 Spring Boot、TypeScript、FastAPI 或 Kafka 微服務工作區中作業,需要查出某個操作涉及哪些服務與契約,而非跨儲存庫全文搜尋時。較適合契約層查找,而非一般程式碼搜尋。
- 執行需求
- 以本機 stdio 程序執行,從 PyPI 安裝 ariadne-mcp,需要 Python 3.10-3.12、MCP Python SDK v1 與 PyYAML。需要一份列出待索引儲存庫路徑的設定檔,以及寫入索引資料庫的工作區。示範會複製一個公開儲存庫到使用者快取目錄。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Ariadne,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Ariadne
[License: MIT] [MCP] [ariadne MCP server] [Awesome MCP Servers]
Ariadne's thread — a way out of the microservice maze.
Cross-service API dependency graph for Spring Boot + TypeScript microservice stacks. MCP stdio server for AI coding assistants (Claude Code, Cursor, Windsurf), with a CLI twin. Local SQLite + TF-IDF. Zero ML dependencies.
[Ariadne demo — scan Spring PetClinic microservices and ask "owner"]
70-second deterministic terminal walkthrough. Reproduce it from
docs/demo.tape.
What it does
Indexes the contract layer — GraphQL mutations, REST endpoints, Kafka topics, frontend queries. Nothing else. That's why results fit an AI context window.
Ask Claude "where does createOrder live across the stack?" and
query_chains returns:
The response is intentionally bounded for an AI context window. See the
reproducible public-stack benchmark for measured retrieval,
serialized token, and timing results against rg and grep.
Current public-stack benchmark (48 reviewed queries across Spring REST, GraphQL/TypeScript, Kafka, and FastAPI):
Full methodology and per-stack results · raw JSON evidence
This corpus is operation-name-heavy and measures deterministic contract lookup compatibility. It is not yet a natural-language relevance benchmark.
Reproduce the measurements with uv:
The first run that uses tiktoken downloads its encoding data and needs network
access. The benchmark also calls the system git, rg, and grep commands.
Supports: GraphQL · Spring HTTP/Kafka/RestClient · Python FastAPI · TypeScript Apollo/fetch/axios · Cube.js.
Try it in 30 seconds (zero config)
Clones spring-petclinic-microservices into
~/.cache/ariadne-mcp/demo, scans it, and prints the top cluster for
owner — a real cross-service call chain. No config file, no workspace
setup.
Did Ariadne find the chain you expected? Share one minute of structured feedback. Ariadne sends no usage data automatically; the form opens only when you choose to submit it.
Install on your own workspace
Restart Claude Code. install is idempotent — re-run after pulling new
code, or let the assistant call rescan on a stale_warning.
Run an MCP server from a source checkout
Prepare the environment with the project's pinned uv version, then configure
the MCP client to launch that environment's Python directly:
Use an absolute interpreter path in the MCP client configuration. Run the sync
step after dependency changes; it is separate from the long-running server.
--inexact preserves other installed dependency groups in a development checkout.
If UV_PROJECT_ENVIRONMENT selects another environment, configure that
environment's Python instead of .venv/bin/python.
With the project's pinned uv version, wrapping a long-running server in uv run
keeps uv's shared package-cache lock held for the server's lifetime, which
prevents normal uv cache prune. A direct Python launch avoids that lock.
Separate stdio client connections can run separate server processes.
After your first real query, you can optionally send closed-ended usage feedback. No source, query, or usage data is transmitted by Ariadne itself.
Config
Scanners are inferred from each repo's top-level files
(pom.xml / build.gradle / package.json / SDL). See
docs/CONFIG.md for the detection table and override
syntax.
Reproducible public samples
Each sample pins an upstream commit, scans real service source, runs one query, and verifies manually reviewed node IDs:
Run one from a source checkout:
Evaluate ranking
Keep a JSONL judgment list for queries that matter to your workspace:
Run it against a built DB:
The command evaluates top-k hit rate and MRR using a stable internal candidate
depth, and exits non-zero when a configured threshold fails. Add
--feedback-db .ariadne/feedback.db to include local feedback reranking in the
eval.
Architecture, MCP tools, scoring math, feedback boost →
docs/ARCHITECTURE.md. Custom scanners (Go,
Rust, anything) → docs/CUSTOM_SCANNERS.md.
Maintainer adoption snapshots → docs/ADOPTION_METRICS.md.
Business acceptance and ablation
The source-backed business suite covers all nine built-in scanners and the complete MCP query/expand/rate/rescan lifecycle, including a real stdio client. It uses synthetic contracts; private workspace sources and feedback stay local.
See quality experiment results for the fixed-input
baseline, component ablations, output costs and remaining limitations. The
server supports Python 3.10, 3.11, and 3.12. Runtime requirements are MCP Python
SDK v1 (mcp>=1,<2) and PyYAML (PyYAML>=6,<7); tiktoken is an optional
benchmark dependency. uv.lock pins the maintainer and CI environment and does
not constrain dependencies resolved by package users.
來源:README.md,提交 26e4599
工具
0版本歷史
4- v0.2.2最新Oct 29, 2026
- v0.2.1Oct 22, 2026
- v0.2.0Oct 12, 2026
- v0.1.3Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分