使用说明
塞万提斯MCP服务器
模型上下文协议(MCP)服务器实现,提供与塞万提斯渗透测试管理平台API的无缝集成。该服务器使像克劳德这样的人工智能助手能够通过标准化的MCP工具与塞万提斯的数据进行交互。
🎯 目的
此MCP服务器充当AI助手和 塞万提斯 平台,允许用户:
- 通过自然语言管理渗透测试项目、客户和任务
- 查询和操作漏洞数据
- 生成报告并管理文档
- 处理用户和角色管理
- 与保险库和笔记系统交互
🛠 技术
- .NET 9.0 -核心框架
- 模型上下文协议 -通信标准
- HTTP客户端 -REST API集成
- 依赖注入 -服务管理
✨ 特性
📋 项目管理
- 创建、读取、更新和删除项目
- 管理项目成员和权限
- 处理项目笔记和附件
- 生成执行摘要
🔍 漏洞管理
- 完成漏洞的CRUD操作
- 漏洞分类和CWE映射
- 风险评估和状态跟踪
- 注释、目标和附件管理
- 模板系统支持
👥 客户管理
- 客户信息管理
- 头像上传支持
- 项目协会
📝 任务管理
- 任务创建和分配
- 状态跟踪和更新
- 注释和附件支持
- 目标关联
📊 报告
- 报告生成和管理
- 模板系统
- 组件管理
- 多种导出格式
🔐 安全与访问
- 用户和角色管理
- 用于安全凭证存储的保险库
- 基于权限的访问控制
📄 文档
- 文件管理系统
- 文件上传和组织
- 版本控制支持
🔧 运行时间要求
- .NET 9.0运行时 或以后
- 塞万提斯 实例(正在运行且可访问)
- 网络连接 至塞万提斯API终点
📦 安装
来源
-
克隆存储库
git clone https://github.com/CervantesSec/McpServer.git cd mcpserver-cervantes -
构建项目
dotnet build --configuration Release -
运行服务器
dotnet run --project McpServer
⚙️ 配置
应用程序参数
通过修改配置服务器 appsettings.json 文件:
{
"Cervantes": {
"BaseUrl": "https://your-cervantes-instance.com",
"Username": "your-username",
"Password": "your-password",
"AuthMethod": "BasicAuth"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
环境变量(备选)
您还可以使用环境变量进行配置:
# Cervantes API Configuration
CERVANTES__BASEURL=https://your-cervantes-instance.com
CERVANTES__USERNAME=your-username
CERVANTES__PASSWORD=your-password
CERVANTES__AUTHMETHOD=BasicAuth
# Logging Configuration
LOGGING__LOGLEVEL__DEFAULT=Information
MCP集成
将服务器添加到MCP客户端配置中:
{
"servers": {
"cervantes": {
"command": "dotnet",
"args": ["run", "--project", "/path/to/McpServer"],
"env": {
"CERVANTES_API_BASE_URL": "https://your-cervantes-instance.com"
}
}
}
}
🚀 用法
配置后,MCP服务器提供以下工具类别:
可用工具
- 客户端工具:管理客户信息和头像
- 项目工具:处理项目、成员、笔记和附件
- 漏洞工具:完整的漏洞生命周期管理
- 任务工具:带有注释、目标和附件的任务管理
- 报告工具:报告生成和模板管理
- 文档工具:文件管理和组织
- VaultTool 工具:安全的凭证和敏感数据存储
- 笔记工具:一般记录和组织
- 用户工具:用户和角色管理
- 角色工具:权限和访问控制管理
Claude使用示例
"Can you show me all high-risk vulnerabilities in the current project?"
"Create a new client named 'Acme Corp' with contact email admin@acme.com"
"Generate a penetration testing report for project ID abc-123"
🤝 如何做出贡献
我们欢迎捐款!以下是您可以提供帮助的方式:
- 分叉存储库
- 创建要素分支
git checkout -b feature/amazing-feature - 进行更改并添加测试
- 提交您的更改
git commit -m 'Add amazing feature' - 推到您的分支
git push origin feature/amazing-feature - 打开拉取请求
开发指南
- 遵循C#编码规范
- 为新功能添加单元测试
- 根据需要更新文档
- 确保所有构建都通过
- 使用有意义的提交消息
🔒 安全
如果您发现安全漏洞,请发送电子邮件至 ruben.mesquida@owasp.org。所有安全漏洞都将得到及时解决。
安全功能
- 安全的API通信
- 输入验证和净化
- 不披露信息的错误处理
- 用于审计跟踪的结构化日志记录
🐛 如何报告Bug
如果你发现一个bug,请在GitHub上创建一个问题:
- 问题的清晰描述
- 重现步骤
- 预期行为与实际行为
- 环境详细信息(.NET版本、操作系统等)
- 相关日志或错误消息
📚 文档
🏗️ 建筑
服务器采用模块化架构:
McpServer/
├── Models/ # Data models and ViewModels
├── Services/ # API client and business logic
├── Tools/ # MCP tool implementations
└── Program.cs # Application entry point
关键组件
- CervantesAPI客户端:用于API通信的HTTP客户端
- 工具类:单个MCP工具实现
- 模型类:数据传输对象和ViewModel
- 依赖注入:服务注册和生命周期管理
🔄 API覆盖范围
服务器提供了对塞万提斯API的全面覆盖:
- ✅ 客户管理
- ✅ 项目管理
- ✅ 漏洞管理
- ✅ 任务管理
- ✅ 报告生成
- ✅ 文档管理
- ✅ 用户和角色管理
- ✅ 保险库管理
- ✅ Notes系统
📊 支持的操作
| 资源 | 创建 | 读取 | 更新 | 删除 | 特殊操作 |
|---|---|---|---|---|---|
| 客户 | ✅ | ✅ | ✅ | ✅ | |
| 项目 | ✅ | ✅ | ✅ | ✅ | 成员、笔记、附件 |
| 漏洞 | ✅ | ✅ | ✅ | ✅ | 模板、类别、CWE |
| 任务 | ✅ | ✅ | ✅ | ✅ | 注释、目标、附件 |
| 报告 | ✅ | ✅ | ✅ | ✅ | 模板、组件、生成 |
| 文件 | ✅ | ✅ | ✅ | ✅ | 文档管理 |
| 保险库 | ✅ | ✅ | ✅ | ✅ | |
| 用户 | ✅ | ✅ | ✅ | ✅ | 角色分配 |
📈 演出
- 始终异步/等待以获得最佳性能
- HTTP请求的连接池
- 结构化日志记录可观察性
- 优雅的错误处理和恢复
📝 许可证
此项目根据GNU Affero通用公共许可证v3.0(AGPL-3.0)获得许可-请参阅 许可证 文件以获取详细信息。
AGPL-3.0许可证摘要
AGPL-3.0许可证确保:
- ✅ 您可以自由使用、修改和分发此软件
- ✅ 您必须提供任何修改的源代码
- ✅ 网络使用被视为分布 -如果您运行此服务器供其他人访问,则必须提供源代码
- ✅ 任何衍生作品也必须根据AGPL-3.0获得许可
- ✅ 您必须包含版权和许可声明
选择此许可证是为了确保对此MCP服务器的改进保持开源,即使在作为服务部署时也是如此。
🙏 致谢
📞 支持
- 📧 电子邮件: ruben.mesquida@owasp.org
- 💬 GitHub问题: 创建问题
- 📖 文档: 维基
由以下材料制成❤️ 网络安全社区
