使用说明
mcp-scan
MCP security scanning tool for local and remote MCP Servers
亮点
- 自动发现MCP配置
- 检测MCP安全漏洞:
- 快速注射攻击
- 工具中毒攻击
- 有毒物质流动
- 扫描本地STDIO MCP服务器
- 扫描远程HTTP/SSE MCP服务器
快速开始
MCP服务器扫描
要运行MCP扫描:
uvx mcp-scan@latest
这将扫描您安装的服务器,查找工具、提示和资源中的安全漏洞。它将自动发现各种MCP配置,包括Claude、Cursor和Windsurf。
要扫描特定的MCP服务器配置,例如VS Code MCP配置,您可以运行:
mcp-scan ~/.vscode/mcp.json
示例运行
MCP安全扫描功能
MCP Scan是一个安全扫描工具,可以静态和动态扫描和监视您的MCP连接。它检查它们是否存在常见的安全漏洞,如 提示注入, 工具中毒 和 有毒流体请查阅我们的详细信息 文档 了解更多信息。
MCp Scan有两种主要模式,可以联合使用或单独使用:
-
mcp-scan scan静态扫描所有已安装的服务器,查找恶意工具描述和工具(例如。 工具中毒攻击、跨来源升级、地毯式袭击、有毒物质流动)。 -
mcp-scan proxy持续实时监控您的MCP连接,并可以限制代理系统在MCP上可以做什么(工具调用检查、数据流约束、PII检测、间接提示注入等)。
在代理模式下进行mcp扫描。
特性
- 扫描Claude、Cursor、Windsurf和其他基于文件的MCP客户端配置
- 扫描工具中的即时注入攻击 工具中毒攻击 使用 护栏
- 执行护栏政策 MCP工具调用和响应,包括PII检测、秘密检测、工具限制和完全自定义的防护策略。
- 通过以下方式实时审计和记录MCP流量
mcp-scan proxy - 检测跨源升级攻击(例如。 工具阴影),并检测和预防 MCP地毯拉扯攻击,即mcp扫描通过哈希检测mcp工具的更改
服务器代理
使用 mcp-scan proxy,您可以监视、记录和保护计算机上的所有MCP流量。这允许您检查代理和工具的运行时行为,并防止来自不可信来源(如网站或电子邮件)的攻击,这些攻击可能会试图利用您的代理。mcp扫描代理是一个在后台运行的动态安全层,持续监控您的mcp流量。
示例运行
加强护栏
您还可以添加防护规则,以限制和验证通过代理的工具使用顺序。
为此,创建一个 ~/.mcp-scan/guardrails_config.yml 内容如下:
<client-name>: # your client's shorthand (e.g., cursor, claude, windsurf)
<server-name>: # your server's name according to the mcp config (e.g., whatsapp-mcp)
guardrails:
secrets: block # block calls/results with secrets
custom_guardrails:
- name: "Filter tool results with 'error'"
id: "error_filter_guardrail"
action: block # or just 'log'
content: |
raise "An error was found." if:
(msg: ToolOutput)
"error" in msg.content
从那时起,所有呼叫都通过 mcp-scan proxy 将根据您为当前客户端/服务器配置的防护规则进行检查。
自定义护栏是使用不变护栏实现的。为了深入了解这些规则, 看看这个操场环境 和那个 官方文档.
运作原理
扫描
MCP扫描 scan 搜索配置文件以查找MCP服务器配置。它连接到这些服务器并检索工具描述。
然后,它扫描工具描述,既通过本地检查,也通过API调用Invariant Guardrailing。为此,工具名称和描述与invariantlabs.ai共享。通过使用MCP Scan,您同意invariantlabs.ai 使用条款 和 隐私政策.
Invariant Labs正在为安全研究目的收集数据(仅关于工具描述及其随时间的变化,而不是您的用户数据)。如果您不想共享工具,请不要使用MCP扫描。此外,还为您的扫描分配了一个唯一、持久和匿名的ID进行分析。您可以通过以下方式选择不发送此信息 --opt-out 旗帜。
MCP扫描不会存储或记录任何使用数据,即MCP工具调用的内容和结果。
代理
用于运行时监控,使用 mcp-scan proxy,MCP Scan可以用作代理服务器。这使您能够实时监控和保护整个系统的MCP流量。为此,mcp扫描会临时注入一个本地 不变网关 MCP服务器配置拦截和分析流量。之后 proxy 命令退出后,Gateway将从配置中删除。
您还可以为代理配置防护规则,以动态执行安全策略。这包括PII检测、秘密检测、工具限制和自定义防护策略。护栏和代理完全在本地使用 护栏 并且不需要任何外部API调用。
CLI参数
MCP扫描提供以下命令:
mcp-scan - Security scanner for Model Context Protocol servers and tools
常用选项
这些选项适用于所有命令:
--storage-file FILE Path to store scan results and whitelist information (default: ~/.mcp-scan)
--base-url URL Base URL for the verification server
--verbose Enable detailed logging output
--print-errors Show error details and tracebacks
--full-toxic-flows Show all tools that could take part in toxic flow. By default only the top 3 are shown.
--json Output results in JSON format instead of rich text
命令
扫描(默认)
扫描MCP配置中的工具、提示和资源中的安全漏洞。
mcp-scan [CONFIG_FILE...]
选项:
--checks-per-server NUM Number of checks to perform on each server (default: 1)
--server-timeout SECONDS Seconds to wait before timing out server connections (default: 10)
--suppress-mcpserver-io BOOL Suppress stdout/stderr from MCP servers (default: True)
代理
运行代理服务器实时监控和保护全系统MCP流量。临时注射 网关 以拦截和分析流量。再次删除网关 proxy 命令退出。
mcp-scan proxy [CONFIG_FILE...] [--pretty oneline|compact|full]
选项:
CONFIG_FILE... Path to MCP configuration files to setup for proxying.
--pretty oneline|compact|full Pretty print the output in different formats (default: compact)
检查
打印工具、提示和资源的描述,无需验证。
mcp-scan inspect [CONFIG_FILE...]
选项:
--server-timeout SECONDS Seconds to wait before timing out server connections (default: 10)
--suppress-mcpserver-io BOOL Suppress stdout/stderr from MCP servers (default: True)
白名单
管理已批准实体的白名单。当没有提供参数时,此命令将显示当前的白名单。
# View the whitelist
mcp-scan whitelist
# Add to whitelist
mcp-scan whitelist TYPE NAME HASH
# Reset the whitelist
mcp-scan whitelist --reset
选项:
--reset Reset the entire whitelist
--local-only Only update local whitelist, don't contribute to global whitelist
论据:
TYPE Type of entity to whitelist: "tool", "prompt", or "resource"
NAME Name of the entity to whitelist
HASH Hash of the entity to whitelist
帮助
显示详细的帮助信息和示例。
mcp-scan help
例子
# Scan all known MCP configs
mcp-scan
# Scan a specific config file
mcp-scan ~/custom/config.json
# Just inspect tools without verification
mcp-scan inspect
# View whitelisted tools
mcp-scan whitelist
# Whitelist a tool
mcp-scan whitelist tool "add" "a1b2c3..."
MCP扫描已关闭供款
MCP Scan目前无法再接受外部捐款。我们专注于稳定释放。 我们欢迎建议、错误报告或功能请求作为GitHub问题。
开发设置
要从源代码运行此包,请执行以下步骤:
uv run pip install -e .
uv run -m src.mcp_scan.cli
将MCP扫描结果包含在您自己的项目/注册表中
如果您想将MCP扫描结果包含在您自己的项目或注册表中,请通过以下方式联系团队 mcpscan@invariantlabs.ai,我们可以帮你。
对于自动扫描,我们建议使用 --json 标记并解析输出。
进一步阅读
更新日志
看 更改日志.md.