api2mcp 0.3.2 → 0.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -1
- package/dist/{chunk-YPGEM247.mjs → chunk-7JKK7Z2Y.mjs} +714 -5
- package/dist/chunk-7JKK7Z2Y.mjs.map +1 -0
- package/dist/cli.js +709 -5
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +8 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.mts +409 -1
- package/dist/index.d.ts +409 -1
- package/dist/index.js +726 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -1
- package/package.json +1 -1
- package/dist/chunk-YPGEM247.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
- 📝 **完整支持**: 支持 OpenAPI 3.x 规范,包括路径参数、查询参数、请求体等
|
|
9
9
|
- 🚀 **简单易用**: 通过 CLI 或配置文件快速启动
|
|
10
10
|
- 🔌 **MCP 兼容**: 完全兼容 MCP 协议,可在 Claude Desktop 等 MCP 客户端中使用
|
|
11
|
+
- 🎯 **按需模式**: 针对大型 OpenAPI 文档,提供按需发现和调用 API 的模式
|
|
11
12
|
|
|
12
13
|
## 安装
|
|
13
14
|
|
|
@@ -82,6 +83,7 @@ api2mcp --url https://petstore3.swagger.io/api/v3/openapi.json
|
|
|
82
83
|
| `--timeout` | `-t` | 请求超时时间 (毫秒) |
|
|
83
84
|
| `--headers` | `-h` | 自定义请求头 (JSON 字符串) |
|
|
84
85
|
| `--prefix` | `-p` | 工具名前缀 |
|
|
86
|
+
| `--mode` | `-m` | 工作模式:`default`(默认)或 `ondemand`(按需) |
|
|
85
87
|
| `--debug` | `-d` | 启用调试模式 |
|
|
86
88
|
|
|
87
89
|
### 配置文件
|
|
@@ -101,10 +103,61 @@ api2mcp --url https://petstore3.swagger.io/api/v3/openapi.json
|
|
|
101
103
|
"headers": {
|
|
102
104
|
"Authorization": "Bearer your-token"
|
|
103
105
|
},
|
|
104
|
-
"toolPrefix": "myapi"
|
|
106
|
+
"toolPrefix": "myapi",
|
|
107
|
+
"mode": "default"
|
|
105
108
|
}
|
|
106
109
|
```
|
|
107
110
|
|
|
111
|
+
## 工作模式
|
|
112
|
+
|
|
113
|
+
api2mcp 支持两种工作模式:
|
|
114
|
+
|
|
115
|
+
### 默认模式 (default)
|
|
116
|
+
|
|
117
|
+
将所有 API 直接转换为 MCP 工具。适合 API 数量较少的场景。
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
npx api2mcp --url https://api.example.com/openapi.json --mode default
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 按需模式 (ondemand)
|
|
124
|
+
|
|
125
|
+
当 OpenAPI 文档包含大量端点(如数百或数千个)时,按需模式提供更好的体验:
|
|
126
|
+
|
|
127
|
+
- **减少上下文占用**: 不会预先注册所有工具,节省 LLM 上下文空间
|
|
128
|
+
- **按需发现**: LLM 可以搜索和浏览可用的 API
|
|
129
|
+
- **直接执行**: 找到需要的 API 后直接调用
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
npx api2mcp --url https://api.example.com/openapi.json --mode ondemand
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
#### 按需模式提供的工具
|
|
136
|
+
|
|
137
|
+
| 工具名 | 功能 |
|
|
138
|
+
|--------|------|
|
|
139
|
+
| `api_list` | 分页浏览所有 API,支持按标签过滤 |
|
|
140
|
+
| `api_search` | 模糊搜索 API(名称、摘要、描述、路径) |
|
|
141
|
+
| `api_detail` | 获取 API 的详细信息和参数 Schema |
|
|
142
|
+
| `api_execute` | 直接执行 API 调用 |
|
|
143
|
+
|
|
144
|
+
#### 使用示例
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
用户: 我需要查询用户信息
|
|
148
|
+
|
|
149
|
+
LLM 调用流程:
|
|
150
|
+
1. api_search(query="user") → 找到相关 API
|
|
151
|
+
2. api_detail(id="get_user") → 查看参数要求
|
|
152
|
+
3. api_execute(operationId="get_user", parameters={userId: 123}) → 执行调用
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### 推荐场景
|
|
156
|
+
|
|
157
|
+
- OpenAPI 文档包含 100+ 个端点
|
|
158
|
+
- API 数量众多但通常只需要少数几个
|
|
159
|
+
- 希望减少 MCP 客户端的加载时间
|
|
160
|
+
|
|
108
161
|
### 环境变量
|
|
109
162
|
|
|
110
163
|
| 环境变量 | 说明 |
|