reptor-mcp:用于reptor/SysReptor的mcp服务器
这个项目改变了 reptor CLI工具集成到MCP(模型上下文协议)服务器中,将其强大的渗透测试报告和自动化功能作为可编程服务公开。
它允许其他工具、脚本或AI代理通过MCP协议以编程方式与SysReptor交互,从而促进与自动化工作流程的集成。
\[!警告\] 阿尔法软件: 底层reptorCLI工具处于alpha版本。其API可能会发生变化,可能会中断reptor-mcp.
\[!小心\] 无身份验证: 此服务器已 无身份验证或授权。它仅供当地使用。 不要将其暴露于互联网或不受信任的网络。
\[!重要\] 数据敏感性: 如果您处理敏感的项目数据,请考虑通过此服务器将其发送到LLM的影响。使用 REPTOR_MCP_EXCLUDE_FIELDS 在敏感场到达LLM之前将其剥离。特性
- 动态工具生成: 从所有可用工具中自动创建MCP工具
reptor插件(nmap、nessus、burp、zap、sslyze等)。 - API直接工具: 直接使用报告程序的Python API为结果CRUD、模式发现和模板管理提供结构化工具。
- 字段排除: 在将数据返回给LLM客户端之前,从数据中剥离敏感字段(可通过环境变量配置)。
- 异步安全: 具有线程安全序列化插件执行的非阻塞事件循环。
先决条件
- Python 3.10+
uv(推荐)或pip- 跑步 SysReptor 带有API令牌的实例
安装
git clone https://github.com/slvnlrt/reptor-mcp.git
cd reptor-mcp
uv venv && source .venv/bin/activate
uv pip install -e .这将安装 reptor 和 fastmcp 自动从PyPI。无需单独克隆reptor存储库。
Development setup (local reptor clone)
如果您需要与报告员的本地签出对抗(例如,测试未发布的更改):
uv pip install -e /path/to/reptor-source
uv pip install -e .或者,设置 REPTOR_MAIN_PATH=/path/to/reptor-source 在运行时将其注入 sys.path.
配置
服务器是通过环境变量配置的:
| 变量 | 必填 | 描述 |
|---|---|---|
REPTOR_SERVER | 是 | SysReptor实例的URL |
REPTOR_TOKEN | 是 | 您的SysReptor API令牌 |
REPTOR_PROJECT_ID | 否 | 操作的默认项目ID |
REPTOR_MCP_INSECURE | 否 | 设置为 true 禁用SSL验证 |
REQUESTS_CA_BUNDLE | 否 | 自定义CA捆绑包文件的路径 |
REPTOR_MCP_EXCLUDE_FIELDS | 否 | 从LLM响应中删除逗号分隔的字段名(例如。 internal_notes,api_token) |
REPTOR_MCP_DEBUG | 否 | 设置为 true 用于详细的调试日志记录 |
运行服务器
fastmcp run mcp_server.py:mcp --transport streamable-http --port 8008服务器将可在以下位置访问 http://localhost:8008/mcp/.
客户端连接
使用这样的配置连接MCP客户端(例如 mcp_settings.json):
{
"mcpServers": {
"reptor-mcp": {
"type": "streamable-http",
"url": "http://localhost:8008/mcp/"
}
}
}可用工具
自定义工具(直接API)
这些工具直接使用reptor的Python API进行结构化、支持架构的操作:
| 工具 | 说明 |
|---|---|
list_findings | 列出带有筛选器的发现(状态、严重性、标题)。 |
get_finding_details | 按ID获取查找的完整详细信息 |
get_finding_schema | 发现项目的可用查找字段、类型和约束。打电话之前 create_finding 或 patch_finding. |
create_finding | 从平面数据字典创建新发现 |
patch_finding | 更新查找结果上的单个字段。 |
delete_finding | 按ID删除查找结果(需要明确确认)。 |
upload_template | 从JSON或TOML上传查找模板。 |
插件工具(动态包装器)
服务器动态包装所有 reptor CLI插件作为MCP工具:
| 类别 | 工具 |
|---|---|
| 漏洞导入器 | nessus, burp, nmap, openvas, zap, qualys, sslyze |
| 寻找管理 | finding, findingfromtemplate, deletefindings, exportfindings |
| 项目管理 | project, createproject, deleteprojects, pushproject |
| 模板 | template |
| 笔记和文件 | note, file |
| 翻译 | translate (通过DeepL) |
| 导入/导出 | ghostwriter, defectdojo, importers, packarchive, unpackarchive |
可以通过连接的MCP客户端检查每个工具的确切参数。
与报告人的本地MCP服务器的关系
从reptor v0.33开始,reptor包含自己的内置MCP服务器(reptor mcp).这两台服务器是 互补的:
| 能力 | 报告员mcp | 本地 reptor mcp |
|---|---|---|
| 结果CRUD | :white_check_mark: | :white_check_mark |
| 正在查找架构发现 | :white_check_mark: | :white_check_mark: |
| 报告部分CRUD | :x: | :white_check_mark: |
| 漏洞导入程序(nmap、nessus、burp等) | :white_check_mark: | :x: |
| 项目管理(搜索、创建、导出、复制) | :white_check_mark: | :x: |
| 注释、文件、翻译 | :white_check_mark: | :x: |
| 模板管理 | :white_check_mark: | :white_check_mark: |
| 字段排除 | :white_check_mark: | :white_check_mark: |
建筑
mcp_server.py # Server entry point, lifespan, configuration
├── tool_generator.py # Dynamic MCP tool generation from plugin argparse definitions
│ ├── signature_utils.py # argparse → Python function signature translation
│ └── wrapper_utils.py # Plugin execution, stdin/stdout capture, config handling
├── custom_tools.py # Direct API tools (findings CRUD, schema, templates)
└── tool_config.py # Plugin exclusions, stdin consumers, config overwrite mappings关键设计决策:
- 插件包装器 使用序列化锁在线程中运行,在保护共享状态的同时保持异步事件循环的响应。
- 定制工具 使用
asyncio.to_thread()用于非阻塞API调用。 - 字段排除 在返回客户端之前,递归地从所有嵌套数据结构中删除指定字段。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
如果没有原件,这个项目是不可能的 reptor命令行界面工具 由SysReptor团队及其贡献者开发。 reptor-mcp 基于他们出色的工作,提供了一个MCP接口。
