What does auditing your mcp.json actually tell you?
Short answer: it tells you what every tool is declared to do, and nothing about whether it still does it. A blast-radius scan of your mcp.json lists every tool your agent can call, grouped by what the tool can do, read, write, delete, or send data off your machine, and flags which contracts are unpinned and free to change. Most people have never seen that picture of their own setup.
What the same audit cannot tell you is whether any of those tools still honors the contract it declared when you connected. That is a question about change over time, not about the file in front of you, and no snapshot of a config answers it.
Why the config alone is not enough
Your mcp.json lists the servers you connected, not what their tools can do. The capability lives in each tool's declared schema and annotations. A scan reads those and classifies each tool by action type, side effect, reversibility, and whether it sends data off your machine, so you can see the irreversible and data-egressing tools at a glance.
What to look for
- Tools that can take irreversible actions (delete, execute, charge). These are the ones to be deliberate about.
- Tools that send data off your machine. An agent with one of these plus a data-reading tool is an exfiltration path.
- Unpinned contracts. Every tool in a fresh setup is unpinned, meaning nothing is watching it for change. That is a state, not a finding, but it is the gap a drift gate closes.
Is it safe to paste my mcp.json somewhere?
Only if it is parsed in your browser and never uploaded. Your mcp.json holds tokens. The scan runs entirely client-side: the file is read locally, nothing is sent to a server, and secret values are masked from display.
See it
Run the blast-radius scan on your own mcp.json. To keep watching those contracts over time, the drift gate pins each one and holds the call when it changes.
- What does an mcp.json audit not tell you?
- It cannot tell you whether a tool still honors the contract it declared when you connected. An audit reads what each tool declares right now: action type, side effect, reversibility, off-machine egress, and which contracts are unpinned. That is a snapshot of a config file. Whether a server has since redefined a tool is a question about change over time, and no reading of your mcp.json answers it.
- Is it safe to paste my mcp.json into an online tool?
- Only if it is parsed in your browser and never uploaded, because your mcp.json contains access tokens. mcpindex's scan runs entirely client-side: the file is read locally, nothing is sent to a server, and secret values are masked from display.
- What does it mean that an MCP tool contract is unpinned?
- It means nothing is watching that tool for change. In a fresh setup every tool is unpinned, so a server could redefine what a tool does and your agent would call it with the old assumptions. Pinning the contract and diffing it on later calls is what closes that gap.