MCP-Codex: Model Context Protocol Tool Orchestration

MCP-Codex: Model Context Protocol Tool Orchestration

一个 MCP 服务器,用于远程调用 MCP 工具,无需安装。

twolven

开发者工具
访问服务器

README

MCP-Codex:模型上下文协议工具编排

免责声明:本项目在 Cloudflare 发布了类似服务,解决了许多相同问题后已停止开发。我分享此代码库作为 MCP 编排架构的教育资源和示例。虽然不再积极开发,但这些概念和实现对于那些对 AI 工具编排感兴趣的人仍然可能很有价值。请参阅 Cloudflare 的新 Remote MCP 服务及其博客文章公告:https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/

许可证

一种用于编排模型上下文协议 (MCP) 服务器的服务,允许 AI 助手动态发现和利用工具,而无需重启,由“图书管理员”提供支持 - 一种智能代理,可以理解用户需求并将他们与完美的工具联系起来。

概述

MCP-Codex 解决了模型上下文协议生态系统的一个核心问题:添加新工具时需要重启 AI 助手。它通过中心服务实现动态工具发现和执行,允许 AI 助手按需使用任何兼容的 MCP 工具。

图书管理员:智能工具发现

MCP-Codex 的核心是“图书管理员” - 一种智能代理,旨在了解用户需求并将他们与正确的工具联系起来。图书管理员充当具有以下功能的代理 RAG(检索增强生成)系统:

  • 多向量知识库:用于行业知识和内部文档的独立向量数据库
  • MCP 存储库感知:深入了解整个生态系统中可用的 MCP 工具
  • 即时工具安装:能够在需要之前按需安装工具
  • 上下文感知推荐:使用用户查询的完整上下文来识别最佳工具
  • 无缝集成:处理工具发现、安装和执行的所有细节

图书管理员有效地充当用户意图和技术能力之间的通用适配器,消除了用户和 AI 助手选择工具的认知负担。

问题

模型上下文协议 (MCP) 是将 AI 助手连接到外部工具和数据源的强大标准。但是,传统的 MCP 实现存在一个重大限制:

  • 静态配置:工具必须在启动时配置,每次需要新功能时都需要重启
  • 仅限本地操作:工具通常与助手在同一台机器上运行
  • 有限的发现:助手没有标准化的方法来发现有哪些工具可用
  • 高认知负荷:用户必须确切地知道他们需要哪个工具来完成特定任务

解决方案

MCP-Codex 通过提供以下功能,在 AI 助手和更广泛的 MCP 生态系统之间架起了一座桥梁:

  1. 智能工具发现:图书管理员服务分析用户意图并推荐完美的工具
  2. 动态工具管理:可以按需安装、配置和执行工具
  3. 远程执行:工具可以在任何地方运行,而不仅仅是在本地机器上
  4. 集中管理:可以添加、更新或删除工具,而无需重启助手
  5. 标准化协议:用于与任何 MCP 工具交互的一致接口

架构

该项目由三个主要组件组成:

  1. Codex 服务 (codex-serv.py):管理工具发现和调用的核心执行服务
  2. 图书管理员服务(计划中):一种 AI 驱动的工具推荐系统
  3. MCP 客户端 (mcp-codex.py):用于 AI 助手的 MCP 兼容接口

工作原理

  1. AI 助手连接到 MCP-Codex 客户端
  2. 客户端提供两个主要工具:searchcall_tool
  3. 助手可以使用自然语言搜索功能
  4. 识别工具后,可以通过标准化调用执行它
  5. Codex 服务处理实际的工具执行并返回结果

组件

Codex 服务

中央编排服务,负责:

  • 管理可用 MCP 工具的注册表
  • 处理工具执行请求
  • 将请求路由到适当的工具子进程
  • 管理工具生命周期

MCP 客户端

MCP 兼容接口,允许任何 MCP 兼容的助手:

  • 连接到 Codex 生态系统
  • 搜索可用工具
  • 通过标准化接口执行工具

