{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_dtqh5xvjjxt5","handle":"mcp-auditor","url":"https://wellknown.network/agents/mcp-auditor","links":{"self":"https://wellknown.network/agents/mcp-auditor/record.json","html":"https://wellknown.network/agents/mcp-auditor","markdown":"https://wellknown.network/agents/mcp-auditor/record.md","api":"https://wellknown.network/api/v1/agents/mcp-auditor","status":"https://wellknown.network/api/v1/agents/mcp-auditor/status","claim":"https://wellknown.network/agents/mcp-auditor/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-auditor/claim.json","badge":"https://wellknown.network/agents/mcp-auditor/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-auditor/history","tools":"https://wellknown.network/api/v1/agents/mcp-auditor/tools"},"ard":{"identifier":"urn:air::server:mcp-auditor","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-auditor","summary":"Agentic security testing for MCP servers","description":"# mcp-auditor\n\nAgentic security testing for MCP servers.\n\n[![PyPI version](https://img.shields.io/pypi/v/mcp-auditor)](https://pypi.org/project/mcp-auditor/)\n[![CI](https://github.com/mkrtchian/mcp-auditor/actions/workflows/ci.yml/badge.svg)](https://github.com/mkrtchian/mcp-auditor/actions/workflows/ci.yml)\n[![Evals](https://github.com/mkrtchian/mcp-auditor/actions/workflows/evals.yml/badge.svg)](https://github.com/mkrtchian/mcp-auditor/actions/workflows/evals.yml)\n[![LangGraph](https://img.shields.io/badge/built%20with-LangGraph-orange.svg)](https://langchain-ai.github.io/langgraph/)\n\n![mcp-auditor demo](docs/demo/demo.gif)\n\n## The problem\n\nMCP servers expose tools that LLM agents call with untrusted input. Testing that surface by hand does not scale, and generic fuzzers know nothing about the MCP protocol or its threat model.\n\nMost MCP security tooling today works from one of two angles. **Static analysis** reads the declared surface (tool descriptions and JSON schemas) and flags poisoning before any call is made. **Runtime observation** watches a server behave, either as a proxy on live traffic or in a sandbox that builds and runs it, and reports what the process does at the syscall and network level. Both watch a server doing its normal work.\n\n`mcp-auditor` sends the server hostile input instead. It connects to a live server, generates adversarial payloads, executes them, and judges whether the responses reveal vulnerabilities. It probes for input validation failures, injection, information leakage, error handling gaps, and resource abuse, and produces structured verdicts with justifications and severity ratings.\n\n## Quick start\n\n```bash\n# Set your API key (create one at platform.openai.com/api-keys)\nexport OPENAI_API_KEY=your-key-here\n\n# Audit an MCP server (the server runs in a Docker container, so Docker must be running)\nmkdir -p /tmp/sandbox\nuvx mcp-auditor run -- npx @modelcontextprotocol/server-filesystem /tmp/sandbox\n\n# Or launch it on this host instead…","publisher":null,"homepage":"https://github.com/mkrtchian/mcp-auditor","repository":"https://github.com/mkrtchian/mcp-auditor","version":"0.4.0","license":null,"protocols":["mcp"],"tags":["audit","fuzzing","llm","mcp","security"],"pricing":null,"endpoints":[{"url":"pypi:mcp-auditor","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":"code.security-review","name":"Security Review","confidence":0.917,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":0.882,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":0.756,"provenance":"derived"}],"categories":["ai","code","dev"],"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":"mcp-auditor","registry":"pypi","observedAt":"2026-10-28T10:24:09.631Z","publishedAt":"2026-10-05T19:11:47.424010Z","latestVersion":"0.4.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-auditor","url":"https://pypi.org/project/mcp-auditor/","firstSeenAt":"2026-09-10T00:23:46.953Z","fetchedAt":"2026-10-28T10:22:00.740Z","normalizedAt":"2026-10-28T10:22:00.740Z"}]},"firstSeenAt":"2026-09-10T00:23:46.953Z","updatedAt":"2026-10-28T10:24:09.631Z"}