{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_vtdp73fhpw4g","handle":"sovereign-mcp-audit","url":"https://wellknown.network/agents/sovereign-mcp-audit","links":{"self":"https://wellknown.network/agents/sovereign-mcp-audit/record.json","html":"https://wellknown.network/agents/sovereign-mcp-audit","markdown":"https://wellknown.network/agents/sovereign-mcp-audit/record.md","api":"https://wellknown.network/api/v1/agents/sovereign-mcp-audit","status":"https://wellknown.network/api/v1/agents/sovereign-mcp-audit/status","claim":"https://wellknown.network/agents/sovereign-mcp-audit/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/sovereign-mcp-audit/claim.json","badge":"https://wellknown.network/agents/sovereign-mcp-audit/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:sovereign-mcp-audit","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"sovereign-mcp-audit","summary":"Probe an MCP server for input it should refuse. Connects as a client, inventories the tools, and reports what was accepted.","description":"# sovereign-mcp-audit \n \n**Find out what your MCP servers will accept.** \n \nYou have connected some MCP servers to an agent that holds your credentials. Can you say, right now, which tools it can call, which of them change state, and what those tools will accept as input? \n \nThis answers that in about a minute, against servers you already run. \n \n```bash \npip install sovereign-mcp-audit \nsovereign-mcp-audit -- mcp-server-sqlite --db-path ./app.db \n``` \n \nApache 2.0. No configuration, no account, nothing to sign up for. \n \n--- \n \n## What it does \n \nIt connects to your server as an ordinary MCP client, reads the tool list, works out which tools change state, and then sends every field the sort of input a careless or hostile caller sends. Then it reports what came back **accepted**. \n \n``` \nTOOL INVENTORY  (5 tools) \n  tool                         risk     parameters \n  read_query                   READ     query \n  write_query                  WRITE    query \n  list_tables                  READ     (none) \n  describe_table               READ     table_name \n  append_insight               WRITE    insight \n \nFINDINGS  (35 probes sent, 7 with an observable effect) \n \n  HIGH  (5) \n    describe_table.table_name  <- sql_metacharacters \n        SQL metacharacters accepted - check whether this field is \n        interpolated into a query \n``` \n \n**State-changing tools are skipped** unless you ask for them with `--include-writes`. Nothing it sends asks a tool to destroy anything. \n \n## What it looks for \n \n| class | CWE | \n| --- | --- | \n| SQL metacharacters, shell metacharacters, path traversal, NUL bytes | CWE-89, CWE-78, CWE-22 | \n| Server-side request forgery against cloud metadata, loopback and private ranges | CWE-918 | \n| State handles accepted without an ownership check | CWE-639 | \n| Errors that disclose queries, stack traces, paths or credentials | CWE-209 | \n| Prompt injection accepted verbatim into text a model will read | | \n| Missing length and range limits, und…","publisher":null,"homepage":"https://sovereign-shield.net","repository":"https://github.com/mattijsmoens/sovereign-mcp-audit/issues","version":"1.0.0","license":null,"protocols":["mcp"],"tags":["mcp","model-context-protocol","security","audit","scanner","ssrf","input-validation","ai-agents"],"pricing":null,"endpoints":[{"url":"pypi:sovereign-mcp-audit","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"security.scanning","name":"Security Scanning","confidence":1,"provenance":"declared"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.745,"provenance":"derived"}],"categories":["data","dev","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"sovereign-mcp-audit","registry":"pypi","observedAt":"2026-09-10T12:23:43.068Z","publishedAt":"2026-08-23T18:13:46.883092Z","latestVersion":"1.0.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"sovereign-mcp-audit","url":"https://pypi.org/project/sovereign-mcp-audit/","firstSeenAt":"2026-09-10T12:23:03.070Z","fetchedAt":"2026-09-10T12:23:03.070Z","normalizedAt":"2026-09-10T12:23:03.070Z"}]},"firstSeenAt":"2026-09-10T12:23:03.070Z","updatedAt":"2026-09-10T12:23:43.068Z"}