Read-only NATS and JetStream observability: trace a request across streams, rank what is broken.
MCPpedia last refreshed this data
io.github.solsolettidev/nats-trail is an MCP server that read-only NATS and JetStream observability: trace a request across streams, rank what is broken. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 54/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"nats-trail": {
"env": {
"NATS_TRAIL_API": "http://127.0.0.1:4000",
"NATS_TRAIL_TOKEN": "<bearer token>"
},
"command": "natstrail-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Every NATS GUI answers "what is in this stream?". That is the easy question.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y '@nats-trail/mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked @nats-trail/mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in analytics
MCP Server for GCP environment for interacting with various Observability APIs.
Deterministic, persistent graph server for tracking workflow state, decisions, and blockers.
MCP server that enables AI agents to perform comprehensive web audits using Google Lighthouse with 13+ tools for performance, accessibility, SEO, and security analysis.
MCP server for RocketCyber Managed SOC — incidents, alerts, agents, and customer telemetry.
MCP Security Weekly
Get CVE alerts and security updates for io.github.solsolettidev/nats-trail and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Give an AI agent safe access to your production event bus.
A web UI, a CLI and an MCP server over one bounded query engine — so humans and agents debug NATS from the same source of truth.
Every NATS GUI answers "what is in this stream?". That is the easy question.
The hard question in an event-driven system is "why did this one flow fail?" — and answering it
means following a single request_id across four streams, three services and a dead-letter subject.
Today you do that by hand, with a terminal per stream.
NATS Trail answers that question directly, and exposes the answer to agents as a typed, bounded, read-only tool contract — so you can point Claude at production and ask.
nats-trail trace --request-id req-0001d --limit 20
Or, from an agent: "Why did the refresh for s3-events fail?" — and it lands on the message that actually broke, with the retry state and the correlation ids already extracted:
There are several NATS MCP servers. They shell out to the nats CLI, return raw dumps, and expose
publish and delete while describing themselves as read-only.
NATS Trail treats the agent surface as a contract, not a wrapper:
| NATS Trail | Typical NATS MCP server | |
|---|---|---|
| Tool schemas | Explicit JSON input and output schemas per tool | None, or input only |
| Result size | limit is required, capped at 200, with cursors | Unbounded |
| Long scans | maxScan budget with explicit truncation warnings | Scans until it dies |
| Message shape | subject, timestamp, stream/seq, truncation flag, extracted request_id / correlation_id | Raw payload dump |
| Errors | Structured envelope with code and retriable | Stack traces or plain strings |
| Writes | Unreachable from the agent runtime | publish, KV and object writes exposed |
| Audit | Every call logged with origin and token identity; mutations with their arguments | None |
NATS Trail can write: publish, purge, delete messages, consumers and streams. Those live behind
/api/mutate, reachable from the UI and the CLI.
executeMcpTool() receives an McpRuntimeData interface that exposes only read functions. There is
no disabled publish behind a feature flag — there is no publish to call. A misconfigured
environment variable cannot purge your production stream, because the code path does not exist. CLI
write commands additionally