Integrations
MCP 服务器:可扩展的 OpenAPI 端点发现和 API 请求工具
待办事项
- 不包含预下载模型的 Docker 镜像大小为 2GB。包含预下载模型后则高达 3.76GB!太大了,请帮忙缩小一下。
配置
通过环境变量进行自定义。GLOBAL_TOOL_PROMPT非常重要 !
OPENAPI_JSON_DOCS_URL
:OpenAPI 规范 JSON 的 URL(默认为https://api.staging.readymojo.com/openapi.json )MCP_API_PREFIX
:可自定义的工具命名空间(默认“any_openapi”):CopyGLOBAL_TOOL_PROMPT
:可选文本,附加到所有工具描述之前。这对于 Claude 准确选择(而非选择)你的工具至关重要。Copy
TL'DR
我为什么创建这个:我想提供我的私有 API,其 swagger openapi 文档大小为几百 KB。
- Claude MCP 在处理这些大小的文件时出现错误
- 我尝试将结果转换为 YAML,但不够小,并且出现很多错误。失败了
- 我尝试提供一个 API 类别,然后让 MCP 客户端(Claude Desktop)按组获取 API 文档。但文档仍然太大,失败了。
最终我找到了这个解决方案:
- 它使用内存语义搜索通过自然语言查找相关的 Api 端点(例如列出产品)
- 它以百万秒为单位(因为它在内存中)返回完整的端点文档(因为我设计它将一个端点存储为一个块)
轰隆隆,Claude 现在知道要调用哪个 API,并且知道完整的参数!
等一下,我必须在这个服务器中创建另一个工具来发出实际的 restful 请求,因为“fetch”服务器根本不起作用,而且我不想调试原因。
https://github.com/user-attachments/assets/484790d2-b5a7-475d-a64d-157e839ad9b0
技术亮点:
特征
- 🧠 使用远程 openapi json 文件作为源,无需访问本地文件系统,API 更改无需更新
- 🔍 使用优化的 MiniLM-L3 模型进行语义搜索(43MB vs 原始 90MB)
- 🚀 基于 FastAPI 且支持异步的服务器
- 🧠 基于端点的分块 OpenAPI 规范(处理 100KB+ 文档),不会丢失端点上下文
- ⚡ 内存中 FAISS 向量搜索,可即时发现端点
限制
- 不支持 linux/arm/v7(Transformer 库构建失败)
- 🐢 如果不使用 docker 镜像,冷启动惩罚(模型加载约 15 秒)
- [已过时] 当前 Docker 镜像已禁用下载模型。您依赖 huggingface。加载 Claude 桌面时,下载模型需要一些时间。如果 huggingface 宕机,您的服务器将无法启动。
- 最新的 Docker 镜像嵌入了预先下载的模型。如果出现问题,我会恢复到旧版本。
多实例配置示例
以下是多实例配置示例。我这样设计是为了能够更灵活地用于多组 API:
在此示例中:
- 服务器将自动从 OpenAPI 文档中提取基本 URL:
https://api.finance.com
用于财务 APIhttps://api.healthcare.com
提供医疗保健 API
- 您可以选择使用
API_REQUEST_BASE_URL
环境变量覆盖基本 URL:
Claude 桌面使用示例
Claude桌面项目提示:
在聊天中,您可以执行以下操作:
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装可扩展 OpenAPI 端点发现和 API 请求工具:
使用 pip
可用工具
服务器提供以下工具(其中{prefix}
由MCP_API_PREFIX
决定):
{前缀}_api_request_schema
获取符合您意图的 API 端点架构。返回端点详细信息,包括路径、方法、参数和响应格式。
输入模式:
{前缀}_make_request
**对于使用复杂 API 进行可靠执行至关重要,**因为简化的实现方式会失效。提供:
输入模式:
响应格式:
Docker 支持
多架构构建
官方镜像支持3个平台:
灵活的工具命名
通过MCP_API_PREFIX
控制工具名称:
支持的平台
- Linux/amd64
- Linux/arm64
选项 1:使用预构建映像(Docker Hub)
选项 2:本地开发构建
运行容器
关键组件
- EndpointSearcher :核心类,处理以下内容:
- OpenAPI规范解析
- 语义搜索索引创建
- 端点文档格式
- 自然语言查询处理
- 服务器实现:
- 异步 FastAPI 服务器
- MCP 协议支持
- 工具注册和调用处理
从源运行
与 Claude Desktop 集成
在 Claude Desktop 设置中配置 MCP 服务器:
贡献
- 分叉存储库
- 创建你的功能分支(
git checkout -b feature/amazing-feature
) - 提交您的更改(
git commit -m 'Add some amazing feature'
) - 推送到分支(
git push origin feature/amazing-feature
) - 打开拉取请求
执照
该项目根据 LICENSE 文件中的条款获得许可。
实施说明
- 以端点为中心的处理:与难以处理大型规范的文档级分析不同,我们使用以下方式对各个端点进行索引:
- 路径 + 方法作为唯一标识符
- 参数感知嵌入
- 响应架构上下文
- 优化的规范处理:通过以下方式处理高达 10MB(约 5,000 个端点)的 OpenAPI 规范:
- 架构组件的延迟加载
- 路径项的并行解析
- 选择性嵌入生成(省略冗余描述)
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
该服务器使用语义搜索和高性能处理来促进 OpenAPI 端点的可扩展发现和执行,克服了大型规范处理对简化 API 交互的限制。
- TODO
- Configuration
- TL'DR
- Features
- Limitations
- Multi-instance config example
- Claude Desktop Usage Example
- Installation
- Available Tools
- Docker Support
- Integration with Claude Desktop
- Contributing
- License
- Implementation Notes
Related Resources
Related MCP Servers
- -securityAlicense-qualityAn MCP server that exposes HTTP methods defined in an OpenAPI specification as tools, enabling interaction with APIs via the Model Context Protocol.Last updated -2PythonMIT License
- -securityFlicense-qualityThis server acts as a Message Communication Protocol (MCP) service for integrating Apifox and Cursor, enabling OpenAPI interface implementation through AI-driven interaction.Last updated -7TypeScript
- -securityFlicense-qualityA server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.Last updated -7432JavaScript
- AsecurityAlicenseAqualityA Model Context Protocol server that loads multiple OpenAPI specifications and exposes them to LLM-powered IDE integrations, enabling AI to understand and work with your APIs directly in development tools like Cursor.Last updated -72927TypeScriptMIT License