io.github.MukundaKatta/agentsnap
Snapshot tests for AI tool-call traces: diff, validate, and catch silent regressions.
Open source Open in the app JSON README (API)
About
Snapshot tests for AI tool-call traces: diff, validate, and catch silent regressions.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- mukundakatta
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.0
- Open pull requests
- 5
- Last push
- 2026-08-01T05:26:02Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 03:02:07
- Updated
- 2026-08-29 03:02:07
- Origin id
io.github.MukundaKatta/agentsnap
README
# agentsnap-mcp
[](https://www.npmjs.com/package/@mukundakatta/agentsnap-mcp)
[](#)
[](https://modelcontextprotocol.io)
An [MCP](https://modelcontextprotocol.io) server that gives AI assistants the
ability to inspect, normalize, diff, and validate agent tool-call traces.
Built on top of [`@mukundakatta/agentsnap`](https://github.com/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.