SecureMCP 是一个全面的安全审计工具,旨在检测使用 模型上下文协议(MCP) 的应用程序中的漏洞和配置错误。它主动识别威胁,如 OAuth 令牌泄露、提示注入漏洞、恶意 MCP 服务器和工具中毒攻击。
git clone https://github.com/makalin/SecureMCP.git
cd SecureMCP
make build
docker pull makalin/SecureMCP
# 基本扫描
./securemcp scan --target https://your-mcp-server.com
# 使用特定选项进行扫描
./securemcp scan --target https://your-mcp-server.com \
--scan-oauth \
--scan-prompt-injection \
--scan-authentication \
--timeout 30s
# 生成 HTML 报告
./securemcp scan --target https://your-mcp-server.com --report html
# 生成 JSON 报告
./securemcp scan --target https://your-m- cp-server.com --report json
import "github.com/makalin/SecureMCP/internal/scanner"
// 创建扫描器实例
scanner := scanner.NewScanner()
// 基本扫描
results, err := scanner.Scan("https://your-mcp-server.com")
// 使用选项进行扫描
options := &scanner.ScanOptions{
ScanOAuth: true,
ScanPromptInjection: true,
ScanAuthentication: true,
TestPrompt: "your test prompt",
Timeout: 30 * time.Second,
}
results, err := scanner.ScanWithOptions(target, options)
import "github.com/makalin/SecureMCP/internal/report"
// 创建报告生成器
generator := report.NewReportGenerator("reports")
// 生成报告
report, err := generator.GenerateReport(target, results)
// 保存为 HTML
err = generator.SaveReport(report, "html")
// 保存为 JSON
err = generator.SaveReport(report, "json")
$ ./securemcp scan --target https://example-mcp-server.com
[+] 扫描目标: https://example-mcp-server.com
[!] 检测到令牌存储漏洞
[!] 在工具 'AutoSummary' 中发现提示注入漏洞
[!] 检测到不安全的身份验证方法
[+] 报告已保存至 /reports/scan_2024_03_14_15_30_45.html
HTML 报告包括:
{
"target": "https://example-mcp-server.com",
"scan_time": "2024-03-14T15:30:45Z",
"vulnerabilities": [
{
"type": "OAuth 令牌漏洞",
"severity": "高",
"description": "检测到令牌存储漏洞",
"location": "https://example-mcp-server.com",
"remediation": "实现安全的令牌存储并正确验证令牌"
}
],
"summary": {
"total_vulnerabilities": 3,
"critical_count": 0,
"high_count": 1,
"medium_count": 1,
"low_count": 1
}
}
SecureMCP/
├── cmd/
│ └── securemcp/ # 命令行界面
├── internal/
│ ├── scanner/ # 核心扫描功能
│ │ ├── oauth.go # OAuth 令牌扫描
│ │ ├── prompt.go # 提示注入测试
│ │ ├── auth.go # 身份验证检查
│ │ └── scanner.go # 主扫描器实现
│ └── report/ # 报告生成
├── config/ # 配置管理
├── Dockerfile # 容器配置
└── Makefile # 构建和开发任务
# 构建二进制文件
make build
# 运行测试
make test
# 构建 Docker 镜像
make docker-build
# 在 Docker 中运行
make docker-run
欢迎提交拉取请求!对于重大更改,请先打开一个问题来讨论您想要更改的内容。
git checkout -b feature/amazing-feature)git commit -m '添加了惊人的功能')git push origin feature/amazing-feature)在您的 MCP 应用程序被利用之前保护它们。💪 使用 SecureMCP!