包含的工具示例

该存储库包含几个示例 MCP 工具:

  • StockFlow:金融数据和股票市场分析工具
  • OptionsFlow:期权交易分析和策略评估
  • CodeSavant:代码管理、编辑和执行工具
  • StockScreen:股票筛选和过滤功能

安装

前提条件

  • Python 3.10+
  • 必需的 Python 包(参见 requirements.txt

设置

  1. 克隆存储库:
git clone https://github.com/your-username/mcp-codex.git
cd mcp-codex
  1. 安装依赖项:
pip install -r requirements.txt
  1. 创建所需目录:
mkdir -p config data logs tools
  1. 配置您的环境:
cp .env.example .env
# 使用您的配置编辑 .env

用法

启动 Codex 服务

python codex-serv.py

启动 MCP 客户端

python mcp-codex.py

与 Claude Desktop 一起使用

  1. 在 Claude Desktop 中安装 MCP 客户端:
mcp install mcp-codex.py
  1. 客户端将注册两个工具:

    • search:查找与您的任务相关的工具
    • call_tool:执行发现的工具
  2. 在 Claude 中的用法示例:

我需要分析 Apple 的股票数据。你能帮我找到合适的工具吗?

路线图

该项目计划包括几个完全实现的组件:

图书管理员(深入)

图书管理员被设想为一个复杂的 AI 驱动的工具编排系统,它将:

  • 充当代理 RAG 系统:将检索能力与生成智能相结合
  • 维护多个知识来源
    • 行业知识向量数据库(一般技术信息)
    • 内部文档向量数据库(特定工具功能)
    • 实时 MCP 存储库索引(生态系统中可用的工具)
  • 执行复杂的工具选择逻辑
    • 分析用户查询的潜在意图
    • 将意图与所需功能匹配
    • 识别整个 MCP 生态系统中的最佳工具
    • 考虑工具兼容性、性能和可靠性
  • 提供即时工具管理
    • 检测何时未安装所需的工具
    • 自动从存储库安装所需的工具
    • 为特定任务正确配置工具
    • 在执行前验证安装是否成功
  • 处理完整的执行生命周期
    • 使用适当的上下文准备工具
    • 监控执行进度
    • 管理错误处理和恢复
    • 以最有用的格式提供结果
  • 持续学习和改进
    • 跟踪工具性能和可靠性
    • 从用户反馈和更正中学习
    • 根据历史成功经验改进推荐
    • 适应新工具和功能

其他计划功能

  • 用户身份验证和授权
  • 用于安全性的工具沙箱
  • 云部署支持
  • 工具版本控制和兼容性检查
  • 性能监控和分析

文档

工具注册表配置

工具在 config/codex.yaml 文件中定义,结构如下:

tools:
  - name: tool_name
    description: 工具描述
    server: path/to/tool/server.py
    methods:
      - method_name
    schemas:
      method_name:
        type: object
        properties:
          # 参数定义

API 端点

Codex 服务提供以下 REST 端点:

  • /health:健康检查端点
  • /search:搜索与查询匹配的工具
  • /call_tool:执行特定的工具方法
  • /reload:重新加载工具配置

为什么要做这个项目

创建此项目是为了解决当前 AI 工具生态系统中的几个限制:

  1. 启用真正的代理能力:允许 AI 助手根据用户需求动态发现和使用工具
  2. 降低运营复杂性:消除添加新功能时重启 AI 服务的需要
  3. 集中工具管理:为工具部署和更新提供单一控制点
  4. 标准化工具交互:为工具发现和执行创建一致的接口
  5. 支持远程执行:允许工具在任何地方运行,而不仅仅是在本地机器上

不幸的是,Cloudflare 最近发布了类似的功能,使得该项目的某些方面变得多余。但是,该代码库仍然提供了对 MCP 编排和动态工具发现的宝贵见解。

许可证

该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript