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 服务开启)查看聊天/工具执行演示。
    • 若要在云端部署,请参考 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/隐私与企业合规性要求,确保密钥与凭证的安全管理。

服务器信息