{"_id":"@agentdefenders/mcp-scan","_rev":"6-e89706fdada753309282071997adee31","name":"@agentdefenders/mcp-scan","dist-tags":{"latest":"0.5.0-alpha"},"versions":{"0.1.0":{"name":"@agentdefenders/mcp-scan","version":"0.1.0","_id":"@agentdefenders/mcp-scan@0.1.0","maintainers":[{"name":"maruthiprithivi","email":"maruthi@typeless.io"}],"bin":{"mcp-scan":"dist/cli.js"},"dist":{"shasum":"1c55c18e2258bcc799db992dc8caee3c8075f817","tarball":"https://registry.npmjs.org/@agentdefenders/mcp-scan/-/mcp-scan-0.1.0.tgz","fileCount":38,"integrity":"sha512-Q6S27ydOrcl9zaOjF9KMU8a+LTbHzonq/maqXaDwNdBTlmkLye2U/YXDyJ9xoJ18t5c3FI7hCHBNGdO5CKHLZA==","signatures":[{"sig":"MEQCIG7v/6qp9lBhWJemWSHIdHkIIDfXqGUyfxPrYemJvs5CAiAPqaTONF4GCIwxufIkcv54JCajWCQhGXWKZUgcuIRoTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67253},"main":"./dist/index.js","_from":"file:agentdefenders-mcp-scan-0.1.0.tgz","types":"./dist/index.d.ts","private":false,"scripts":{"dev":"tsx src/cli.ts","lint":"echo 'typecheck runs via build'","test":"vitest run","build":"tsc","typecheck":"echo 'typecheck runs via mcp-scanner-test job'"},"_npmUser":{"name":"maruthiprithivi","email":"maruthi@typeless.io"},"_resolved":"/tmp/7923f34a453d719b7ed15b673a4134f3/agentdefenders-mcp-scan-0.1.0.tgz","_integrity":"sha512-Q6S27ydOrcl9zaOjF9KMU8a+LTbHzonq/maqXaDwNdBTlmkLye2U/YXDyJ9xoJ18t5c3FI7hCHBNGdO5CKHLZA==","_npmVersion":"10.8.2","description":"MCP supply chain scanner - detect tool poisoning, prompt injection, and shadowing attacks","directories":{},"_nodeVersion":"20.20.1","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-scan_0.1.0_1774409227299_0.16997380748718882","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-alpha":{"name":"@agentdefenders/mcp-scan","version":"0.1.1-alpha","_id":"@agentdefenders/mcp-scan@0.1.1-alpha","maintainers":[{"name":"maruthiprithivi","email":"maruthi@typeless.io"}],"bin":{"mcp-scan":"dist/cli.js"},"dist":{"shasum":"4997c194a7a3a6b60318f8e95764b7b9bf89bf0b","tarball":"https://registry.npmjs.org/@agentdefenders/mcp-scan/-/mcp-scan-0.1.1-alpha.tgz","fileCount":38,"integrity":"sha512-Q0P3Qjk5L5midQKAmxMljVpmHNHy1Da8ozzt1vm7jBr3ElTTYaxaVz0tGeKG7aY+vj0g+PmZc6zdkn08WRqnqQ==","signatures":[{"sig":"MEQCIDmFl/4FpyTjdZMogK5NXTf0NQg9ME0Fe6IH8eY2fSouAiAZ0nnqVPcdf8/J8QqJr8qGyWrRCjxlphmM0clZWBq14g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67259},"main":"./dist/index.js","_from":"file:agentdefenders-mcp-scan-0.1.1-alpha.tgz","types":"./dist/index.d.ts","private":false,"scripts":{"dev":"tsx src/cli.ts","lint":"echo 'typecheck runs via build'","test":"vitest run","build":"tsc","typecheck":"echo 'typecheck runs via mcp-scanner-test job'"},"_npmUser":{"name":"maruthiprithivi","email":"maruthi@typeless.io"},"_resolved":"/tmp/31dc9c9c721f309e97d748e66f6ca6d6/agentdefenders-mcp-scan-0.1.1-alpha.tgz","_integrity":"sha512-Q0P3Qjk5L5midQKAmxMljVpmHNHy1Da8ozzt1vm7jBr3ElTTYaxaVz0tGeKG7aY+vj0g+PmZc6zdkn08WRqnqQ==","_npmVersion":"10.8.2","description":"MCP supply chain scanner - detect tool poisoning, prompt injection, and shadowing attacks","directories":{},"_nodeVersion":"20.20.1","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-scan_0.1.1-alpha_1774504722535_0.4179427805985858","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agentdefenders/mcp-scan","version":"0.2.0","keywords":["mcp","security","scanner","ai-agent","supply-chain","tool-poisoning","prompt-injection","llm","model-context-protocol","owasp"],"author":{"url":"https://agentdefenders.ai","name":"AgentDefenders","email":"security@agentdefenders.ai"},"license":"MIT","_id":"@agentdefenders/mcp-scan@0.2.0","maintainers":[{"name":"maruthiprithivi","email":"maruthi@typeless.io"}],"homepage":"https://agentdefenders.ai/mcp-scan","bugs":{"url":"https://github.com/AgentDefenders/mcp-scan/issues"},"bin":{"mcp-scan":"dist/cli.js"},"dist":{"shasum":"2e80c17f01538f960f5c469aeb133a4d06043044","tarball":"https://registry.npmjs.org/@agentdefenders/mcp-scan/-/mcp-scan-0.2.0.tgz","fileCount":42,"integrity":"sha512-Q/DfU4oOf5x+fkEZ9SNSuSBFdbvSm8/N9+Id8O7KTiIlRSDes2KBqmpNyZOHuRI9LpvjjJGVOLHjRbOwuXOuKA==","signatures":[{"sig":"MEQCIDBoaAF1VwOQnRVfCYzV/3DU54Xa6Au+6RTr8mfmB7CoAiAhSxBw2GOAfcSShL3RziWYD2sscs9u+dCTqsUb8DKhwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100696},"main":"./dist/index.js","_from":"file:agentdefenders-mcp-scan-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"private":false,"scripts":{"dev":"tsx src/cli.ts","lint":"echo 'typecheck runs via build'","test":"vitest run","build":"tsc","typecheck":"echo 'typecheck runs via mcp-scanner-test job'"},"_npmUser":{"name":"maruthiprithivi","email":"maruthi@typeless.io"},"_resolved":"/tmp/a76c36f4a3733b0d5a151563f806298f/agentdefenders-mcp-scan-0.2.0.tgz","_integrity":"sha512-Q/DfU4oOf5x+fkEZ9SNSuSBFdbvSm8/N9+Id8O7KTiIlRSDes2KBqmpNyZOHuRI9LpvjjJGVOLHjRbOwuXOuKA==","repository":{"url":"git+https://github.com/AgentDefenders/mcp-scan.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP supply chain scanner - detect tool poisoning, prompt injection, and shadowing attacks","directories":{},"_nodeVersion":"20.20.1","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-scan_0.2.0_1774517642443_0.29265677358419606","host":"s3://npm-registry-packages-npm-production"}},"0.2.2-alpha":{"name":"@agentdefenders/mcp-scan","version":"0.2.2-alpha","keywords":["mcp","security","scanner","ai-agent","supply-chain","tool-poisoning","prompt-injection","llm","model-context-protocol","owasp"],"author":{"url":"https://agentdefenders.ai","name":"AgentDefenders","email":"security@agentdefenders.ai"},"license":"MIT","_id":"@agentdefenders/mcp-scan@0.2.2-alpha","maintainers":[{"name":"maruthiprithivi","email":"maruthi@typeless.io"}],"homepage":"https://agentdefenders.ai/mcp-scan","bugs":{"url":"https://github.com/AgentDefenders/mcp-scan/issues"},"bin":{"mcp-scan":"dist/cli.js"},"dist":{"shasum":"5f3f6adffa5257e84cba84e9b2611066036b1bc5","tarball":"https://registry.npmjs.org/@agentdefenders/mcp-scan/-/mcp-scan-0.2.2-alpha.tgz","fileCount":56,"integrity":"sha512-5NGPEv3hodcj+GBnoZ6lfcGyDN3gKi5ug2hfCv3jic4M5qqm80UU/vzKe0NSiqpHcIAayo8bhX5SPUyvLvr/wQ==","signatures":[{"sig":"MEYCIQCvmhkw2Zi2VKBxb1N3Qj157BqzVUFW4JCXCY3TQri3bgIhALb9C8DuPwiapKxSGGEEfmGSseFQADooxNdLtdkFYxbf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132554},"main":"./dist/index.js","_from":"file:agentdefenders-mcp-scan-0.2.2-alpha.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"private":false,"scripts":{"dev":"tsx src/cli.ts","lint":"echo 'typecheck runs via build'","test":"vitest run","build":"tsc","typecheck":"echo 'typecheck runs via mcp-scanner-test job'"},"_npmUser":{"name":"maruthiprithivi","email":"maruthi@typeless.io"},"_resolved":"/tmp/43d5d17992ae08044cc1f4d7bba25df1/agentdefenders-mcp-scan-0.2.2-alpha.tgz","_integrity":"sha512-5NGPEv3hodcj+GBnoZ6lfcGyDN3gKi5ug2hfCv3jic4M5qqm80UU/vzKe0NSiqpHcIAayo8bhX5SPUyvLvr/wQ==","repository":{"url":"git+https://github.com/AgentDefenders/mcp-scan.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP supply chain scanner - detect tool poisoning, prompt injection, and shadowing attacks","directories":{},"_nodeVersion":"20.20.1","dependencies":{"js-yaml":"^4.1.0","commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mcp-scan_0.2.2-alpha_1774615450960_0.7847331030428086","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha":{"name":"@agentdefenders/mcp-scan","version":"0.3.0-alpha","keywords":["mcp","security","scanner","ai-agent","supply-chain","tool-poisoning","prompt-injection","llm","model-context-protocol","owasp"],"author":{"url":"https://agentdefenders.ai","name":"AgentDefenders","email":"security@agentdefenders.ai"},"license":"MIT","_id":"@agentdefenders/mcp-scan@0.3.0-alpha","maintainers":[{"name":"maruthiprithivi","email":"maruthi@typeless.io"}],"homepage":"https://agentdefenders.ai/mcp-scan","bugs":{"url":"https://github.com/AgentDefenders/mcp-scan/issues"},"bin":{"mcp-scan":"dist/cli.js"},"dist":{"shasum":"72a3730d2656f5d7da5d1099edfe2bc7f766873c","tarball":"https://registry.npmjs.org/@agentdefenders/mcp-scan/-/mcp-scan-0.3.0-alpha.tgz","fileCount":56,"integrity":"sha512-YqyVhOxpilFDaHsKy92G2zbCSvMM+ta+BYscIz35rJbTu/dDA9OWdEn/IhANDtTnNm3a4gaWYD3Ff9dxlIFWbw==","signatures":[{"sig":"MEQCIAdCyFJ5r5hkLMJr1odOs6rjAAIY1uq0SQT0KqgdJXjPAiAmrXCcYes99Tu2YUGwWuKasnpX5KT/AWcHS/oewqyEIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159658},"main":"./dist/index.js","_from":"file:agentdefenders-mcp-scan-0.3.0-alpha.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"private":false,"scripts":{"dev":"tsx src/cli.ts","lint":"echo 'typecheck runs via build'","test":"vitest run","build":"tsc","typecheck":"echo 'typecheck runs via mcp-scanner-test job'"},"_npmUser":{"name":"maruthiprithivi","email":"maruthi@typeless.io"},"_resolved":"/tmp/003fb89d7c3ab866588aa076c1bef2ea/agentdefenders-mcp-scan-0.3.0-alpha.tgz","_integrity":"sha512-YqyVhOxpilFDaHsKy92G2zbCSvMM+ta+BYscIz35rJbTu/dDA9OWdEn/IhANDtTnNm3a4gaWYD3Ff9dxlIFWbw==","repository":{"url":"git+https://github.com/AgentDefenders/mcp-scan.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP supply chain scanner - detect tool poisoning, prompt injection, and shadowing attacks","directories":{},"_nodeVersion":"20.20.1","dependencies":{"js-yaml":"^4.1.0","commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mcp-scan_0.3.0-alpha_1774821605304_0.3516902838706528","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-alpha":{"name":"@agentdefenders/mcp-scan","version":"0.5.0-alpha","description":"MCP supply chain scanner - detect tool poisoning, prompt injection, and shadowing attacks","license":"MIT","author":{"name":"AgentDefenders","email":"security@agentdefenders.ai","url":"https://agentdefenders.ai"},"homepage":"https://agentdefenders.ai/mcp-scan","repository":{"type":"git","url":"git+https://github.com/AgentDefenders/mcp-scan.git"},"bugs":{"url":"https://github.com/AgentDefenders/mcp-scan/issues"},"keywords":["mcp","security","scanner","ai-agent","supply-chain","tool-poisoning","prompt-injection","llm","model-context-protocol","owasp"],"private":false,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"engines":{"node":">=18"},"bin":{"mcp-scan":"dist/cli.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"commander":"^12.0.0","js-yaml":"^4.1.0"},"devDependencies":{"@types/js-yaml":"^4.0.9","@types/node":"^20.0.0","typescript":"^5.0.0","tsx":"^4.0.0","vitest":"^1.0.0"},"scripts":{"build":"tsc","dev":"tsx src/cli.ts","test":"vitest run","typecheck":"echo 'typecheck runs via mcp-scanner-test job'","lint":"echo 'typecheck runs via build'"},"_id":"@agentdefenders/mcp-scan@0.5.0-alpha","_integrity":"sha512-IH1oBQuYPNcJqoeCzBoi8FqM95tI3b0+nGd9IVnvLjDeimQHtbNPVlN9nI+HrwH7B6bTNYckNIne22tsxIybIQ==","_resolved":"/tmp/a488327924b6672cea3bb9ae62c84c6f/agentdefenders-mcp-scan-0.5.0-alpha.tgz","_from":"file:agentdefenders-mcp-scan-0.5.0-alpha.tgz","_nodeVersion":"20.20.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-IH1oBQuYPNcJqoeCzBoi8FqM95tI3b0+nGd9IVnvLjDeimQHtbNPVlN9nI+HrwH7B6bTNYckNIne22tsxIybIQ==","shasum":"ebf1630b8494bdfbca53522e19f3a59a83a46866","tarball":"https://registry.npmjs.org/@agentdefenders/mcp-scan/-/mcp-scan-0.5.0-alpha.tgz","fileCount":56,"unpackedSize":204879,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBc2QAwAzQuD2W3DaD7sQ/XKIIKfgyWG0LBLMb08jlt1AiEAwets/lq1BDb0N2vpa6pTS1KzfCofH8vEtODvEJuOgiA="}]},"_npmUser":{"name":"maruthiprithivi","email":"maruthi@typeless.io"},"directories":{},"maintainers":[{"name":"maruthiprithivi","email":"maruthi@typeless.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-scan_0.5.0-alpha_1774919878345_0.6069641892426234"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-25T03:27:07.192Z","modified":"2026-03-31T01:17:58.603Z","0.1.0":"2026-03-25T03:27:07.434Z","0.1.1-alpha":"2026-03-26T05:58:42.683Z","0.2.0":"2026-03-26T09:34:02.576Z","0.2.2-alpha":"2026-03-27T12:44:11.116Z","0.3.0-alpha":"2026-03-29T22:00:05.443Z","0.5.0-alpha":"2026-03-31T01:17:58.494Z"},"bugs":{"url":"https://github.com/AgentDefenders/mcp-scan/issues"},"author":{"name":"AgentDefenders","email":"security@agentdefenders.ai","url":"https://agentdefenders.ai"},"license":"MIT","homepage":"https://agentdefenders.ai/mcp-scan","keywords":["mcp","security","scanner","ai-agent","supply-chain","tool-poisoning","prompt-injection","llm","model-context-protocol","owasp"],"repository":{"type":"git","url":"git+https://github.com/AgentDefenders/mcp-scan.git"},"description":"MCP supply chain scanner - detect tool poisoning, prompt injection, and shadowing attacks","maintainers":[{"name":"maruthiprithivi","email":"maruthi@typeless.io"}],"readme":"# @agentdefenders/mcp-scan\n\nSecurity scanner for Model Context Protocol (MCP) server configurations. Detects tool poisoning, prompt injection, shadowing attacks, and known threats.\n\n[![npm version](https://img.shields.io/npm/v/@agentdefenders/mcp-scan)](https://www.npmjs.com/package/@agentdefenders/mcp-scan)\n[![npm downloads](https://img.shields.io/npm/dw/@agentdefenders/mcp-scan)](https://www.npmjs.com/package/@agentdefenders/mcp-scan)\n[![license](https://img.shields.io/npm/l/@agentdefenders/mcp-scan)](./LICENSE)\n[![node](https://img.shields.io/node/v/@agentdefenders/mcp-scan)](https://nodejs.org)\n\nMCP servers extend AI agents with powerful tool-use capabilities, but they also introduce a new attack surface. A compromised or malicious MCP server can exfiltrate data, override agent behavior, or act as a supply chain backdoor. `@agentdefenders/mcp-scan` analyzes your MCP configurations and flags security issues before they reach production.\n\nAll analysis runs locally on your machine. No data is transmitted to any external service. If you want dashboard integration and historical tracking, you can optionally provide `--api-key` to sync results with [AgentDefenders Shield](https://app.agentdefenders.ai).\n\n## Quick Start\n\n```\nnpx @agentdefenders/mcp-scan\n```\n\nThe scanner auto-detects MCP client configurations across 11 supported clients and analyzes all registered servers.\n\n## Example Output\n\n```\n@agentdefenders/mcp-scan v0.2.2-alpha\n\nScanning MCP configurations...\nFound 2 servers across 1 client configuration.\n\n--- filesystem-server ---\n  Source: claude_desktop_config.json\n  Command: npx -y @modelcontextprotocol/server-filesystem /home/user/projects\n  Tools: 11 detected\n  Analyzers: 5/5 passed\n  Grade: A\n\n--- data-pipeline-mcp ---\n  Source: claude_desktop_config.json\n  Command: npx -y data-pipeline-mcp@latest\n  Tools: 4 detected\n  Findings:\n    [HIGH] tool-poisoning: Tool \"run_query\" description contains hidden\n           instruction that overrides agent behavior. The phrase \"ignore\n           previous instructions\" was detected in the tool description.\n    [LOW]  suspicious-env: Tool \"connect\" requests access to DATABASE_URL\n           environment variable.\n  Grade: D\n\nSummary\n  Servers scanned: 2\n  Total findings:  2 (1 high, 0 medium, 1 low)\n  Clean servers:   1\n  Flagged servers: 1\n```\n\n## Supported MCP Clients\n\n| Client | macOS | Linux | Windows |\n|---|---|---|---|\n| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` | `~/.config/Claude/claude_desktop_config.json` | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n| Cursor | `~/.cursor/mcp.json` | `~/.cursor/mcp.json` | `%APPDATA%\\Cursor\\mcp.json` |\n| VS Code | `~/Library/Application Support/Code/User/mcp.json` | `~/.config/Code/User/mcp.json` | `%APPDATA%\\Code\\User\\mcp.json` |\n| Windsurf | `~/Library/Application Support/Windsurf/User/globalStorage/windsurf.mcp/config.json` | `~/.config/Windsurf/User/globalStorage/windsurf.mcp/config.json` | `%APPDATA%\\Windsurf\\User\\globalStorage\\windsurf.mcp\\config.json` |\n| Gemini CLI | `~/.gemini/settings.json` | `~/.gemini/settings.json` | `%USERPROFILE%\\.gemini\\settings.json` |\n| Cline | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | `%APPDATA%\\Code\\User\\globalStorage\\saoudrizwan.claude-dev\\settings\\cline_mcp_settings.json` |\n| JetBrains / Junie | `~/.junie/mcp/mcp.json` | `~/.junie/mcp/mcp.json` | `%USERPROFILE%\\.junie\\mcp\\mcp.json` |\n| Continue.dev | `~/.continue/config.yaml` | `~/.continue/config.yaml` | `%USERPROFILE%\\.continue\\config.yaml` |\n| Google Antigravity | `~/.gemini/antigravity/mcp_config.json` | `~/.gemini/antigravity/mcp_config.json` | `%USERPROFILE%\\.gemini\\antigravity\\mcp_config.json` |\n| Zed | `~/.zed/settings.json` | `~/.config/zed/settings.json` | `%APPDATA%\\Zed\\settings.json` |\n| Amazon Q Developer | `~/.aws/amazonq/default.json` | `~/.aws/amazonq/default.json` | `%USERPROFILE%\\.aws\\amazonq\\default.json` |\n\nYou can also point to a specific config file with `--config <path>`.\n\n## Security Analyzers\n\n| Analyzer | Description |\n|---|---|\n| `tool-poisoning` | Detects hidden instructions in tool descriptions that attempt to override agent behavior or exfiltrate data. |\n| `prompt-injection` | Identifies prompt injection patterns in server metadata, tool names, and parameter schemas. |\n| `shadowing` | Flags tools that shadow or redefine built-in tool names, potentially hijacking agent actions. |\n| `suspicious-env` | Reports tools that request access to sensitive environment variables (credentials, tokens, keys). |\n| `known-threats` | Checks server packages against a curated database of known-malicious MCP servers. |\n\n## Output Formats\n\nThe default output is a human-readable console report. For automation, use structured formats:\n\n```bash\n# JSON output\nnpx @agentdefenders/mcp-scan --format json\n\n# SARIF output (for GitHub Code Scanning and other SARIF consumers)\nnpx @agentdefenders/mcp-scan --format sarif\n```\n\n## CI/CD Integration\n\nAdd MCP configuration scanning to your CI pipeline. The `--ci` flag outputs GitHub Actions annotations, writes a markdown step summary, and defaults to `--fail-on high`.\n\n### GitHub Actions (recommended)\n\n```yaml\n- name: Scan MCP configurations\n  run: npx @agentdefenders/mcp-scan --ci\n```\n\nThis will:\n- Print findings as `::error::` / `::warning::` annotations in the Actions log\n- Write a markdown summary to the job summary tab\n- Exit with code 1 if any HIGH or CRITICAL findings are detected\n\n### GitHub Actions with SARIF upload\n\n```yaml\n- name: Scan MCP configurations\n  run: npx @agentdefenders/mcp-scan --format sarif --fail-on high > mcp-scan.sarif\n\n- name: Upload SARIF\n  uses: github/codeql-action/upload-sarif@v3\n  with:\n    sarif_file: mcp-scan.sarif\n```\n\n### Other CI platforms\n\n```bash\nnpx @agentdefenders/mcp-scan --quiet --fail-on high\n```\n\n## CLI Reference\n\n| Flag | Description | Default |\n|---|---|---|\n| `--config <path>` | Path to a specific MCP client configuration file. | Auto-detect |\n| `--format <type>` | Output format: `console`, `json`, `sarif`. | `console` |\n| `--fail-on <severity>` | Exit with code 1 if any finding meets or exceeds severity: `low`, `medium`, `high`, `critical`. | Disabled (`high` in CI mode) |\n| `--ci` | CI mode: GitHub Actions annotations, step summary, no prompts. Implies `--quiet`. | Disabled |\n| `--api-key <key>` | AgentDefenders API key for dashboard sync. Enables remote result storage. | None |\n| `--watch` | Continuously monitor configuration files for changes and re-scan on modification. | Disabled |\n| `--interval <seconds>` | Polling interval in seconds when using `--watch`. | `30` |\n| `--quiet` | Suppress all output except findings and errors. | Disabled |\n| `--badge` | Generate a shield badge URL for your project README. | Disabled |\n\n## Privacy\n\nAll analysis runs locally on your machine. No data is sent to any external service unless you explicitly provide `--api-key` for dashboard integration.\n\n## Links\n\n- [Documentation](https://docs.agentdefenders.ai/mcp-scan)\n- [Dashboard Sign Up](https://app.agentdefenders.ai)\n- [Report a Vulnerability](https://github.com/AgentDefenders/mcp-scan/security/advisories)\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}