GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Deterministic local cross-service API-chain discovery for AI coding agents.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"ariadne": {
"command": "uvx",
"args": [
"ariadne-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add ariadne -- uvx ariadne-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"ariadne": {
"command": "uvx",
"args": [
"ariadne-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"ariadne": {
"type": "stdio",
"command": "uvx",
"args": [
"ariadne-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 whyy9527 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.2.2)于12天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
70-second deterministic terminal walkthrough. Reproduce it from docs/demo.tape.
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:
Top Cluster #1 [confidence: 0.91]
Services: gateway, orders-svc, billing-svc, web
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):
| Backend | Top-1 | Top-3 | MRR | Warm query | Mean output |
|---|---|---|---|---|---|
| Ariadne | 89.6% | 95.8% | 0.927 | <0.4 ms | 375 tokens |
rg | 37.5% | 56.2% | 0.510 | ~9 ms | 591 tokens |
grep | 37.5% | 56.2% | 0.510 | ~9 ms | 591 tokens |
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:
uv run --locked --extra benchmark python benchmarks/run.py
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.
pip install ariadne-mcp
ariadne-mcp demo
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.
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
ariadne-mcp install ariadne.config.json ~/your-workspace
Restart Claude Code. install is idempotent — re-run after pulling new code, or let the assistant call rescan on a stale_warning.
Prepare the environment with the project's pinned uv version, then configure the MCP client to launch that environment's Python directly:
cd /path/to/ariadne
uv sync --locked --no-dev --inexact .venv/bin/python -m ariadne_mcp.server \ --db /path/to/workspace/.ariadne/ariadne.db \ --fb /path/to/workspace/.ariadne/feedback.db
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.
{ "repos": [
{ "path": "../gateway" }, { "path": "../orders-svc" }, { "path": "../web" } ]}
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.
Each sample pins an upstream commit, scans real service source, runs one query, and verifies manually reviewed node IDs:
| Example | Contract path |
|---|---|
spring-petclinic | Spring REST gateway → service |
one-platform | GraphQL/TypeScript services |
kafka-microservices | Kafka producer → consumer |
fastapi-microservices | Python FastAPI routes |
Run one from a source checkout:
python examples/run.py kafka-microservices
Keep a JSONL judgment list for queries that matter to your workspace:
{"hint":"createOrder","expected_node_ids":["gateway::gql::m::createOrder"],"k":3}
{"hint":"owner","expected_node_ids":["customers::http::GET /owners/{ownerId}"],"match":"any","k":5}
Run it against a built DB:
ariadne-mcp --db .ariadne/ariadne.db eval eval/queries.jsonl --top 3 --min-hit-rate 0.8
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.
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.
uv sync --locked --extra benchmark --group dev
uv run --locked --extra benchmark --group dev python -m pytest tests/ -q uv run --locked --extra benchmark python benchmarks/ablation.py \ --output benchmarks/.work/ablation.json
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.