返回市场
开放AI工具转MCP

开放AI工具转MCP

作者:alohays11 星标更新:2025-03-14

项目介绍

openai-tool2mcp

Release Build status codecov Commit activity License

openai-tool2mcp 是一个轻量级、开源的桥梁,它将 OpenAI 强大的内置工具封装为模型上下文协议(MCP)服务器。这使得你可以使用高质量的 OpenAI 工具,如网络搜索和代码解释器,与 Claude 和其他兼容 MCP 的模型一起使用。

  • 🔍 在 Claude 应用中使用 OpenAI 强大的网络搜索功能
  • 💻 访问任何兼容 MCP 的大型语言模型中的代码解释器功能
  • 🔄 实现 OpenAI 和 MCP 协议之间的无缝转换
  • 🛠️ 简单的 API 便于集成
  • 🌐 完全兼容 MCP SDK

🔍 使用 Claude 应用演示 OpenAI 搜索集成!🚀

https://github.com/user-attachments/assets/f1f10e2c-b995-4e03-8b28-61eeb2b2bfe9

OpenAI 尝试将其强大的、针对大型语言模型优化的工具锁定在其自己的代理平台内,但它们无法阻止不可阻挡的 MCP 开源运动!

开发者的困境

当前 AI 开发者面临两个生态系统之间的艰难选择:

graph TD
    subgraph "开发者的困境"
        style Developer fill:#ff9e64,stroke:#fff,stroke-width:2px
        Developer((开发者))
    end

    subgraph "OpenAI 生态系统"
        style OpenAITools fill:#bb9af7,stroke:#fff,stroke-width:2px
        style Tracing fill:#bb9af7,stroke:#fff,stroke-width:2px
        style Evaluation fill:#bb9af7,stroke:#fff,stroke-width:2px
        style VendorLock fill:#f7768e,stroke:#fff,stroke-width:2px,stroke-dasharray: 5 5

        OpenAITools["内置工具<br/>(网络搜索,代码解释器)"]
        Tracing["高级追踪<br/>(可视化调试)"]
        Evaluation["评估仪表板<br/>(性能指标)"]
        VendorLock["供应商锁定<br/>⚠️ 闭源 ⚠️"]

        OpenAITools --> Tracing
        Tracing --> Evaluation
        OpenAITools -.-> VendorLock
        Tracing -.-> VendorLock
        Evaluation -.-> VendorLock
    end

    subgraph "MCP 生态系统"
        style MCPStandard fill:#7dcfff,stroke:#fff,stroke-width:2px
        style MCPTools fill:#7dcfff,stroke:#fff,stroke-width:2px
        style OpenStandard fill:#9ece6a,stroke:#fff,stroke-width:2px
        style LimitedTools fill:#f7768e,stroke:#fff,stroke-width:2px,stroke-dasharray: 5 5

        MCPStandard["模型上下文协议<br/>(开放标准)"]
        MCPTools["兼容 MCP 的工具"]
        OpenStandard["开放生态系统<br/>✅ 可互操作性 ✅"]
        LimitedTools["有限的工具质量<br/>⚠️ 不够成熟(例如,网络搜索,计算机使用)⚠️"]

        MCPStandard --> MCPTools
        MCPStandard --> OpenStandard
        MCPTools -.-> LimitedTools
    end

    Developer -->|"想要强大的工具<br/>& 可视化"| OpenAITools
    Developer -->|"想要开放标准<br/>& 可互操作性"| MCPStandard

    classDef highlight fill:#ff9e64,stroke:#fff,stroke-width:4px;
    class Developer highlight

openai-tool2mcp 通过让开发者在开放的 MCP 生态系统中使用 OpenAI 成熟且高质量的工具来弥合这一差距。

🌟 特性

  • 简单设置:通过几个简单的命令即可启动运行
  • 作为 MCP 服务器的 OpenAI 工具:将强大的 OpenAI 内置工具封装为符合 MCP 标准的服务器
  • 无缝集成:与 Claude 应用和其他兼容 MCP 的客户端协同工作
  • 兼容 MCP SDK:使用官方的 MCP Python SDK
  • 工具支持
    • 🔍 网络搜索
    • 💻 代码解释器
    • 🌐 网页浏览器
    • 📁 文件管理
  • 开源:MIT 许可,可修改和扩展

🚀 安装

# 从 PyPI 安装
pip install openai-tool2mcp

# 或安装最新开发版本
pip install git+https://github.com/alohays/openai-tool2mcp.git

# 推荐:安装 uv 以获得更好的 MCP 兼容性
pip install uv

预备条件

  • Python 3.10+
  • 具有访问 Assistant API 权限的 OpenAI API 密钥
  • (推荐)用于 MCP 兼容性的 uv 包管理器

🛠️ 快速开始

  1. 设置你的 OpenAI API 密钥
