返回市场
开放API服务器

开放API服务器

作者:open-webui753 星标更新:2025-09-26

项目介绍

🌟 OpenAPI 工具服务器

此仓库提供了参考 OpenAPI 工具服务器实现,使开发者能够轻松且安全地将外部工具和数据源集成到 LLM 代理和工作流中。这些实现设计得易于使用且学习曲线最小,采用广泛使用的、经过实战考验的 OpenAPI 规范作为标准协议。

通过利用 OpenAPI,我们消除了对专有或不熟悉通信协议的需求,确保您能够快速自信地构建或集成服务器。这意味着您可以减少花费在自定义接口上的时间,而将更多时间用于构建增强您的 AI 应用程序的强大工具。

☝️ 为什么选择 OpenAPI?

  • 成熟标准:OpenAPI 是一个被广泛使用、经过生产验证的 API 标准,背后有成千上万的工具、公司和社区支持。
  • 无需重新发明轮子:无需额外的文档或专有规范混淆。如果您今天构建 REST API 或使用 OpenAPI,您已经准备好了。
  • 简单集成与托管:可以将您的工具服务器部署到外部或本地,无需供应商锁定或复杂的配置。
  • 强大的安全性关注点:围绕 HTTP/REST API 构建,OpenAPI 内在支持广泛使用的安全通信方法,包括 HTTPS 和经过验证的身份验证标准(OAuth、JWT、API 密钥)。
  • 面向未来且稳定:与不太成熟或实验性的协议不同,OpenAPI 承诺可靠性、稳定性以及长期的社区支持。

🚀 快速开始

使用我们提供的基于 FastAPI 的参考实现快速开始,在 servers/ 目录下提供。您可以根据需要将这些示例适配到您偏好的堆栈中,例如使用 FastAPIFastOpenAPI 或任何其他兼容 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 —— 没有配置难题,没有复杂的传输方式。

📂 服务器参考实现

本仓库提供的参考实现清晰简洁地展示了常见用例:

  • 文件系统访问 - 安全管理本地文件操作,具有可配置的限制。
  • Git 服务器 - 通过受控 API 端点暴露 Git 存储库以进行搜索、读取,可能还有写入。
  • 内存与知识图谱 - 使用流行的可靠存储技术进行持久性内存管理和语义知识查询。
  • 天气服务器 - 提供来自可信公共 API 的当前天气状况和预报。
  • 获取用户信息服务器 - 从身份验证提供商或内部系统访问并返回丰富的用户资料信息。
  • SQL 聊天服务器 - 连接到 SQL 数据库,并根据您的数据库模式和自然语言输入自动生成、执行和优化查询。这使得可以通过聊天进行数据探索,利用外部检索增强生成(RAG)来提供高级查询辅助。
  • 外部 RAG 工具服务器 - 连接并执行您自己的检索增强生成(RAG)流水线作为可调用的 API 工具。轻松集成自定义或第三方 RAG 流水线,为知识密集型应用程序提供结构化访问和模块化组合。

(更多的示例和参考实现将积极开发并持续更新。)

[!IMPORTANT]
💡 贡献您的服务器!

我们强烈鼓励社区贡献他们自己的 OpenAPI 工具服务器示例!这比看起来更重要:世界不需要另一个封闭的协议或专有格式来阻碍创新——我们需要明确定义的、开放的、可组合的 API,背后有开放文档和经过验证的工具支持。OpenAPI 是我们可以共同建立的面向未来的基石。

让我们一起构建一个开放生态系统,其中每个工具都使用相同的语言——您的语言。

🔌 桥接 MCP → 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 客户端桥接起来,消除集成或迁移过程中的传输和安全复杂性。

🔃 桥接 OpenAPI → MCP(可选)

除了将 MCP 工具服务器转换为兼容 OpenAPI 的 API(通过 mcpo),还可以反向操作:将您的兼容 OpenAPI 的工具服务器暴露为 MCP 服务器。这使得可以轻松地将任何 OpenAPI 工具集成到期望 MCP 兼容接口的环境或代理中。

有几个由社区维护的项目可以帮助完成这一任务:

  • 🌉 openapi-mcp-server
    作为一个从任何 OpenAPI 规范到 MCP 工具的翻译器,允许在仅 MCP 的框架内轻松重用 RESTful API。
  • 🔁 mcp-openapi-server
    一个轻量级适配器,可以在运行时将 OpenAPI 描述的端点转换为可用的 MCP 工具服务器。
  • 🌀 mcp-openapi-proxy
    将 OpenAPI 端点包装在一个代理中,以最少的配置将其重新表达为 MCP 兼容格式。
  • ⚡ fastapi_mcp
    一个 FastAPI 扩展,允许您直接通过 MCP 协议提供原生 FastAPI 端点。

有了这些桥梁,您可以在两个方向上获得完全的互操作性:

  • 使用现有的 MCP 管道运行 OpenAPI 工具
  • 升级或替换原生 MCP 工具为更稳定、更安全、基于 OpenAPI 的实现

这种双向桥梁是简化工具架构的重要一步,赋予开发人员选择最高效和面向未来的基础设施而不牺牲兼容性的能力。

📜 许可证

根据 MIT 许可证许可。

🌱 开放 WebUI 社区

  • 对于一般讨论、技术交流和公告,请访问我们的 社区讨论 页面。
  • 有任何想法或反馈?请打开一个议题!