Ariadne
Measure tool-definition overhead, tool usage and connection failures across your MCP servers.
Pre-installation checks assess a server repository. Session measurements show the overhead and usage after installation.
- TypeScript
- Bun
- Claude Code
- hooks
- MCP
GitHub (opens in a new tab)README (opens in a new tab)Changelog (opens in a new tab)
On this pageMeasure the servers you run
Measure the servers you run
A registry can assess a server before installation: the source of the code, the requested permissions and scanner results. That assessment covers the repository, rather than the cost of running the server in your sessions.
Ariadne is a Claude Code plugin that measures configured MCP servers. The probe requests only the published tool list.
Connected servers add overhead before any tool call. Each request includes tool definitions with names, descriptions and JSON schemas. Twelve servers with about twelve tools each can add tens of thousands of tokens per turn, including turns that use none of those tools.
Read the session report
/ariadne reports on the current session. The table includes definition overhead, tool usage, returned data and latency:
knossos
standing cost 49,207 bytes (~13,669 estimated tokens)
reach 2/33 tools
calls 14
returned 182,904 bytes (~50,807 estimated tokens)
largest 38,213 bytes, from scan_project
share 71.4% of MCP bytes returned
latency p50 412ms
latency p95 1,204msFindings below the table include the measurements supporting each result:
3 servers were connected and never called
context7: 2 tools, 4,864 bytes (~1,351 estimated tokens) injected per request
chaos: 3 tools, 22,146 bytes (~6,152 estimated tokens) injected per request
momus: 11 tools, 8,737 bytes (~2,427 estimated tokens) injected per request
Together they cost 35,747 bytes (~9,930 estimated tokens) on every turn, whether or
not you reach for them.
Observed across 6 sessions and 214 tool calls.
argos has failed to connect in every session since 2026-08-10
31 failed connections across 22 sessions on 9 days. Last error class: CONNECTION_CLOSED.
Its tools have not existed for any of them.The report highlights differences between definition size and result size, such as a tool with a nine-word description that returns 38 KB. Connection history also identifies servers that remain configured after repeated connection failures.
Each finding requires a minimum sample. A p95 latency appears only after five calls to a tool. A "never called" finding also requires enough recorded traffic to support that conclusion.
Quick start
Requires Bun 1.1 or newer, with no other dependencies.
claude plugin marketplace add https://github.com/AraneaDev/aranea-marketplace
claude plugin install ariadne@araneaThe first session after installation builds the hook binary in the background and displays a notice. Recording starts in the next session.
Import existing local history:
ariadne backfillAfter a backfill and a probe, the report includes definition overhead and connection history. Tool reach, latency and result sizes come from hooks and require sessions with actual tool calls. A report immediately after installation correctly shows 0 recorded calls per server.
Data sources
Hooks record each tool call: duration, argument size, result size and failure status. This source has low overhead and records no activity before a call occurs.
At session start, a separate probe connects to each configured server, requests the published tools, measures the payload and disconnects. This provides the definition overhead: transcripts and logs do not record the tools/list payload.
Ariadne also reads Claude Code's existing MCP logs for connection attempts. This can provide history on the first run. The log path is undocumented and may change, so these records are supplementary. If the logs become unavailable, connection history is lost but the other measurements remain available.
Claude Code's built-in tools provide a baseline using the same measurements. They do not produce findings, because built-in tools cannot be uninstalled.
Data handling and limits
Ariadne does not disable servers or edit configuration. You decide which servers to remove.
The plugin records argument and result sizes, never their contents. Recording payloads would create another copy of potentially sensitive session data. Server command lines, environments and URLs are also excluded: claude mcp list can print API keys in the command column. Tool names, description lengths and schema shapes are recorded because they describe the published interface and are required to calculate findings.
The report provides measurements rather than server grades. Traffic from one machine is not a basis for a general rating.
Nothing is sent off the machine apart from the probe's connections to your configured servers. There is no export format. All data is stored under ~/.ariadne/.
Ariadne adds no model context unless you request a report.