{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_g68k57bqhj2k","handle":"acrf-mcp-scan","url":"https://wellknown.network/agents/acrf-mcp-scan","links":{"self":"https://wellknown.network/agents/acrf-mcp-scan/record.json","html":"https://wellknown.network/agents/acrf-mcp-scan","markdown":"https://wellknown.network/agents/acrf-mcp-scan/record.md","api":"https://wellknown.network/api/v1/agents/acrf-mcp-scan","status":"https://wellknown.network/api/v1/agents/acrf-mcp-scan/status","claim":"https://wellknown.network/agents/acrf-mcp-scan/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/acrf-mcp-scan/claim.json","badge":"https://wellknown.network/agents/acrf-mcp-scan/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:acrf-mcp-scan","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"acrf-mcp-scan","summary":"MCP server inventory and risk scanner. Implements ACRF-03 defense pattern.","description":"# acrf-mcp-scan\n\nMCP server inventory and risk scanner.\nImplements the ACRF-03 (MCP Server Sprawl) defense pattern.\n\nPart of the ACRF framework: https://github.com/kannasekar-alt/ACRF\nPyPI: https://pypi.org/project/acrf-mcp-scan/\nPresented at RSA Conference 2026.\n\n---\n\n## Try it in your environment right now\n\nNo Docker. No setup. Just Python 3.10+.\n\n**Step 1 - Install:**\n\n    pip install acrf-mcp-scan\n\n**Step 2 - Scan your MCP config file:**\n\n    from acrf_mcp_scan import MCPScanner\n\n    scanner = MCPScanner()\n    inventory = scanner.scan_config_file(\"mcp_config.json\")\n\n    for server in inventory.suspicious_servers():\n        print(f\"WARNING {server.name}: {server.risk_summary()}\")\n\n**Step 3 - Scan a directory of MCP servers:**\n\n    inventory = scanner.scan_directory(\"/opt/mcp-servers\")\n\n**Step 4 - Compare against your approved inventory:**\n\n    from acrf_mcp_scan import MCPServerInventory\n\n    trusted = MCPServerInventory.load(\"approved_mcp.json\")\n    diff = inventory.diff(trusted)\n\n    for unauthorized in diff.added:\n        print(f\"UNAUTHORIZED: {unauthorized.name}\")\n    for missing in diff.removed:\n        print(f\"MISSING APPROVED: {missing.name}\")\n\nIf anything is unauthorized or anything has changed in command/args/version,\nyour application can fail closed and refuse to start.\n\n---\n\n## The problem this solves\n\nMCP server registries make it trivial to install third-party agent capabilities.\nThat trivial install is also an unbounded attack surface. Antiy CERT 2025\ndocumented over 1,000 malicious MCP servers in public registries, including\npostmark-mcp which silently exfiltrated email content for months before\nbeing noticed.\n\nThis is ACRF-03: MCP server sprawl.\n\nacrf-mcp-scan inventories every MCP server in your environment, flags\nsuspicious ones with a configurable rule set, and lets you compare your\nrunning inventory against an approved baseline.\n\n---\n\n## What gets flagged\n\nThe scanner checks each MCP server for:\n\n**Configuration risks**\n- Missing publisher me…","publisher":{"name":"Ravi Karthick Sankara Narayanan, Kanna Sekar","url":null},"homepage":"https://github.com/kannasekar-alt/ACRF","repository":"https://github.com/kannasekar-alt/ACRF","version":"0.1.0","license":null,"protocols":["mcp"],"tags":["ai-security","agent-security","mcp","supply-chain","scanner","acrf"],"pricing":null,"endpoints":[{"url":"pypi:acrf-mcp-scan","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","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"documents.ocr","name":"OCR","confidence":1,"provenance":"derived"},{"slug":"security.scanning","name":"Security Scanning","confidence":1,"provenance":"declared"}],"categories":["documents","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":"acrf-mcp-scan","registry":"pypi","observedAt":"2026-09-09T08:22:20.059Z","publishedAt":"2026-05-05T22:11:22.651438Z","latestVersion":"0.1.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"acrf-mcp-scan","url":"https://pypi.org/project/acrf-mcp-scan/","firstSeenAt":"2026-09-09T08:20:21.698Z","fetchedAt":"2026-09-09T08:20:21.698Z","normalizedAt":"2026-09-09T08:20:21.698Z"}]},"firstSeenAt":"2026-09-09T08:20:21.698Z","updatedAt":"2026-09-09T08:22:20.059Z"}