Lightweight observability for MCP agent interactions — capture every tool call, generate visual audit trails.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"mcp-audit-trail","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# mcp-audit-trail Your MCP agent just called 14 tools, accessed employee records, and submitted a PTO request. Do you know what actually happened? This library sits between any MCP client and server as a transparent proxy, logs every JSON-RPC message, and spits out an HTML report you can actually read. Zero changes to your server code. Zero runtime dependencies.    <p align="center"> <img src="https://raw.githubusercontent.com/khushidahi/mcp-audit-trail/main/docs/images/full-report.png" alt="MCP Audit Trail report" width="700"> </p> --- ## The problem [MCP](https://modelcontextprotocol.io/) gives agents the ability to call tools, query databases, and take real actions. That's great until you need to answer questions like: - What data did the agent actually read? - Did it access anything it shouldn't have? - Which tool call failed, and what arguments did it pass? - Who approved that PTO request — a human or the model? Application logs won't tell you this. You need something that understands the MCP protocol itself. ## Install ```bash pip install mcp-audit-trail ``` No runtime dependencies. Seriously — the core library is pure Python stdlib. You only need the `mcp` SDK if you want to run the included demo server. ## Quickstart ### 1. Proxy your server (nothing to change) Stick the proxy between your client and server. Both sides think they're talking to each other directly. ```bash mcp-audit-proxy \ --server "python my_server.py" \ --log audit.json \ --sensitive-tools get_pay_info get_ssn \ --write-tools submit_time_off delete_record ``` That's it. Every message flows through, gets logged to `audit.json`, and lands on the other side untouched. ### 2. Turn the log into something readable ```bash mcp-audit-report --input audit.json --output report.html ``` Open `repo…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.