渗透测试管理服务器

一个基于模型上下文协议(MCP)的服务器实现,提供与Cervantes渗透测试管理平台API的无缝集成,使AI助手能够通过标准化的MCP工具与Cervantes数据交互。

  • by CervantesSec
  • C#
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 cervantessec/mcpserver

使用说明

塞万提斯MCP服务器

模型上下文协议(MCP)服务器实现,提供与塞万提斯渗透测试管理平台API的无缝集成。该服务器使像克劳德这样的人工智能助手能够通过标准化的MCP工具与塞万提斯的数据进行交互。

🎯 目的

此MCP服务器充当AI助手和 塞万提斯 平台,允许用户:

  • 通过自然语言管理渗透测试项目、客户和任务
  • 查询和操作漏洞数据
  • 生成报告并管理文档
  • 处理用户和角色管理
  • 与保险库和笔记系统交互

🛠 技术

  • .NET 9.0 -核心框架
  • 模型上下文协议 -通信标准
  • HTTP客户端 -REST API集成
  • 依赖注入 -服务管理

✨ 特性

📋 项目管理

  • 创建、读取、更新和删除项目
  • 管理项目成员和权限
  • 处理项目笔记和附件
  • 生成执行摘要

🔍 漏洞管理

  • 完成漏洞的CRUD操作
  • 漏洞分类和CWE映射
  • 风险评估和状态跟踪
  • 注释、目标和附件管理
  • 模板系统支持

👥 客户管理

  • 客户信息管理
  • 头像上传支持
  • 项目协会

📝 任务管理

  • 任务创建和分配
  • 状态跟踪和更新
  • 注释和附件支持
  • 目标关联

📊 报告

  • 报告生成和管理
  • 模板系统
  • 组件管理
  • 多种导出格式

🔐 安全与访问

  • 用户和角色管理
  • 用于安全凭证存储的保险库
  • 基于权限的访问控制

📄 文档

  • 文件管理系统
  • 文件上传和组织
  • 版本控制支持

🔧 运行时间要求

  • .NET 9.0运行时 或以后
  • 塞万提斯 实例(正在运行且可访问)
  • 网络连接 至塞万提斯API终点

📦 安装

来源

  1. 克隆存储库

    git clone https://github.com/CervantesSec/McpServer.git
    cd mcpserver-cervantes
    
  2. 构建项目

    dotnet build --configuration Release
    
  3. 运行服务器

    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"

🤝 如何做出贡献

我们欢迎捐款!以下是您可以提供帮助的方式:

  1. 分叉存储库
  2. 创建要素分支
    git checkout -b feature/amazing-feature
    
  3. 进行更改并添加测试
  4. 提交您的更改
    git commit -m 'Add amazing feature'
    
  5. 推到您的分支
    git push origin feature/amazing-feature
    
  6. 打开拉取请求

开发指南

  • 遵循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服务器的改进保持开源,即使在作为服务部署时也是如此。

🙏 致谢

  • 塞万提斯 卓越的渗透测试平台
  • Anthropic 用于模型上下文协议规范
  • 这个。NET社区,提供优秀的工具和库

📞 支持


由以下材料制成❤️ 网络安全社区