{"_id":"@a2a-compliance/mcp","_rev":"3-24b459d962500b39e029c1ec0c62a8cd","name":"@a2a-compliance/mcp","dist-tags":{"latest":"0.3.3"},"versions":{"0.3.1":{"name":"@a2a-compliance/mcp","version":"0.3.1","keywords":["a2a","a2a-protocol","a2a-compliance","a2a-mcp","agent2agent","agent-card","agent-protocol","ai-agent","ai-agents","llm-agent","llm-tools","mcp","mcp-server","model-context-protocol","claude-desktop","claude","cursor","codex","google-a2a","compliance","validator","security","ssrf"],"author":{"name":"a2a-compliance contributors"},"license":"MIT","_id":"@a2a-compliance/mcp@0.3.1","maintainers":[{"name":"demonskye","email":"rainer.lute.vp@gmail.com"}],"homepage":"https://github.com/UltraSkye/a2a-compliance#readme","bugs":{"url":"https://github.com/UltraSkye/a2a-compliance/issues"},"bin":{"a2a-compliance-mcp":"dist/index.js"},"dist":{"shasum":"f59f83340960ef30c119db31aa4ca5e5b754e147","tarball":"https://registry.npmjs.org/@a2a-compliance/mcp/-/mcp-0.3.1.tgz","fileCount":11,"integrity":"sha512-m8YpEREhIWORMs+7oMJjFSatPdFnGu/oQflb3bKYfzmZy2TSLJ604hZfn8IFEgMBc2PTfqCXhJL4GZH4DlvL7g==","signatures":[{"sig":"MEUCICNi+AF2eMvRm5bOutMO9Pi3eydce4ps1LRkqgr0YeJpAiEA2wIJbUoPSGOQSDqBe/qkZwQBIiOkeHVD7x9iHYaXR+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18519},"main":"./dist/index.js","type":"module","_from":"file:a2a-compliance-mcp-0.3.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.10.0"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json && chmod +x dist/index.js","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"demonskye","email":"rainer.lute.vp@gmail.com"},"_resolved":"/tmp/6fc03498c7152914342e9d1ae0d9260c/a2a-compliance-mcp-0.3.1.tgz","_integrity":"sha512-m8YpEREhIWORMs+7oMJjFSatPdFnGu/oQflb3bKYfzmZy2TSLJ604hZfn8IFEgMBc2PTfqCXhJL4GZH4DlvL7g==","repository":{"url":"git+https://github.com/UltraSkye/a2a-compliance.git","type":"git","directory":"packages/mcp"},"_npmVersion":"11.11.0","description":"Model Context Protocol (MCP) server for the A2A (Agent2Agent) protocol compliance test kit. Lets Claude Desktop, Cursor, Codex, and other MCP clients invoke run_compliance / validate_agent_card / list_checks / explain_check / ssrf_check_url as native tool","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.0.0","@a2a-compliance/core":"0.3.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.4","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.1_1776509220884_0.6275457889220777","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@a2a-compliance/mcp","version":"0.3.2","keywords":["a2a","a2a-protocol","a2a-compliance","a2a-mcp","agent2agent","agent-card","agent-protocol","ai-agent","ai-agents","llm-agent","llm-tools","mcp","mcp-server","model-context-protocol","claude-desktop","claude","cursor","codex","google-a2a","compliance","validator","security","ssrf"],"author":{"name":"a2a-compliance contributors"},"license":"MIT","_id":"@a2a-compliance/mcp@0.3.2","maintainers":[{"name":"demonskye","email":"rainer.lute.vp@gmail.com"}],"homepage":"https://github.com/UltraSkye/a2a-compliance#readme","bugs":{"url":"https://github.com/UltraSkye/a2a-compliance/issues"},"bin":{"a2a-compliance-mcp":"dist/index.js"},"dist":{"shasum":"d1eaad47f20718be341d1be3feee95d12227ac52","tarball":"https://registry.npmjs.org/@a2a-compliance/mcp/-/mcp-0.3.2.tgz","fileCount":11,"integrity":"sha512-MmJZbT84ipdTZHYCSc+zltCPN4DSYZaoSMy0D12oexSKSKVG4KcHswQlOOVwZ34icYQREX2lJsc7rwfZIbd4Xg==","signatures":[{"sig":"MEUCIEpG7f4IbeWrVKhNuJKBk/iFeZ0kVdj32SVfA1biQdYqAiEA1pFA3bj2dVyOpaMbhSSno3d58B31VSXihwvnvJO+jMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18519},"main":"./dist/index.js","type":"module","_from":"file:a2a-compliance-mcp-0.3.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.10.0"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json && chmod +x dist/index.js","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"demonskye","email":"rainer.lute.vp@gmail.com"},"_resolved":"/tmp/1e36038cda472f56ed963ba11a427d8c/a2a-compliance-mcp-0.3.2.tgz","_integrity":"sha512-MmJZbT84ipdTZHYCSc+zltCPN4DSYZaoSMy0D12oexSKSKVG4KcHswQlOOVwZ34icYQREX2lJsc7rwfZIbd4Xg==","repository":{"url":"git+https://github.com/UltraSkye/a2a-compliance.git","type":"git","directory":"packages/mcp"},"_npmVersion":"11.11.0","description":"Model Context Protocol (MCP) server for the A2A (Agent2Agent) protocol compliance test kit. Lets Claude Desktop, Cursor, Codex, and other MCP clients invoke run_compliance / validate_agent_card / list_checks / explain_check / ssrf_check_url as native tool","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.0.0","@a2a-compliance/core":"0.3.2","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.4","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.2_1776515209761_0.3179728248237774","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@a2a-compliance/mcp","version":"0.3.3","description":"Model Context Protocol (MCP) server for the A2A (Agent2Agent) protocol compliance test kit. Lets Claude Desktop, Cursor, Codex, and other MCP clients invoke run_compliance / validate_agent_card / list_checks / explain_check / ssrf_check_url as native tool","keywords":["a2a","a2a-protocol","a2a-compliance","a2a-mcp","a2a-validator","a2a-test-kit","a2a-conformance","a2a-security","agent2agent","agent-card","agent-card-validator","agent-compliance","agent-endpoint-tester","agent-protocol","ai-agent","ai-agents","llm-agent","llm-tools","mcp","mcp-server","mcp-tools","model-context-protocol","claude-desktop","claude","cursor","codex","aider","cline","windsurf","continue","google-a2a","jsonrpc","json-rpc","json-rpc-2.0","compliance","compliance-testing","conformance","conformance-testing","tck","test-kit","validator","protocol","protocol-testing","security","security-audit","security-scanner","ssrf","ssrf-protection","cors","tls"],"license":"MIT","author":{"name":"a2a-compliance contributors"},"homepage":"https://github.com/UltraSkye/a2a-compliance#readme","bugs":{"url":"https://github.com/UltraSkye/a2a-compliance/issues"},"repository":{"type":"git","url":"git+https://github.com/UltraSkye/a2a-compliance.git","directory":"packages/mcp"},"publishConfig":{"access":"public"},"engines":{"node":">=22.10.0"},"type":"module","bin":{"a2a-compliance-mcp":"dist/index.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","zod":"^4.0.0","@a2a-compliance/core":"0.3.3"},"devDependencies":{"typescript":"^5.6.0","vitest":"^4.1.4"},"scripts":{"build":"tsc -p tsconfig.build.json && chmod +x dist/index.js","dev":"tsc -p tsconfig.json --watch","typecheck":"tsc -p tsconfig.json --noEmit","start":"node dist/index.js","test":"vitest run"},"_id":"@a2a-compliance/mcp@0.3.3","_integrity":"sha512-Qgp8Mz9dihPtlqMSykrulusG2NzjaL7VdKnG7a5bSHqRFz67dZehg3g2gEGCy3HYuUycE8HVh3ESc7Ix2jQZ1A==","_resolved":"/tmp/db5ad98f05f231b2f48b9f14db03765f/a2a-compliance-mcp-0.3.3.tgz","_from":"file:a2a-compliance-mcp-0.3.3.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-Qgp8Mz9dihPtlqMSykrulusG2NzjaL7VdKnG7a5bSHqRFz67dZehg3g2gEGCy3HYuUycE8HVh3ESc7Ix2jQZ1A==","shasum":"921cc383b137c866d8470a21de690de5d86ee1b7","tarball":"https://registry.npmjs.org/@a2a-compliance/mcp/-/mcp-0.3.3.tgz","fileCount":11,"unpackedSize":21821,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGxmhaMB3XbEdrRHnkuqP6H7yOj4KQcdPG8vB32e6dFEAiA52dVpuG+l3weKpwzC6mw8UT+mT8zj2f+1ZKyJvuVyzw=="}]},"_npmUser":{"name":"demonskye","email":"rainer.lute.vp@gmail.com"},"directories":{},"maintainers":[{"name":"demonskye","email":"rainer.lute.vp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.3.3_1777021551756_0.5010871379438839"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-18T10:47:00.734Z","modified":"2026-04-24T09:05:52.045Z","0.3.1":"2026-04-18T10:47:01.047Z","0.3.2":"2026-04-18T12:26:49.894Z","0.3.3":"2026-04-24T09:05:51.884Z"},"bugs":{"url":"https://github.com/UltraSkye/a2a-compliance/issues"},"author":{"name":"a2a-compliance contributors"},"license":"MIT","homepage":"https://github.com/UltraSkye/a2a-compliance#readme","keywords":["a2a","a2a-protocol","a2a-compliance","a2a-mcp","a2a-validator","a2a-test-kit","a2a-conformance","a2a-security","agent2agent","agent-card","agent-card-validator","agent-compliance","agent-endpoint-tester","agent-protocol","ai-agent","ai-agents","llm-agent","llm-tools","mcp","mcp-server","mcp-tools","model-context-protocol","claude-desktop","claude","cursor","codex","aider","cline","windsurf","continue","google-a2a","jsonrpc","json-rpc","json-rpc-2.0","compliance","compliance-testing","conformance","conformance-testing","tck","test-kit","validator","protocol","protocol-testing","security","security-audit","security-scanner","ssrf","ssrf-protection","cors","tls"],"repository":{"type":"git","url":"git+https://github.com/UltraSkye/a2a-compliance.git","directory":"packages/mcp"},"description":"Model Context Protocol (MCP) server for the A2A (Agent2Agent) protocol compliance test kit. Lets Claude Desktop, Cursor, Codex, and other MCP clients invoke run_compliance / validate_agent_card / list_checks / explain_check / ssrf_check_url as native tool","maintainers":[{"name":"demonskye","email":"rainer.lute.vp@gmail.com"}],"readme":"# @a2a-compliance/mcp\n\n> **[Model Context Protocol](https://modelcontextprotocol.io) server for\n> the A2A (Agent2Agent) protocol compliance test kit.** Lets Claude\n> Desktop, Cursor, Codex, Aider, Cline, Windsurf, Continue, and any other\n> MCP-capable client invoke `run_compliance` / `validate_agent_card` /\n> `list_checks` / `explain_check` / `ssrf_check_url` as native tools —\n> no REST, no API keys, no shell-out.\n\n[![npm](https://img.shields.io/npm/v/%40a2a-compliance%2Fmcp.svg)](https://www.npmjs.com/package/@a2a-compliance/mcp)\n[![license](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/UltraSkye/a2a-compliance/blob/main/LICENSE)\n\nPart of [`a2a-compliance`](https://github.com/UltraSkye/a2a-compliance).\nFor CLI use, install\n[`@a2a-compliance/cli`](https://www.npmjs.com/package/@a2a-compliance/cli)\ninstead.\n\n## Install\n\nThe server is published on npm and designed to be launched by an MCP\nclient via `npx`:\n\n```bash\n# sanity check\nnpx @a2a-compliance/mcp\n# ^ waits on stdio for an MCP client — Ctrl+C to exit\n```\n\n## Configure your MCP client\n\n### Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json`\n(macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"a2a-compliance\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@a2a-compliance/mcp\"]\n    }\n  }\n}\n```\n\nRestart Claude Desktop. The tools appear in the tool picker (\"⚒\" icon)\nas `run_compliance`, `validate_agent_card`, `list_checks`,\n`explain_check`, `ssrf_check_url`.\n\n### Cursor\n\n`~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (per-project):\n\n```json\n{\n  \"mcpServers\": {\n    \"a2a-compliance\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@a2a-compliance/mcp\"]\n    }\n  }\n}\n```\n\n### Codex / Cline / Windsurf / Continue\n\nSame shape — invoke via `npx @a2a-compliance/mcp` with stdio transport.\nAny MCP client that supports the public spec will work.\n\n## Tools exposed\n\n| Name | Input | What it does |\n|---|---|---|\n| `run_compliance` | `{ url, skipProtocol?, skipSecurity?, skipAuth? }` | Full compliance run — agent card + JSON-RPC + method set + auth + security. Returns a `ComplianceReport` with per-check status and a compliance tier (`NON_COMPLIANT` / `MANDATORY` / `RECOMMENDED` / `FULL_FEATURED`). |\n| `validate_agent_card` | `{ url }` | Card-only, faster. |\n| `list_checks` | `{}` | Returns the full check catalog: id, category, severity, title, description, optional `specRef` pointing back into the A2A / JSON-RPC spec. |\n| `explain_check` | `{ id }` | Returns the catalog entry for one check id. |\n| `ssrf_check_url` | `{ url }` | Ingress guard — refuses private-space resolutions. Usable by other MCP tools before they fetch user-supplied URLs. |\n\n## Example prompts\n\n- *\"Check whether `https://agent.example.com` is a compliant A2A agent\n  and tell me what's wrong.\"*\n- *\"List every A2A compliance check in the security category.\"*\n- *\"Why does `sec.ssrf` exist? Explain it.\"*\n- *\"Before you fetch this URL, SSRF-check it.\"*\n\n## Security\n\n- stdio-only transport — no network listener, no auth surface.\n- Every outbound probe uses `@a2a-compliance/core`'s hardened HTTP\n  client: 10 s timeout, 2 MB body cap, per-redirect SSRF re-check, and\n  DNS-rebinding pin (close-the-TOCTOU lookup through undici).\n- The `ssrf_check_url` tool is exposed specifically so an MCP host can\n  sanitise URLs it received from a user before handing them to any\n  fetching tool — including this one.\n\n## See also\n\n- 🏠 [Repository + full docs](https://github.com/UltraSkye/a2a-compliance)\n- 🔌 [`@a2a-compliance/cli`](https://www.npmjs.com/package/@a2a-compliance/cli) — command-line use\n- 🧱 [`@a2a-compliance/core`](https://www.npmjs.com/package/@a2a-compliance/core) — library form\n- 🛡️ [A2A Security Top 10](https://github.com/UltraSkye/a2a-compliance/blob/main/docs/A2A_SECURITY_TOP_10.md)\n- 📜 [Model Context Protocol spec](https://modelcontextprotocol.io)\n\n## License\n\nMIT.\n","readmeFilename":"README.md"}