export OPENAI_API_KEY="your-api-key-here"
  1. 启动带有 OpenAI 工具的 MCP 服务器
# 推荐:使用 uv 获得 MCP 兼容性(由 MCP 文档推荐)
uv run openai_tool2mcp/server_entry.py --transport stdio

# 或使用传统的 CLI 方法
openai-tool2mcp start --transport stdio
  1. 与桌面版 Claude 结合使用

配置你的桌面版 Claude 使用该服务器,通过编辑 claude_desktop_config.json:

{
  "mcpServers": {
    "openai-tools": {
      "command": "uv",
      "args": [
        "--directory",
        "/绝对路径到你的 openai-tool2mcp",
        "run",
        "openai_tool2mcp/server_entry.py"
      ]
    }
  }
}

配置文件位于:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %AppData%\Claude\claude_desktop_config.json

💻 使用示例

基本服务器配置

# server_script.py
from openai_tool2mcp import MCPServer, ServerConfig, OpenAIBuiltInTools

# 配置使用 OpenAI 网络搜索
config = ServerConfig(
    openai_api_key="your-api-key",
    tools=[OpenAIBuiltInTools.WEB_SEARCH.value]
)

# 创建并启动带有 STDIO 运输方式的服务器(为了 MCP 兼容性)
server = MCPServer(config)
server.start(transport="stdio")

按照 MCP 文档推荐的方式运行:

uv run server_script.py

适用于桌面版 Claude 的 MCP 兼容配置

创建一个独立脚本:

# openai_tools_server.py
import os
from dotenv import load_dotenv
from openai_tool2mcp import MCPServer, ServerConfig, OpenAIBuiltInTools

# 加载环境变量
load_dotenv()

# 创建带有多个工具的服务器
config = ServerConfig(
    openai_api_key=os.environ.get("OPENAI_API_KEY"),
    tools=[
        OpenAIBuiltInTools.WEB_SEARCH.value,
        OpenAIBuiltInTools.CODE_INTERPRETER.value
    ]
)

# 创建并启动带有 stdio 运输方式的服务器(为了 MCP 兼容性)
server = MCPServer(config)
server.start(transport="stdio")

配置桌面版 Claude 使用此脚本与 uv

{
  "mcpServers": {
    "openai-tools": {
      "command": "uv",
      "args": [
        "--directory",
        "/绝对路径到你的项目文件夹",
        "run",
        "openai_tools_server.py"
      ]
    }
  }
}

📊 工作原理

该库充当 OpenAI 助手 API 和 MCP 协议之间的桥梁:

sequenceDiagram
    participant Claude as "Claude 应用"
    participant MCP as "MCP 客户端"
    participant Server as "openai-tool2mcp 服务器"
    participant OpenAI as "OpenAI API"

    Claude->>MCP: 用户查询需要工具
    MCP->>Server: MCP 请求
    Server->>OpenAI: 转换为 OpenAI 格式
    OpenAI->>Server: 工具响应
    Server->>MCP: 转换为 MCP 格式
    MCP->>Claude: 显示结果

🔄 MCP SDK 集成

openai-tool2mcp 现已完全兼容 MCP SDK。你可以通过以下步骤使用它与桌面版 Claude 应用:

  1. 使用 pip install openai-tool2mcp 安装包
  2. 配置你的 claude_desktop_config.json 包含:
{
  "mcpServers": {
    "openai-tools": {
      "command": "openai-tool2mcp",
      "args": [
        "start",
        "--transport",
        "stdio",
        "--tools",
        "retrieval",
        "code_interpreter"
      ]
    }
  }
}

配置文件位于:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %AppData%\Claude\claude_desktop_config.json

🤝 贡献

我们欢迎社区的贡献!以下是你可以帮助的方式:

  1. 分叉仓库
  2. 克隆你的分叉到本地机器
  3. 创建分支用于你的新特性或错误修复
  4. 进行更改并提交
  5. 推送到你的分叉并提交一个拉取请求

请确保遵循我们的编码标准,并为任何新功能添加测试。

开发设置

# 克隆仓库
git clone https://github.com/alohays/openai-tool2mcp.git
cd openai-tool2mcp

# 以开发模式安装
make install

# 运行测试
make test

# 运行代码检查
make lint

📄 许可证

本项目采用 MIT 许可证 - 详情见 LICENSE 文件。

🙏 致谢

  • OpenAI 团队提供的优秀工具和 API
  • MCP 社区开发了用于工具使用的开放标准
  • 所有帮助改进此项目的贡献者

⚠️ 项目状态

该项目正处于积极开发阶段。虽然核心功能已经可用,但仍会频繁更新和改进。如果你遇到任何问题,请在我们的 问题跟踪器 上提交。


openai-tool2mcp 是更广泛的 MCPortal 计划的一部分,旨在将 OpenAI 的工具与开源 MCP 生态系统连接起来。