anyapi mcp服务器
如果它有一个API,你可以MCP它。
传统的MCP服务器手工挑选一些端点,并称之为一天-将您锁定在某人认为“足够”的任何子集中。当您可以 全部?
anyapi-mcp-server 是普遍的 主控程序 连接的服务器 任何REST API 对于Claude、Cursor和其他LLM驱动的工具等人工智能助手,只需将其指向OpenAPI规范或Postman集合即可。API提供的每个端点都可以立即使用 GraphQL样式字段选择 以及自动模式推理。没有自定义服务器代码,没有人为限制。
](https://www.npmjs.com/package/anyapi-mcp-server)
快速开始
1.安装
npm install -g anyapi-mcp-server2.添加到您的MCP客户端 (光标、克劳德桌面等)
{
"mcpServers": {
"your-api": {
"command": "npx",
"args": [
"-y",
"anyapi-mcp-server",
"--name", "your-api",
"--spec", "path/to/openapi.json",
"--base-url", "https://api.example.com",
"--header", "Authorization: Bearer ${API_KEY}"
],
"env": {
"API_KEY": "your-api-key"
}
}
}
}3.使用工具 --通过以下方式发现端点 list_api,检查模式 call_api,用以下方式获取数据 query_api.
提供商示例
流行API的即用型配置:
这些适用于任何具有OpenAPI或Postman规范的API-以上只是示例。Stripe、Twilio、Shopify、HubSpot和任何其他带有REST API的应用程序都将以相同的方式工作。
CLI参考
所需标志
| 标志 | 描述 |
|---|---|
--name | 服务器名称(例如。 cloudflare) |
--spec | OpenAPI规范(JSON/YAML)或Postman集合的路径或HTTPS URL。远程URL在本地缓存。支持 ${ENV_VAR}. |
--base-url | API基本URL(例如。 https://api.example.com).支持 ${ENV_VAR}. |
可选标志
| 标志 | 描述 |
|---|---|
--header | HTTP标头为 "Key: Value" (可重复)。支持 ${ENV_VAR} 价值观。 |
--log | NDJSON请求/响应日志的路径。敏感标头会自动屏蔽。 |
OAuth标志
适用于使用OAuth 2.0而不是静态令牌的API。如果提供了三个必需标志中的任何一个,则所有三个都是必需的。所有旗帜支持 ${ENV_VAR}.
| 标志 | 必填 | 说明 |
|---|---|---|
--oauth-client-id | 是\* | OAuth客户端ID |
--oauth-client-secret | 是\* | OAuth客户端密钥 |
--oauth-token-url | 是\* | 令牌端点URL |
--oauth-auth-url | 否 | 授权端点(如果可用,则从规范中自动检测到) |
--oauth-scopes | 否 | 逗号分隔的范围 |
--oauth-flow | 没有 | authorization_code (默认)或 client_credentials |
--oauth-param | 否 | 额外令牌参数为 key=value (可重复) |
请参阅 谷歌工作区指南 查看完整的OAuth示例。
工具
服务器公开了四个工具(加 auth 配置OAuth时):
list_api --浏览端点
了解API提供的功能。无参数调用以查看所有类别,提供 category 在标签中列出端点,或 search 按关键字查找端点。
call_api --检查端点
发出一个真正的HTTP请求并返回 推断GraphQL模式 (SDL)——不是数据本身。使用此功能可以发现响应形状并获得 suggestedQueries 您可以复制到 query_api。还返回每个字段的令牌成本(fieldTokenCosts)以及a dataKey 用于缓存重用。对于PUT/PATCH请求,自动创建预写备份(返回 backupDataKey).支持 bodyFile 对于大型有效载荷和具有检测到的占位符值的块请求。
query_api --获取数据
获取数据并返回 只有您选择的字段 通过GraphQL查询。支持读取和写入(POST/PUT/DELETE/PATCH的突变)。通过a dataKey 从 call_api 以零HTTP调用重用缓存数据。
# Read
{ items { id name status } _count }
# Write
mutation { post_endpoint(input: { name: "example" }) { id } }关键参数:
maxTokens--响应的令牌预算。数组被截断以适应。没有这个或unlimited,超过约10000个令牌的响应被拒绝。unlimited--设置为true返回完整响应,不强制执行令牌预算。dataKey--重用以前缓存的数据call_api或query_api回应。jsonFilter--在GraphQL查询后提取嵌套值的点路径(例如。"data[].attributes.name").bodyFile--用作请求体的JSON文件的绝对路径(与互斥body).用于无法内联发送的大型有效载荷。skipBackup--跳过PUT/PATCH请求的自动预写备份(默认值:false).
explain_api --阅读文档
返回端点的规范文档(参数、请求体模式、响应代码) 不发出HTTP请求.
auth --OAuth身份验证
仅在以下情况下可用 --oauth-* 标志已配置。管理OAuth流:
action: "start"--返回授权URL(或交换凭据client_credentials)action: "exchange"--完成授权代码流(自动捕获回调)action: "status"--显示当前令牌状态
令牌被持久化并自动刷新。
典型工作流程
list_api → discover what's available
↓
explain_api → read the docs for an endpoint
↓
call_api → inspect the response schema (returns dataKey)
↓
query_api → fetch exactly the fields you need (pass dataKey for zero HTTP calls)
↓
query_api → re-query with different fields using the same dataKey运作原理
OpenAPI/Postman spec
│
▼
┌─────────┐ ┌─────────────┐ ┌──────────┐ ┌───────────┐
│list_api │ │ explain_api │ │ call_api │ │ query_api │
│(browse) │ │ (docs) │ │ (schema) │ │ (data) │
└─────────┘ └─────────────┘ └──────────┘ └───────────┘
│ │ no HTTP │ │
▼ ▼ request ▼ ▼
Spec index Spec index REST API call dataKey cache
(tags, (params, (with retry) hit → no HTTP
paths) responses, │ miss → fetch
body schema) ▼ │
Infer schema + ▼
return dataKey Execute GraphQL
+ token budget
truncation特性
- 任何REST API --提供OpenAPI(JSON/YAML)或Postman Collection v2.x规范作为文件或URL
- 远程规格缓存 --HTTPS规范被提取一次并缓存到
~/.cache/anyapi-mcp/ - GraphQL字段选择 --从任何响应中仅查询所需的字段
- 模式推理 -根据API实时响应自动构建GraphQL模式
- 多样本合并 --最多采样10个数组元素,以获得更丰富的模式
- 突变支持 --写操作从OpenAPI体模式中获取类型化的GraphQL突变
- 聪明的建议 —
call_api返回基于推断模式的即用型查询 - 响应缓存 --基于文件系统的缓存,TTL为5分钟;
dataKey代币出租query_api使用零HTTP调用重用数据 - 代币预算 —
query_api默认情况下,强制执行约10k的令牌安全限制;使用maxTokens截断最深的最大数组以进行拟合,或unlimited: true获取完整回复 - 每个字段的令牌成本 —
call_api返回afieldTokenCosts树,以便LLM可以做出明智的字段选择 - 速率限制跟踪 --解析
X-RateLimit-*当限制接近用尽时,显示标题和警告 - 分页检测 --自动检测响应中的光标、下一页标记和基于链接的分页模式
- JSON过滤器 —
query_api接受ajsonFilter查询后提取的点路径(例如。"data[].name") - 使用回退重试 --429/5xx的自动重试,具有指数回退和
Retry-After支持 - 多格式 --解析JSON、XML、CSV和纯文本响应
- 安全写入 --PUT/PATCH请求在写入之前自动快照资源(
backupDataKey);占位符值(例如。PLACEHOLDER,TODO,file://)在发送之前被检测和阻止 - 基于文件的正文 —
bodyFile参数接受JSON文件的绝对路径,启用无法内联发送的大型有效负载 - 丰富的错误 --带有状态特定建议和规范上下文的结构化错误消息,用于自我纠正
- OAuth 2.0 --授权码(带PKCE)和客户端凭据流,带自动令牌刷新
- 环境变量插值 —
${ENV_VAR}在基本URL、标头和规范路径中 - 请求日志记录 --带有敏感标头掩码的可选NDJSON日志
支持的规范格式
- OpenAPI 3.x (JSON或YAML)
- OpenAPI 2.0/Swagger (JSON或YAML)
- 邮差收藏v2.x (JSON)
许可证
专有非商业。免费用于个人和教育用途。商业用途需要书面许可。看 许可证 了解详情。
