返回市场
开放AI代码MCP服务器

开放AI代码MCP服务器

作者:agency-ai-solutions49 星标更新:2025-04-18

项目介绍

openai-codex-mcp

一个用于封装OpenAI Codex CLI工具以供Claude Code使用的MCP服务器。

概述

该项目提供了一个简单的JSON-RPC服务器,允许Claude Code与OpenAI Codex CLI工具进行交互。这使得Claude Code能够在需要时使用OpenAI的模型进行代码生成、解释和问题解决。

视频演示

https://www.loom.com/share/5d9532a79ae24b309af08c1727156f9c?sid=d9277b91-bf8c-43ec-a3c6-dc69fc52e1d2

最近改进

MCP服务器已增强,提供了更直观且健壮的接口:

  1. 专用方法:为常见的编码任务添加了专用方法:

    • write_code:为特定任务生成指定语言的代码
    • explain_code:获取关于代码如何工作的详细解释
    • debug_code:查找并修复有问题代码中的错误
  2. 模型选择:明确定义了模型选项及其默认值:

    • o4-mini
    • o4-preview
    • o4-pro
    • o4-latest
  3. 简化语法:参数命名和结构更加直观,便于集成

这些改进使得Claude Code能够更容易地使用OpenAI的模型来完成特定编程任务,而无需复杂的提示工程。

预备条件

  • Python 3.12+
  • OpenAI Codex CLI工具 (npm install -g @openai/codex)
  • 有效的OpenAI API密钥(仅适用于Codex CLI,而非此服务器)

安装和设置

本项目使用PEP-621 pyproject.toml。请按照以下步骤操作:

# 1. 创建并激活虚拟环境
uv venv                     # 创建一个 .venv/ 目录
source .venv/bin/activate   # 在Windows上:.\.venv\Scripts\activate

# 2. 将包和依赖项安装到虚拟环境中
uv pip install .

安装后,codex_server 入口点将在您的PATH中可用。

运行服务器

快速开始

使用提供的设置脚本来自动设置环境并启动服务器:

./setup_and_run.sh

该脚本将执行以下操作:

  • 检查是否安装了 codex CLI
  • 如需创建Python虚拟环境
  • 如果可用,通过Claude CLI安装MCP工具
  • 启动MCP服务器

手动启动

如果您希望手动启动服务器,请执行以下步骤:

  1. 确保Codex CLI已安装并正确配置了您的OpenAI API密钥。
  2. 启动服务器:
    codex_server
    
    或者直接使用uvicornuvicorn codex_server:app

与Claude Code集成

一旦您的MCP服务器运行起来,您可以使用以下任一方法将其注册到Claude Code:

方法1:使用Claude CLI(推荐)

仓库中包含一个可以直接使用Claude CLI安装的配置文件:

# 直接从JSON配置安装MCP工具
claude mcp add /path/to/openai_codex_mcp.json

# 验证工具是否正确安装
claude mcp list

方法2:通过UI手动配置

您也可以手动注册该工具:

  1. 在Claude Code中导航至设置 → 工具 → 管理MCP工具
  2. 创建一个新的工具:
    • 名称openai_codex
    • 描述通过MCP服务器集成OpenAI Codex CLI
    • 基础URLhttp://localhost:8000/
    • 协议JSON-RPC 2.0
    • 认证留空
  3. 保存工具。

现在,Claude Code可以使用OpenAI Codex CLI工具来完成需要不同视角或方法的任务。您可以通过请求Claude使用OpenAI模型来完成特定任务来调用它。

API使用

MCP服务器提供了多种方法来与OpenAI的模型交互,以完成不同的编码任务。

方法1:通用完成

对于灵活的自定义提示到OpenAI:

curl -X POST http://localhost:8000/ \
     -H 'Content-Type: application/json' \
     -d '{
       "jsonrpc": "2.0",
       "method": "codex_completion",
       "params": {
         "prompt": "编写一个JavaScript函数,按属性值对对象数组进行排序",
         "model": "o4-mini"
       },
       "id": 1
     }'

方法2:编写代码

专门用于代码生成的方法,带有语言指定:

