Skip to main content
Glama
README.md
# agentsnap-mcp

[![npm](https://img.shields.io/npm/v/@mukundakatta/agentsnap-mcp.svg)](https://www.npmjs.com/package/@mukundakatta/agentsnap-mcp)
[![tests](https://img.shields.io/badge/tests-9%20passing-brightgreen.svg)](#)
[![mcp](https://img.shields.io/badge/protocol-MCP-blue.svg)](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.

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct operation: validating a snapshot against a schema, normalizing arbitrary traces into canonical form, and diffing two normalized traces. There is no overlap or confusion between these purposes.

Naming Consistency5/5

All tool names follow a clear verb_noun pattern: validate_snapshot, normalize_trace, diff_traces. The naming is consistent, lowercase, and underscore-separated, making the toolkit predictable to navigate.

Tool Count4/5

Three tools is on the low end but appropriate for a focused trace-processing utility. Each tool serves a distinct, essential role in the pipeline, and the count does not feel lacking for the stated scope.

Completeness4/5

The set covers the core workflow of validate → normalize → diff, which is a coherent and useful surface. Minor gaps exist, such as no explicit tool for fetching or writing traces, but these are outside the apparent purpose of the server.

Maintenance

ActivityInactive
ResponsivenessNo issues