此仓库提供了参考 OpenAPI 工具服务器实现,使开发者能够轻松且安全地将外部工具和数据源集成到 LLM 代理和工作流中。这些实现设计得易于使用且学习曲线最小,采用广泛使用的、经过实战考验的 OpenAPI 规范作为标准协议。
通过利用 OpenAPI,我们消除了对专有或不熟悉通信协议的需求,确保您能够快速自信地构建或集成服务器。这意味着您可以减少花费在自定义接口上的时间,而将更多时间用于构建增强您的 AI 应用程序的强大工具。
使用我们提供的基于 FastAPI 的参考实现快速开始,在 servers/ 目录下提供。您可以根据需要将这些示例适配到您偏好的堆栈中,例如使用 FastAPI、FastOpenAPI 或任何其他兼容 OpenAPI 的库:
git clone https://github.com/open-webui/openapi-servers
cd openapi-servers
# 示例:安装特定服务器 'filesystem' 的依赖项
cd servers/filesystem
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --reload
或者使用 Docker:
cd servers/filesystem
docker compose up
现在,只需将您的兼容 OpenAPI 客户端或 AI 代理指向您本地或公开部署的 URL —— 没有配置难题,没有复杂的传输方式。
本仓库提供的参考实现清晰简洁地展示了常见用例:
(更多的示例和参考实现将积极开发并持续更新。)
[!IMPORTANT]
💡 贡献您的服务器!我们强烈鼓励社区贡献他们自己的 OpenAPI 工具服务器示例!这比看起来更重要:世界不需要另一个封闭的协议或专有格式来阻碍创新——我们需要明确定义的、开放的、可组合的 API,背后有开放文档和经过验证的工具支持。OpenAPI 是我们可以共同建立的面向未来的基石。
让我们一起构建一个开放生态系统,其中每个工具都使用相同的语言——您的语言。
为了最简便地将您的 MCP 工具暴露为兼容 OpenAPI 的 API,我们推荐使用 mcpo。这使得最初实现 MCP 服务器的工具提供商可以毫不费力地将其暴露为标准的兼容 OpenAPI 的 API,确保现有的 MCP 服务器和资源在迁移过程中仍然可访问且无需额外麻烦。
快速使用:
uvx mcpo --port 8000 -- uvx mcp-server-time --local-timezone=America/New_York
另外,我们也提供了一个简单的基于 Python 的代理服务器:
示例:
cd servers/mcp-proxy
pip install -r requirements.txt
python main.py --host 0.0.0.0 --port 8000 -- uvx mcp-server-time --local-timezone=America/New_York
这两种方法都有助于将现有的 MCP 服务器与 OpenAPI 客户端桥接起来,消除集成或迁移过程中的传输和安全复杂性。
除了将 MCP 工具服务器转换为兼容 OpenAPI 的 API(通过 mcpo),还可以反向操作:将您的兼容 OpenAPI 的工具服务器暴露为 MCP 服务器。这使得可以轻松地将任何 OpenAPI 工具集成到期望 MCP 兼容接口的环境或代理中。
有几个由社区维护的项目可以帮助完成这一任务:
有了这些桥梁,您可以在两个方向上获得完全的互操作性:
这种双向桥梁是简化工具架构的重要一步,赋予开发人员选择最高效和面向未来的基础设施而不牺牲兼容性的能力。
根据 MIT 许可证许可。