MCP Factory
使用说明
- 项目简介
- MCP Factory 是一个完整的后端生成框架,能够对 Windows 二进制、脚本等目标进行自动分析、 invocable 选择、MCP 服务器生成,以及云端/本地环境的端到端对接。核心目标是为大语言模型提供一致的上下文信息与外部功能入口,支持工具调用、资源访问与提示模板渲染。
- 该仓库包含从分析阶段到服务器端实现的完整流程:从目标分析与 invocable 选择、到生成可运行的 MCP 服务器(Flask/FastAPI 风格的例子),再到与 OpenAI/LLM 的交互,以及一个用于本地端到端演示的演示服务器。
- 主要功能点
- 资源与工具管理:通过 MCP 服务器暴露 invocables(工具、资源、COM/RPC/CLI 等入口),并提供工具执行能力。
- Prompt 与交互:支持与 LLM 的对话流程,包含工具调用以及基于生成的工具契约进行交互。
- 服务器生成与部署:可以从目标目标生成 MCP 服务器代码,并在本地启动测试服务器(包括浏览器界面与 CLI/UI 流程)。
- 支持多种输入源:支持从二进制、DLL/EXE、脚本语言、接口描述(OpenAPI/JSON-RPC/WSDL 等)等生成 Invocable。
- UI 与管线:提供 Web UI、Copilot 集成、云端工作流与 CI/CD 版本,以实现端到端的自动化分析、生成与验证。
- 安装步骤
- 克隆仓库:
- 使用 Git 克隆代码库到本地工作区。
- 安装依赖:
- 使用 Python 依赖管理(如 pip)安装所需依赖项。
- 运行示例(本地演示):
- 运行一个完整管线:从分析目标到启动 MCP 服务器
- 例如运行一个目标(如 calc.exe),仓库内提供的脚本会进行分析、 invocable 选择、服务器生成并启动。
- 访问浏览器界面(若本地 UI 服务开启)查看聊天/工具执行演示。
- 运行一个完整管线:从分析目标到启动 MCP 服务器
- 若要在云端部署,请参考 README 中的部署说明(包含 Azure/OpenAI、ACR、ACA、Blob 存储等配置要点)。
- 克隆仓库:
- 服务器配置(MCP 客户端需要的最小信息)
- 服务器名称(server_name): 用于标识要启动的 MCP 服务器实例,例如 notepad-mcp 或 calculator-mcp。
- 命令(command): 启动服务器进程所需的命令行,例如 "python mcp_factory.py" 或直接启动生成的 server.py。
- 参数(args): 启动命令的参数说明,用于客户段在连接时定位到正确的 MCP 服务器实例。示例注释如下,实际请按仓库实际部署信息填写。
- 说明:MCP 客户端只需要读取服务器的地址、端点与工具契约等信息来发起请求,不需要在客户端内保管密钥。服务端应暴露工具清单、执行入口以及对话流(/chat、/invoke、/tools 等接口)。
- 基本使用方法
- 启动与对接
- 使用自动化管线生成后,启动一个 MCP 服务器实例,默认端口通常为 5000;也可以在多容器/多实例环境中进行部署与扩缩容。
- 客户端通过提供的工具清单与契约执行工具调用,并可通过对话方式与模型协同完成任务。
- 与 LLM 互动的流程
- LLM 通过工具清单调用外部工具(如计算器、文本处理、系统 API 等),服务器执行工具并将结果返回给 LLM。
- 支持基于生成的 mcp.json/mcp_server.py 的工作流,与 VS Code Copilot、前端 UI 等集成。
- 运行注意
- 某些组件在 Windows 环境下才可用(如 GUI、COM、Registry、TLB、PDB 的分析/执行入口),在 Linux/macOS 环境下仅能进行部分分析能力演示。
- 生成的服务器是可部署的示例实现,具体的生产化部署需结合实际环境配置(OpenAI/OpenAI 部署、Blob 存储、Key Vault、ACR、ACA、CI/CD 等)。
- 启动与对接
- 服务器配置示例(注释,不以代码形式展示)
- server_name: notepad-mcp
- command: ["python", "mcp_factory.py"]
- args: ["--serve", "notepad"] // 或者直接启动生成的 server.py
- 描述说明:该示例表示一个已生成并可启动的 MCP 服务器,用于 Notepad 的上下文服务,配合 MCP 客户端进行查询、调用和对话。
- 运行与验证的基本步骤
- 以 Notepad 为目标的端到端验证
- 使用内置的演示服务器/白箱服务进行工具调用演示
- 使用浏览器打开生成的 UI(如有)或通过 API 与生成的服务器进行交互
- 注意事项
- 该仓库包含大量与 Windows 生态密切相关的分析器、GUI 自动化工具(pywinauto)、TLB、PDB、COM 组件等,实际环境中需具备相应的运行环境与权限。
- 部署时请遵循 FERPA/隐私与企业合规性要求,确保密钥与凭证的安全管理。