VulniCheck 使用基于AI的漏洞检测为Python项目和GitHub仓库提供全面的安全分析。它作为一个基于Docker的HTTP MCP服务器运行,采用标准HTTP流传输(无需SSE),提供安全的容器化部署和全面的漏洞扫描能力。
# 从Docker Hub拉取最新镜像
docker pull andrasfe/vulnicheck:latest
# 使用OpenAI API密钥运行(用于增强的AI风险评估)
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e OPENAI_API_KEY=your-openai-api-key \
andrasfe/vulnicheck:latest
# 或者不使用API密钥运行(基本漏洞扫描)
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
andrasfe/vulnicheck:latest
claude mcp add --transport http vulnicheck http://localhost:3000/mcp
就这样!VulniCheck 现在可以在 Claude Code 中使用了。
安装后,只需询问 Claude:
"对我的项目进行全面的安全检查"
"扫描 https://github.com/owner/repo 的漏洞"
"检查我的依赖项是否存在安全问题"
"扫描我的Dockerfile中的易受攻击的包"
VulniCheck 将会:
| 工具 | 描述 |
|---|---|
check_package_vulnerabilities | 检查特定的Python包是否有漏洞 |
scan_dependencies | 扫描依赖文件(requirements.txt, pyproject.toml等) |
scan_installed_packages | 扫描当前安装的Python包 |
get_cve_details | 获取关于特定CVE的详细信息 |
scan_for_secrets | 在代码中检测暴露的秘密和凭证 |
scan_dockerfile | 分析Dockerfile中的易受攻击的Python依赖项 |
scan_github_repo | 对GitHub仓库进行全面的安全扫描 |
assess_operation_safety | 基于AI的操作风险评估 |
validate_mcp_security | 验证MCP服务器的安全配置 |
comprehensive_security_check | 交互式的基于AI的安全评估 |
通过API密钥增强 VulniCheck,以获得更好的速率限制和AI功能:
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e OPENAI_API_KEY=your-key \ # 基于AI的风险评估
-e ANTHROPIC_API_KEY=your-key \ # 备选AI提供商
-e GITHUB_TOKEN=your-token \ # 更高的GitHub API速率限制
-e NVD_API_KEY=your-key \ # 更高的NVD速率限制
andrasfe/vulnicheck:latest
VulniCheck 支持可选的Google OAuth 2.0认证以实现安全访问控制。默认情况下,认证是禁用的。
获取Google OAuth凭据:
http://localhost:3000/oauth/callback(或您的域名)配置环境变量:
export FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET="GOCSPX-your-secret-here"
export FASTMCP_SERVER_BASE_URL="http://localhost:3000"
带认证运行:
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID=your-client-id \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET=your-secret \
-e FASTMCP_SERVER_BASE_URL=http://localhost:3000 \
-v vulnicheck_tokens:/home/vulnicheck/.vulnicheck/tokens \
andrasfe/vulnicheck:latest \
python -m vulnicheck.server --auth-mode google
使用docker-compose:
查看docker-compose.auth-example.yml以获取完整的配置示例。
注意:OAuth令牌存储在/home/vulnicheck/.vulnicheck/tokens。使用Docker卷来持久化令牌跨越容器重启。
FastMCP OAuth + HTTP传输不兼容
由于FastMCP 2.12.4的一个限制,OAuth认证与HTTP传输(流式HTTP)无法正常工作。授权端点(/oauth/authorize, /oauth/callback)没有正确挂载,导致404错误。
当OAuth有效时:
/.well-known/oauth-protected-resource)当OAuth无效时:
针对外部客户端(ChatGPT等)的解决办法:
通过ngrok或其他公共URL访问时,运行VulniCheck不带认证:
# 不带OAuth启动(推荐用于外部客户端)
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
andrasfe/vulnicheck:latest
# 然后配置ngrok
ngrok http 3000
在您的MCP客户端(ChatGPT等)中:
https://your-ngrok-url.ngrok-free.dev/mcp安全性考虑:
未来解决方案: 此限制将在以下情况得到解决:
快速开始(无OAuth):
# 1. 启动VulniCheck
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
andrasfe/vulnicheck:latest
# 2. 启动ngrok
ngrok http 3000
# 3. 在您的MCP客户端中使用ngrok URL
# URL: https://your-generated-url.ngrok-free.dev/mcp
# 认证:无
可选OAuth脚本(实验性 - OAuth无效):
提供了一个方便的脚本restart-vulnicheck-ngrok.sh用于测试OAuth,但由于FastMCP的限制,目前OAuth无法正常工作:
# 复制示例环境文件
cp .env.example .env
# 编辑.env并添加您的凭据
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-your-secret-here
NGROK_URL=https://your-ngrok-url.ngrok-free.dev
# 运行脚本(OAuth将不起作用)
./restart-vulnicheck-ngrok.sh
注意:该脚本是为了将来使用而提供的,当FastMCP OAuth + HTTP传输被修复时。目前,始终对外部客户端不使用OAuth运行。
# 克隆仓库
git clone https://github.com/andrasfe/vulnicheck.git
cd vulnicheck
# 构建Docker镜像
docker build -t vulnicheck .
# 运行本地构建的镜像(无认证)
docker run -d --name vulnicheck-mcp -p 3000:3000 --restart=unless-stopped vulnicheck
# 使用Google OAuth运行
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID=your-client-id \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET=your-secret \
-e FASTMCP_SERVER_BASE_URL=http://localhost:3000 \
-v vulnicheck_tokens:/home/vulnicheck/.vulnicheck/tokens \
vulnicheck \
python -m vulnicheck.server --auth-mode google
官方Docker镜像可在以下位置找到:
andrasfe/vulnicheck:latestrequirements.txt, pyproject.toml, setup.py, 锁定文件Dockerfile, docker-compose.yml免责声明:提供的漏洞数据“按原样”提供,不附带任何担保。用户负责验证和修复。