curl -X POST http://localhost:8000/ \
     -H 'Content-Type: application/json' \
     -d '{
       "jsonrpc": "2.0",
       "method": "write_code",
       "params": {
         "task": "计算前100个斐波那契数,并以数组形式返回它们",
         "language": "python",
         "model": "o4-mini"
       },
       "id": 1
     }'

方法3:解释代码

专门用于代码解释的方法:

curl -X POST http://localhost:8000/ \
     -H 'Content-Type: application/json' \
     -d '{
       "jsonrpc": "2.0",
       "method": "explain_code",
       "params": {
         "code": "def quicksort(arr):\n    if len(arr) <= 1:\n        return arr\n    pivot = arr[len(arr) // 2]\n    left = [x for x in arr if x < pivot]\n    middle = [x for x in arr if x == pivot]\n    right = [x for x in arr if x > pivot]\n    return quicksort(left) + middle + quicksort(right)",
         "model": "o4-mini"
       },
       "id": 1
     }'

方法4:调试代码

专门用于查找和修复错误的方法:

curl -X POST http://localhost:8000/ \
     -H 'Content-Type: application/json' \
     -d '{
       "jsonrpc": "2.0",
       "method": "debug_code",
       "params": {
         "code": "function fibonacci(n) {\n  if (n <= 0) return [];\n  if (n === 1) return [1];\n  let sequence = [1, 1];\n  for (let i = 2; i <= n; i++) {\n    sequence.push(sequence[i-2] + sequence[i-1]);\n  }\n  return sequence;\n}",
         "issue_description": "它生成了一个多余的斐波那契数",
         "model": "o4-mini"
       },
       "id": 1
     }'

可用模型

推理模型(O系列)

  • o4-mini:更快、更经济的推理模型
  • o3:最强大的推理模型
  • o3-mini:o3的小型替代模型
  • o1:之前的全系列推理模型
  • o1-mini:o1的小型替代模型
  • o1-pro:具有更多计算能力以获得更好响应的o1版本

GPT模型

  • gpt-4.1:旗舰GPT模型,适用于复杂任务
  • gpt-4o:快速、智能、灵活的GPT模型
  • gpt-4.1-mini:平衡了智能、速度和成本
  • gpt-4.1-nano:最快的、最具成本效益的GPT-4.1模型
  • gpt-4o-mini:快速、经济的小型模型,适用于专注任务

可用参数

通用完成(codex_completion)

  • prompt(必需):发送给Codex的提示
  • model(可选):要使用的模型(例如,“o4-mini”,“o3”,“gpt-4.1”,“gpt-4o-mini”)
  • images(可选):要包含的图像路径或数据URI列表
  • additional_args(可选):传递给Codex的其他CLI参数

编写代码(write_code)

  • task(必需):编码任务的描述
  • language(必需):解决方案的编程语言(例如,“python”,“javascript”,“java”)
  • model(可选):要使用的模型

解释代码(explain_code)

  • code(必需):要解释的代码
  • model(可选):要使用的模型

调试代码(debug_code)

  • code(必需):要调试的代码
  • issue_description(可选):问题或错误的描述
  • model(可选):要使用的模型

使用Claude Code的示例

一旦配置好,您可以请求Claude使用OpenAI Codex来完成特定任务,使用任何可用的方法:

使用write_code方法

用户:你能使用OpenAI Codex编写一个生成质数的Python函数吗?

Claude:我将使用OpenAI Codex的write_code方法来生成那个函数。

[Claude会使用write_code方法,任务是“编写一个生成质数的Python函数”,语言是“python”]

使用explain_code方法

用户:你能请求OpenAI Codex解释这个快速排序算法是如何工作的吗?

Claude:我将使用OpenAI Codex来解释这个算法。

[Claude会使用explain_code方法,提供代码]

使用debug_code方法

用户:我的JavaScript函数有一个bug。你能使用OpenAI Codex来调试它吗?

Claude:我会请求OpenAI Codex找到并修复你的代码中的bug。

[Claude会使用debug_code方法,提供代码]

指定模型

用户:你能使用OpenAI Codex和o4-preview模型来编写一个高效的二叉搜索树实现吗?

Claude:我将使用o4-preview模型来生成那个实现。

[Claude会使用指定的模型和适当的方法]

这使您能够在同一界面中无缝利用Claude和OpenAI的能力,针对常见编码任务有专门的方法。