ariadne

whyy9527/ariadne
0 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

ariadne MCP server](https://glama.ai/mcp/servers/whyy9527/ariadne/badges/score.svg)](https://glama.ai/mcp/servers/whyy9527/ariadne) ๐Ÿ ๐Ÿ  - Cross-service API dependency graph for microservice codebases.

README.md

Ariadne

![License: MIT](LICENSE) ![MCP](https://modelcontextprotocol.io) ![ariadne MCP server](https://glama.ai/mcp/servers/whyy9527/ariadne) ![Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers#-developer-tools)

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"

---

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:

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 tokens round-trip. The equivalent grep -r createOrder across four repos returns 40+ matches across DTOs, tests, and configs at ~2000 tokens, with the contract layer buried.

Supports: GraphQL ยท Spring HTTP/Kafka/RestClient ยท TypeScript Apollo/fetch/axios ยท Cube.js.

---

Try it in 30 seconds (zero config)

pip install ariadne-mcp
ariadne-mcp demo

Clones [spring-petclinic-microservices][petclinic] 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.

[petclinic]: https://github.com/spring-petclinic/spring-petclinic-microservices

---

Install on your own workspace

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

Restart Claude Code. install is idempotent โ€” re-run after pulling new code, or let the assistant call rescan on a stale_warning.

---

Config

{ "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.

---

Try it on a public sample

examples/spring-petclinic/ โ€” clone the public spring-petclinic-microservices sample, drop in the config, scan, query. Reproducible end-to-end in under a minute.

---

<sub>Architecture, MCP tools, scoring math, feedback boost โ†’ docs/ARCHITECTURE.md. Custom scanners (Go, Rust, anything) โ†’ docs/CUSTOM_SCANNERS.md.</sub>

Related MCP servers

Browse all โ†’