MCP server: One MCP server.

Agentsnap

@mukundakattaMCP server · External

Snapshot tests for AI tool-call traces: diff, validate, and catch silent regressions.

Software testingv0.1.0MITJavaScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npm@mukundakatta/agentsnap-mcpv0.1.0

Run

npx -y @mukundakatta/agentsnap-mcp

MCP client config

{
  "mcpServers": {
    "agentsnap": {
      "command": "npx",
      "args": [
        "-y",
        "@mukundakatta/agentsnap-mcp"
      ]
    }
  }
}
README2 min read

agentsnap-mcp

npm tests mcp

An MCP server that gives AI assistants the ability to inspect, normalize, diff, and validate agent tool-call traces.

Built on top of @mukundakatta/agentsnap. Works with Claude Desktop, Cursor, Cline, Windsurf, Zed, and any other MCP client.

Tools exposed

normalize_trace

Coerce a raw tool-call trace into the canonical agentsnap Trace shape and compute a deterministic SHA-256 fingerprint hash. Use this to compare runs cheaply or feed downstream diff tools.

json
{
  "trace": [
    { "name": "search", "args": { "q": "cats" } },
    { "name": "fetch",  "args": "https://example.com" }
  ],
  "input": "find cats",
  "model": "claude-opus-4-7"
}

→

json
{
  "normalized": {
    "version": 1,
    "model": "claude-opus-4-7",
    "input": "find cats",
    "output": null,
    "tools": [
      { "name": "search", "args": { "q": "cats" } },
      { "name": "fetch",  "args": "https://example.com" }
    ],
    "error": null,
    "fingerprint": { "node": "v22.0.0", "agentsnap": "0.1.0" }
  },
  "hash": "sha256:..."
}

diff_traces

Diff a baseline trace against a current run. Returns a uniform additions / removals / changes vocabulary plus the agentsnap status code (PASSED, OUTPUT_DRIFT, TOOLS_REORDERED, TOOLS_CHANGED, REGRESSION). Use ignore_paths to silence noisy fields before classification.

json
{
  "baseline": { "version": 1, "tools": [{ "name": "search", "args": { "q": "cats" }, "result_hash": "sha256:aaa" }], "error": null, "fingerprint": {...} },
  "current":  { "version": 1, "tools": [{ "name": "search", "args": { "q": "cats" }, "result_hash": "sha256:bbb" }], "error": null, "fingerprint": {...} },
  "ignore_paths": ["tools[].result_hash"]
}

→ { "same": true, "status": "PASSED", "additions": [], "removals": [], "changes": [] }

validate_snapshot

Sanity-check a snapshot against the agentsnap Trace schema. Verifies required fields, tool-entry shape, and surfaces actionable issues. Returns valid=true on success or a list of human-readable problems.

Install

Claude Desktop

Add to claude_desktop_config.json:

json
{
  "mcpServers": {
    "agentsnap": {
      "command": "npx",
      "args": ["-y", "@mukundakatta/agentsnap-mcp"]
    }
  }
}

Cursor / Cline / Windsurf / Zed

Same shape, in the appropriate mcp.json for your client. Most clients auto-discover via npx -y @mukundakatta/agentsnap-mcp.

Local install

bash
npm install -g @mukundakatta/agentsnap-mcp
mcp-agentsnap        # listens on stdio

Why this matters

Agents that call tools drift silently. A tool argument changes shape, a nondeterministic result flips a downstream branch, an extra tool sneaks in between releases — none of it shows up in unit tests. agentsnap captures the trace; this MCP server lets your assistant inspect and reason about traces directly: normalize one, diff two, or validate a saved snapshot, all from the model's tool-use surface.

License

MIT.

Similar modules

Browse Software testing