🌟 OpenAPI工具服务器
此存储库提供了参考OpenAPI工具服务器实现,使开发人员能够轻松安全地将外部工具和数据源集成到LLM代理和工作流中。这些实现旨在实现最大的易用性和最小的学习曲线,利用了广泛采用和经过实战测试的 OpenAPI规范 作为标准协议。
通过利用OpenAPI,我们消除了对专有或不熟悉的通信协议的需求,确保您可以快速自信地构建或集成服务器。这意味着花更少的时间来开发自定义界面,花更多的时间来构建增强人工智能应用程序的强大工具。
☝️ 为什么选择OpenAPI?
- 既定标准:OpenAPI是一个广泛使用的、经过生产验证的API标准,由数千个工具、公司和社区支持。
- 没有重新发明轮子:没有额外的文档或专有规范混淆。如果你今天构建REST API或使用OpenAPI,那么你已经设置好了。
- 易于集成和托管:在没有供应商锁定或复杂配置的情况下,在外部或本地部署您的工具服务器。
- 高度重视安全:围绕HTTP/RESTAPI构建,OpenAPI固有地支持广泛使用的安全通信方法,包括HTTPS和经过充分验证的身份验证标准(OAuth、JWT、API密钥)。
- 未来友好稳定与不太成熟或实验性的协议不同,OpenAPI承诺提供可靠性、稳定性和长期的社区支持。
🚀 快速启动
git clone https://github.com/open-webui/openapi-servers
cd openapi-servers
# Example: Installing dependencies for a specific server '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工具服务器 -连接并执行您自己的Retrieval-AugedGeneration(RAG)管道作为可调用的API工具。轻松集成自定义或第三方RAG流,为知识密集型应用程序提供结构化访问和模块化组合。
(将积极开发并不断更新更多示例和参考实现。)
\[!重要\]\ 💡 贡献你的服务器! 我们强烈鼓励社区贡献自己的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工具的转换器,允许在仅MCP的框架内轻松重用RESTful API。
一个轻量级适配器,可以动态地将OpenAPI描述的端点转换为可用的MCP工具服务器。
将OpenAPI端点封装在一个代理中,该代理以MCP兼容的格式重新表示它们,只需最小的配置。
一个FastAPI扩展,允许您直接通过MCP协议为本地FastAPI端点提供服务。
通过这些网桥,您可以在两个方向上获得完全的互操作性:
- 使用现有的MCP管道运行OpenAPI工具
- 用更稳定、安全、基于OpenAPI的实现升级或替换MCP本机工具
这种双向桥梁是简化工具架构的重要一步,使开发人员能够在不损害兼容性的情况下选择最高效、最经得起未来考验的基础设施。
📜 许可证
根据以下许可 MIT许可证.
🌱 开放WebUI社区
- 有关一般性讨论、技术交流和公告,请访问我们的 社区讨论 页面。
- 有想法或反馈吗?请打开一个问题!
