逆向工程知识库MCP服务器
此存储库托管一个生产就绪的模型上下文协议(MCP)服务器 在两个SSE上公开逆向工程知识库(RE KB)工作流 以及FastMCP传输。它配备了MCP的所有基础设施 客户期望——确定性信封、受保护的传输和结构化 日志记录——以及用于创建、验证和导出RE知识库的完整工具链 来自任何可以说MCP的地方的伪影。
为什么重要
- 专为可再生能源团队打造 –使用调查结果、资产和分析师
通过可以在任何存储库中引导的一致模式进行注释。
- 为现代MCP客户做好准备 –支持FastMCP stdio、服务器发送事件、,
以及附带的OpenWebUI垫片,无需任何额外的管道。
- 可扩展性下降 –保留RE KB核心工具并注册其他工具
通过简单的后端模块实现自动化。
关键能力
RE KB工作流工具
- 初始化
.re_kb/目录和种子规范JSON模式。 - 通过MCP工具创建、列出和更新发现、研究线索和资产。
- 导出模式或派生索引以实现下游自动化。
- 并发安全ID分配 具有跨平台文件锁定功能。
- 自动架构迁移 用于向后兼容的数据演进。
- 自动项目发现 -stdio模式自动从CWD发现项目,SSE模式支持基于令牌的自动绑定。
- 用于人工审核的Web UI -内置只读接口
/re_kb/具有可过滤的结果表、搜索和详细视图。
运输和安全功能
- 确定性的
{ok,data,errors}HTTP信封和JSON日志用于审计。 - 通过准备门保护SSE端点,以防止并发消费者。
- 环境驱动的速率限制(
MCP_MAX_*)和写入切换
(MCP_ENABLE_WRITES).
- 统一错误处理 具有结构化错误码和MCP集成。
可扩展性表面
- 中模块的运行时发现
bridge/backends/通过共享的FastMCP
例子
- 后端示例(
bridge/backends/example.py)演示如何注册
自定义工具。
快速启动
根据您的MCP客户选择您的交通方式:
HTTP上的SSE(克劳德代码、助手台、网络客户端)
# Quick start - creates venv if needed, auto-reload enabled
./bin/dev或手动:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt
uvicorn bridge.app:create_app --factory --host 127.0.0.1 --port 8000验证服务器:
curl -s http://127.0.0.1:8000/api/ping.json | jq
curl -s http://127.0.0.1:8000/api/version.json | jq将您的MCP客户端连接到:
- SSE运输:
http://127.0.0.1:8000/sse - 带自动绑定的SSE:
http://127.0.0.1:8000/sse?token=(令牌生成于rekb init) - 消息传输:
http://127.0.0.1:8000/messages
注意:一次只能有一个SSE消费者处于活动状态;使用HTTP 409拒绝额外的连接。
第二阶段新增: rekb init 现在生成 .mcp.json 和 .mcp-stdio.json 带有会话令牌的配置文件,用于自动项目绑定。看 docs/re_kb_workflow.md 了解详情。
stdio(基于Codex和stdio的MCP客户端)
# Ensure venv is set up first (./bin/dev creates it automatically)
PYTHONPATH=. python scripts/bridge_stdio.py --transport stdio此模式通过stdin/stdout与基于进程的MCP客户端通信。
自动项目发现(stdio): 在stdio模式下运行时,服务器通过从当前工作目录向上遍历目录树来自动发现RE KB项目 .re_kb/project.json。如果未通过CWD找到,则退回到 REKB_PROJECT_ROOT 环境变量。这消除了在大多数情况下手动选择项目的需要。
自定义目录名: 知识库存在于 .re_kb/ 默认情况下,但您可以使用以下命令更改目录名 REKB_DIRNAME (或向后兼容的别名 RE_KB_DIRNAME,加上CLI标志 rekb 命令)。服务器和CLI工具都将在重命名的文件夹下进行读写操作,并且仍然可以执行 REKB_PROJECT_ROOT 当您需要手动固定项目根目录时。
遵循RE KB工作流程
该存储库捆绑了运行RE知识库的完整指南和夹具 端到端工作流:
- 走过 docs/re_kb_workflow.md 引导
.re_kb/,使用 select_this_project.sh 助手,导出JSON模式,以及 运用每一个工具。
- 将参考夹具复制到以下位置
docs/examples/minimal_re_kb/当你需要的时候
一个众所周知的好沙盒。
- 咨询 docs/re_kb_ghida.md Ghidra专用
自动化理念。
配置
运行时行为由环境变量驱动。常见设置包括:
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_ENABLE_WRITES | 允许可写工具运行 | false |
MCP_MAX_WRITES_PER_REQUEST | 每个MCP请求允许的最大写入次数 | 2 |
MCP_MAX_ITEMS_PER_BATCH | 由强制执行的最大批量大小 enforce_batch_limit | 256 |
MCP_AUDIT_LOG | JSONL审核日志文件的可选路径 | 未设置 |
REKB_DIRNAME / RE_KB_DIRNAME | 覆盖知识库目录名称(单路径组件) | .re_kb |
REKB_PROJECT_ROOT | 覆盖stdio自动发现的项目根 | 未设置 |
REKB_ACTIVE_TTL_SECONDS | SSE模式的活动项目缓存生存期。在stdio模式下忽略(无超时)。 | 300 (5分钟) |
RE_KB_TRANSPORT | 覆盖传输模式检测(“stdio”或“sse”) | 未设置 |
更深入的演练+ .env 惯例,阅读 docs/configuration.md.
HTTP API表面
| 路线 | 描述 |
|---|---|
GET /api/ping.json | 健康检查返回 {"pong": true} |
GET /api/version.json | 此服务器的语义版本 |
GET /api/state | 关于SSE就绪和活动连接的诊断 |
GET /api/openapi.json | 为已注册的路线生成OpenAPI文档 |
GET /sse | MCP SSE传输(单活动连接;可选接受 ?token=... 用于自动绑定) |
POST /messages | FastMCP消息传输 |
MCP工具快速参考
只读工具(无需写入)
| 工具 | 目的 | 示例参数 |
|---|---|---|
list_findings | 使用可选过滤器列出所有发现 | {"filters": {"status": "open", "type": "vuln"}} |
get_finding | 按ID检索特定发现 | {"id": "finding-0001"} |
写入工具(必需 MCP_ENABLE_WRITES=1)
| 工具 | 目的 | 示例参数 |
|---|---|---|
create_finding | 使用自动生成的ID创建新发现 | {"data": {"project_id": "proj", "type": "vuln", "title": "...", "summary": "...", "raw_note": "..."}} |
update_finding | 更新现有发现(支持部分更新) | {"id": "finding-0001", "patch": {"status": "verified", "raw_note": null}} |
attach_evidence | 为现有发现添加证据 | {"finding_id": "finding-0001", "evidence": {"source_type": "ghidra", ...}} |
rebuild_index | 从所有发现中重新生成index.json | {} |
新 研究结果现在支持一个可选 raw_note 字段(最大32KB)用于非结构化分析和结构化分析 summary (最多2048个字符)。看 docs/re_kb_workflow.md 用于工作流程指导。
扩展服务器
将后端模块添加到 bridge/backends/ 并实施 register(server: FastMCP)每个模块接收共享的FastMCP实例 可以在RE KB捆绑包旁边注册其他工具、资源或提示。 参见 docs/extend.md 以获得更深入的指导。
开发与运营
运行开发帮助程序以启动服务器并重新生成模式:
./bin/dev # creates .venv if necessary and starts the server
./bin/dev workflow init --root /path/to/repo # bootstraps .re_kb/ with sample data
./bin/dev schema --root /path/to/repo # export RE KB JSON Schemas集 MCP_ENABLE_WRITES=1 跑步时 ./bin/dev 允许工作流助手 以及RE KB工具,用于在目标存储库下写入文件。
使用以下命令运行测试套件 pytest 一旦你的环境活跃起来。该项目包括以下方面的综合测试:
- 跨平台文件锁定(并发ID分配)
- 错误处理(结构化异常、MCP集成)
- 模式版本控制和迁移
- 证据规范化和转换
要观察SSE防护装置的工作情况,请连接两次:
curl -iN http://127.0.0.1:8000/sse
curl -i http://127.0.0.1:8000/sse # returns HTTP 409 while the first stream is active下一步行动
- docs/getting-started.md –固执己见的设置指南
它链接到兼容的客户端。
- docs/overview.md –架构和组件图。
- docs/re_kb_workflow.md –分步RE知识库
工作流程。
- docs/extend.md –使用新工具扩展MCP服务器。
许可证
此项目根据MIT许可证条款分发。看 许可证 了解详情。
