Skip to main content

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"


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


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.


Evaluate ranking

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ariadne_mcp-0.1.2.tar.gz (71.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ariadne_mcp-0.1.2-py3-none-any.whl (63.3 kB view details)

Uploaded Python 3

File details

Details for the file ariadne_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: ariadne_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 71.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ariadne_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e8ee4422b54cbcc84086a29483c4458e7fca80757ae3ebc39a0e3a116dd25cb2
MD5 50f48cfaf747e7e7bb06ace3e4a70007
BLAKE2b-256 d1075fbab882b9dee0e2f5599b1201017b9305469682cddae85317b1aad56e9e

See more details on using hashes here.

File details

Details for the file ariadne_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ariadne_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 63.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ariadne_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cf1b6337aa09538e42b892e3c73ff1e3a8a5a34c48bc8d325d1d517f583fad45
MD5 d98e30e56f99feeb4c516d4d5eb85234
BLAKE2b-256 628ec4b839a2654852ec023ac07e960b2674a508e3576dd9989eeb45221ea5ec

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.3

2 files

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page