item-wms-public-api-tool 2.0.4
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/AI_INTEGRATION_GUIDE.md +492 -0
- package/HELP.md +297 -0
- package/README.md +259 -0
- package/api/README.md +9 -0
- package/api/openapi.apifox.yaml +20771 -0
- package/dist/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +326 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +8 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +76 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +32 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +109 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/openapi-tools.d.ts +25 -0
- package/dist/openapi-tools.d.ts.map +1 -0
- package/dist/openapi-tools.js +287 -0
- package/dist/openapi-tools.js.map +1 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +442 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/batchImportItemMaster.d.ts +59 -0
- package/dist/tools/batchImportItemMaster.d.ts.map +1 -0
- package/dist/tools/batchImportItemMaster.js +27 -0
- package/dist/tools/batchImportItemMaster.js.map +1 -0
- package/dist/tools/batchUploadOrderFiles.d.ts +29 -0
- package/dist/tools/batchUploadOrderFiles.d.ts.map +1 -0
- package/dist/tools/batchUploadOrderFiles.js +96 -0
- package/dist/tools/batchUploadOrderFiles.js.map +1 -0
- package/dist/tools/importInbound.d.ts +62 -0
- package/dist/tools/importInbound.d.ts.map +1 -0
- package/dist/tools/importInbound.js +22 -0
- package/dist/tools/importInbound.js.map +1 -0
- package/dist/tools/importOutbound.d.ts +76 -0
- package/dist/tools/importOutbound.d.ts.map +1 -0
- package/dist/tools/importOutbound.js +25 -0
- package/dist/tools/importOutbound.js.map +1 -0
- package/dist/tools/itemGet.d.ts +15 -0
- package/dist/tools/itemGet.d.ts.map +1 -0
- package/dist/tools/itemGet.js +12 -0
- package/dist/tools/itemGet.js.map +1 -0
- package/dist/tools/itemSearch.d.ts +8 -0
- package/dist/tools/itemSearch.d.ts.map +1 -0
- package/dist/tools/itemSearch.js +17 -0
- package/dist/tools/itemSearch.js.map +1 -0
- package/dist/tools/login.d.ts +26 -0
- package/dist/tools/login.d.ts.map +1 -0
- package/dist/tools/login.js +15 -0
- package/dist/tools/login.js.map +1 -0
- package/dist/tools/queryItemMaster.d.ts +63 -0
- package/dist/tools/queryItemMaster.d.ts.map +1 -0
- package/dist/tools/queryItemMaster.js +9 -0
- package/dist/tools/queryItemMaster.js.map +1 -0
- package/dist/tools/queryOrder.d.ts +74 -0
- package/dist/tools/queryOrder.d.ts.map +1 -0
- package/dist/tools/queryOrder.js +19 -0
- package/dist/tools/queryOrder.js.map +1 -0
- package/dist/tools/queryOrderDC.d.ts +25 -0
- package/dist/tools/queryOrderDC.d.ts.map +1 -0
- package/dist/tools/queryOrderDC.js +19 -0
- package/dist/tools/queryOrderDC.js.map +1 -0
- package/dist/tools/queryOrderDetail.d.ts +70 -0
- package/dist/tools/queryOrderDetail.d.ts.map +1 -0
- package/dist/tools/queryOrderDetail.js +19 -0
- package/dist/tools/queryOrderDetail.js.map +1 -0
- package/dist/tools/queryReceipt.d.ts +70 -0
- package/dist/tools/queryReceipt.d.ts.map +1 -0
- package/dist/tools/queryReceipt.js +19 -0
- package/dist/tools/queryReceipt.js.map +1 -0
- package/dist/tools/queryReceiptDetail.d.ts +70 -0
- package/dist/tools/queryReceiptDetail.d.ts.map +1 -0
- package/dist/tools/queryReceiptDetail.js +19 -0
- package/dist/tools/queryReceiptDetail.js.map +1 -0
- package/dist/tools/queryReceiptRC.d.ts +25 -0
- package/dist/tools/queryReceiptRC.d.ts.map +1 -0
- package/dist/tools/queryReceiptRC.js +19 -0
- package/dist/tools/queryReceiptRC.js.map +1 -0
- package/dist/tools/uploadOrderFile.d.ts +25 -0
- package/dist/tools/uploadOrderFile.d.ts.map +1 -0
- package/dist/tools/uploadOrderFile.js +94 -0
- package/dist/tools/uploadOrderFile.js.map +1 -0
- package/dist/tools/validateInbound.d.ts +13 -0
- package/dist/tools/validateInbound.d.ts.map +1 -0
- package/dist/tools/validateInbound.js +18 -0
- package/dist/tools/validateInbound.js.map +1 -0
- package/llms.txt +23 -0
- package/mcp.json +6562 -0
- package/mcp.schema.json +100 -0
- package/openapi.yaml +20685 -0
- package/package.json +34 -0
- package/scripts/sync-openapi.js +289 -0
- package/src/cli.ts +353 -0
- package/src/client.ts +90 -0
- package/src/config.ts +126 -0
- package/src/index.ts +31 -0
- package/src/openapi-tools.ts +346 -0
- package/src/server.ts +472 -0
- package/test-ai-integration.js +128 -0
- package/test-fix.js +68 -0
- package/test-mcp.js +92 -0
- package/test-order.json +25 -0
- package/tsconfig.json +18 -0
package/HELP.md
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# WMS Item Public MCP 使用帮助
|
|
2
|
+
|
|
3
|
+
## 目录
|
|
4
|
+
|
|
5
|
+
- [安装](#安装)
|
|
6
|
+
- [CLI 命令使用](#cli-命令使用)
|
|
7
|
+
- [环境变量配置](#环境变量配置)
|
|
8
|
+
- [示例命令](#示例命令)
|
|
9
|
+
- [常见问题](#常见问题)
|
|
10
|
+
- [API 列表](#api-列表)
|
|
11
|
+
|
|
12
|
+
## 安装
|
|
13
|
+
|
|
14
|
+
### 全局安装
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install -g item-wms-public-api-tool
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 本地安装
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install item-wms-public-api-tool
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 使用 npx 执行
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx item-wms-public-api-tool --help
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## CLI 命令使用
|
|
33
|
+
|
|
34
|
+
### 基本语法
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
item-wms-public-api-tool <toolName> [options]
|
|
38
|
+
# 或
|
|
39
|
+
item-wms-public-api-tool call <toolName> [options]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
工具名称根据 OpenAPI 自动生成:`<method>_<path>`(非字母数字替换为 `_`),例如 `post_v1_public_user_login`。
|
|
43
|
+
|
|
44
|
+
### 动态工具发现
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
item-wms-public-api-tool list
|
|
48
|
+
item-wms-public-api-tool describe <toolName>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 参数传递方式
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 单个字段(可重复)
|
|
55
|
+
item-wms-public-api-tool post_v1_public_user_login --param username=test --param password=pass
|
|
56
|
+
|
|
57
|
+
# 直接传 JSON
|
|
58
|
+
item-wms-public-api-tool post_v1_public_user_login --json '{"username":"test","password":"pass"}'
|
|
59
|
+
|
|
60
|
+
# 从文件读取 JSON
|
|
61
|
+
item-wms-public-api-tool post_v1_public_user_login --file ./payload.json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 全局选项
|
|
65
|
+
|
|
66
|
+
| 选项 | 描述 | 示例 |
|
|
67
|
+
|------|------|------|
|
|
68
|
+
| `--baseUrl` | API 基础 URL(默认 `https://wms-staging.item.com/api/public`) | `--baseUrl https://wms-staging.item.com/api/public` |
|
|
69
|
+
| `--token` | 认证令牌(支持原始 token 或 `Bearer ...`) | `--token YOUR_TOKEN` |
|
|
70
|
+
| `--companyId` | 默认 CompanyID(请求包含该字段时自动填充,默认 `LT`) | `--companyId LT` |
|
|
71
|
+
| `--facilityId` | 默认 FacilityID(请求包含该字段时自动填充,默认 `889`) | `--facilityId 889` |
|
|
72
|
+
| `--customerId` | 默认 CustomerID(请求包含该字段时自动填充,默认 `FLAANT0001`) | `--customerId FLAANT0001` |
|
|
73
|
+
| `--help` | 显示帮助信息 | `--help` |
|
|
74
|
+
| `--version` | 显示版本信息 | `--version` |
|
|
75
|
+
|
|
76
|
+
## 环境变量配置
|
|
77
|
+
|
|
78
|
+
| 环境变量 | 描述 | 示例 |
|
|
79
|
+
|----------|------|------|
|
|
80
|
+
| `WMS_BASE_URL` | API 基础 URL(可选,覆盖默认值) | `export WMS_BASE_URL=https://wms-staging.item.com/api/public` |
|
|
81
|
+
| `WMS_TOKEN` | 认证令牌 | `export WMS_TOKEN=YOUR_TOKEN` |
|
|
82
|
+
| `WMS_COMPANY_ID` | 默认 CompanyID(覆盖默认 `LT`) | `export WMS_COMPANY_ID=LT` |
|
|
83
|
+
| `WMS_FACILITY_ID` | 默认 FacilityID(覆盖默认 `889`) | `export WMS_FACILITY_ID=889` |
|
|
84
|
+
| `WMS_CUSTOMER_ID` | 默认 CustomerID(覆盖默认 `FLAANT0001`) | `export WMS_CUSTOMER_ID=FLAANT0001` |
|
|
85
|
+
|
|
86
|
+
说明:当接口包含 CompanyID/FacilityID/CustomerID 且请求未显式传递时,会自动使用配置值(未配置时使用默认值)。
|
|
87
|
+
|
|
88
|
+
### 示例
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# 设置环境变量
|
|
92
|
+
export WMS_BASE_URL=https://wms-staging.item.com/api/public
|
|
93
|
+
export WMS_TOKEN=YOUR_TOKEN
|
|
94
|
+
export WMS_COMPANY_ID=LT
|
|
95
|
+
export WMS_FACILITY_ID=889
|
|
96
|
+
export WMS_CUSTOMER_ID=FLAANT0001
|
|
97
|
+
|
|
98
|
+
# 现在可以直接执行命令,无需重复输入 baseUrl、token、CompanyID、FacilityID、CustomerID
|
|
99
|
+
item-wms-public-api-tool post_v1_public_edi_outbound_order_level_search_by_paging \
|
|
100
|
+
--json '{"Paging":{"page":1,"pageSize":10}}'
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 示例命令
|
|
104
|
+
|
|
105
|
+
以下示例中的 `--baseUrl` 可省略,默认使用 `https://wms-staging.item.com/api/public`。
|
|
106
|
+
|
|
107
|
+
### 1. 列出工具
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
item-wms-public-api-tool list
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 2. 用户登录
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
item-wms-public-api-tool post_v1_public_user_login --param username=testuser --param password=testpass
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 3. 按订单维度查询订单
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
item-wms-public-api-tool post_v1_public_edi_outbound_order_level_search_by_paging \
|
|
123
|
+
--json '{"CompanyID":"TEST_COM","CustomerID":"TEST_CUST","FacilityID":"TEST_FAC","Paging":{"page":1,"pageSize":10}}' \
|
|
124
|
+
--token YOUR_TOKEN
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 4. 批量导入物品主数据
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
item-wms-public-api-tool post_v1_public_edi_item_master_import \
|
|
131
|
+
--json '{"items":[{"itemID":"ITEM001","itemDescription":"测试物品","companyId":"TEST_COM","customerId":"TEST_CUST"}]}' \
|
|
132
|
+
--token YOUR_TOKEN
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 常见问题
|
|
136
|
+
|
|
137
|
+
### Q: 命令执行时提示 "command not found"
|
|
138
|
+
|
|
139
|
+
A: 请确保已正确安装MCP,或使用npx方式执行:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
npx item-wms-public-api-tool --help
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Q: 如何获取认证令牌
|
|
146
|
+
|
|
147
|
+
A: 通过登录接口获取:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
item-wms-public-api-tool post_v1_public_user_login --param username=YOUR_USERNAME --param password=YOUR_PASSWORD
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
提示:在 MCP stdio 模式下,登录返回 `onAuthToken` 后会自动缓存到进程内存,后续调用未显式传 `--token` 时会自动使用;CLI 每次命令仍需传 `--token` 或设置 `WMS_TOKEN`。
|
|
154
|
+
|
|
155
|
+
### Q: API调用失败,提示 "Unauthorized"
|
|
156
|
+
|
|
157
|
+
A: 可能的原因及解决方法:
|
|
158
|
+
|
|
159
|
+
1. **用户名或密码不正确**:请检查用户名和密码是否正确。
|
|
160
|
+
2. **baseUrl配置错误**:请确保使用了正确的API基础URL:`https://wms-staging.item.com/api/public`。
|
|
161
|
+
3. **令牌过期或无效**:请重新获取令牌:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# 对于WMS认证
|
|
165
|
+
item-wms-public-api-tool post_v1_public_user_login --param username=YOUR_USERNAME --param password=YOUR_PASSWORD
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Q: 如何查看特定命令的帮助
|
|
169
|
+
|
|
170
|
+
A: 使用 `describe` 查看接口详情,或使用 `--help` 查看命令用法:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
item-wms-public-api-tool describe post_v1_public_edi_outbound_order_level_search_by_paging
|
|
174
|
+
item-wms-public-api-tool post_v1_public_edi_outbound_order_level_search_by_paging --help
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Q: 如何从文件读取JSON数据
|
|
178
|
+
|
|
179
|
+
A: 使用命令行参数直接传递JSON字符串,或通过脚本读取文件内容后传递:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# 直接传递JSON
|
|
183
|
+
item-wms-public-api-tool post_v1_public_edi_item_master_import --json '{"items":[{"itemID":"ITEM001","itemDescription":"测试物品"}]}' --token YOUR_TOKEN
|
|
184
|
+
|
|
185
|
+
# 或使用文件
|
|
186
|
+
item-wms-public-api-tool post_v1_public_edi_item_master_import --file items.json --token YOUR_TOKEN
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## API 列表
|
|
190
|
+
|
|
191
|
+
CLI 工具列表与 OpenAPI 保持一致,运行时自动生成。请使用以下命令查看:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
item-wms-public-api-tool list
|
|
195
|
+
item-wms-public-api-tool describe <toolName>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## 配置文件
|
|
199
|
+
|
|
200
|
+
### mcp.json
|
|
201
|
+
|
|
202
|
+
定义了MCP的基本信息和工具列表,包括:
|
|
203
|
+
|
|
204
|
+
- 工具名称
|
|
205
|
+
- 描述
|
|
206
|
+
- 输入参数schema
|
|
207
|
+
|
|
208
|
+
### openapi.yaml
|
|
209
|
+
|
|
210
|
+
完整的API文档,包含所有接口的:
|
|
211
|
+
|
|
212
|
+
- 请求参数
|
|
213
|
+
- 响应格式
|
|
214
|
+
- 示例
|
|
215
|
+
|
|
216
|
+
## 开发相关
|
|
217
|
+
|
|
218
|
+
### API 同步
|
|
219
|
+
|
|
220
|
+
使用 Apifox 本地导出链接同步 OpenAPI,并把快照保存到仓库:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# 默认使用本地导出链接
|
|
224
|
+
npm run sync:api
|
|
225
|
+
|
|
226
|
+
# 或显式指定导出链接
|
|
227
|
+
APIFOX_OPENAPI_URL="http://127.0.0.1:4523/export/openapi/2?version=3.0" npm run sync:api
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
同步脚本会更新:
|
|
231
|
+
- `api/openapi.apifox.yaml`(快照)
|
|
232
|
+
- `openapi.yaml`
|
|
233
|
+
- `mcp.json`
|
|
234
|
+
|
|
235
|
+
可以通过环境变量过滤导出路径前缀(默认仅包含 `/v1/public/`):
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
APIFOX_PATH_PREFIX="/v1/public/" npm run sync:api
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
运行时 MCP 工具列表同样支持该前缀过滤。
|
|
242
|
+
|
|
243
|
+
如果手动导出了文件,也可以用文件路径同步:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
APIFOX_OPENAPI_FILE="/path/to/openapi.yaml" npm run sync:api
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### 本地开发
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# 安装依赖
|
|
253
|
+
npm install
|
|
254
|
+
|
|
255
|
+
# 开发模式,实时编译
|
|
256
|
+
npm run dev
|
|
257
|
+
|
|
258
|
+
# 构建项目
|
|
259
|
+
npm run build
|
|
260
|
+
|
|
261
|
+
# 类型检查
|
|
262
|
+
npx tsc
|
|
263
|
+
|
|
264
|
+
# 本地链接测试
|
|
265
|
+
npm link
|
|
266
|
+
item-wms-public-api-tool --help
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### 添加新工具
|
|
270
|
+
|
|
271
|
+
工具由 OpenAPI 自动生成,无需手动维护实体或工具定义:
|
|
272
|
+
|
|
273
|
+
1. 在 Apifox 中更新接口定义
|
|
274
|
+
2. 运行 `npm run sync:api` 更新 `openapi.yaml` 和 `mcp.json`
|
|
275
|
+
3. MCP 工具列表自动生效(服务端会按文件变更自动刷新)
|
|
276
|
+
|
|
277
|
+
## 注意事项
|
|
278
|
+
|
|
279
|
+
1. 所有API调用需要有效的认证令牌
|
|
280
|
+
2. 请确保配置正确的API基础URL
|
|
281
|
+
3. 建议使用环境变量管理敏感信息
|
|
282
|
+
4. 本项目包含查询与导入/上传等能力,调用前请确认业务权限与风险
|
|
283
|
+
5. 所有命令都支持 `--help` 选项查看详细帮助
|
|
284
|
+
|
|
285
|
+
## 版本历史
|
|
286
|
+
|
|
287
|
+
### v0.1.0
|
|
288
|
+
|
|
289
|
+
- 初始版本
|
|
290
|
+
- 实现了13个WMS Public API接口
|
|
291
|
+
- 支持动态CLI命令行调用
|
|
292
|
+
- 完整的TypeScript类型定义
|
|
293
|
+
- 支持环境变量配置
|
|
294
|
+
|
|
295
|
+
## 许可证
|
|
296
|
+
|
|
297
|
+
ISC
|
package/README.md
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
# WMS Item Public MCP
|
|
2
|
+
|
|
3
|
+
面向开发者、可被 AI Agent / Atlas / CLI 调用的 WMS API 能力封装。
|
|
4
|
+
|
|
5
|
+
## 项目概述
|
|
6
|
+
|
|
7
|
+
本项目是一个 WMS(仓库管理系统)的 MCP(Model Control Plane)实现,参考 Apifox MCP 模式,提供认证、EDI 导入、查询、文件上传、商品主数据等公共 API 能力封装。
|
|
8
|
+
|
|
9
|
+
## 功能特性
|
|
10
|
+
|
|
11
|
+
- ✅ 支持 npx 方式执行
|
|
12
|
+
- ✅ 面向接口开发 / 二次开发
|
|
13
|
+
- ✅ 未来可供 Atlas 或其他 AI Agent 接入
|
|
14
|
+
- ✅ 完整的 TypeScript 类型定义
|
|
15
|
+
- ✅ 支持动态 CLI 命令行调用
|
|
16
|
+
- ✅ 支持环境变量配置
|
|
17
|
+
- ✅ 标准MCP (stdio/JSON-RPC) 调用方式
|
|
18
|
+
|
|
19
|
+
## 安装
|
|
20
|
+
|
|
21
|
+
### 全局安装
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g item-wms-public-api-tool
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 本地安装
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install item-wms-public-api-tool
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 使用 npx 执行
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx item-wms-public-api-tool --help
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 使用方法
|
|
40
|
+
|
|
41
|
+
### 详细帮助文档
|
|
42
|
+
|
|
43
|
+
完整的使用帮助请查看 [HELP.md](HELP.md) 文件,包含:
|
|
44
|
+
|
|
45
|
+
- 动态 CLI 工具列表与用法
|
|
46
|
+
- 详细的参数说明
|
|
47
|
+
- 示例命令
|
|
48
|
+
- 环境变量配置
|
|
49
|
+
- 常见问题解答
|
|
50
|
+
|
|
51
|
+
### 快速开始
|
|
52
|
+
|
|
53
|
+
#### 1. 用户登录
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
item-wms-public-api-tool list
|
|
57
|
+
item-wms-public-api-tool describe post_v1_public_user_login
|
|
58
|
+
item-wms-public-api-tool post_v1_public_user_login --param username=USERNAME --param password=PASSWORD
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
默认 baseUrl 为 `https://wms-staging.item.com/api/public`,也可以通过 `--baseUrl` 传入覆盖。
|
|
62
|
+
|
|
63
|
+
#### 2. 环境变量配置
|
|
64
|
+
|
|
65
|
+
可以通过环境变量配置全局参数,避免每次命令都输入(baseUrl 为空时会使用默认值):
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
export WMS_BASE_URL=https://wms-staging.item.com/api/public
|
|
69
|
+
export WMS_TOKEN=YOUR_TOKEN
|
|
70
|
+
export WMS_COMPANY_ID=LT
|
|
71
|
+
export WMS_FACILITY_ID=889
|
|
72
|
+
export WMS_CUSTOMER_ID=FLAANT0001
|
|
73
|
+
|
|
74
|
+
# 当接口包含 CompanyID/FacilityID/CustomerID 且请求未显式传递时,会自动使用配置值(未配置时使用默认值)。
|
|
75
|
+
|
|
76
|
+
# 现在可以直接执行命令,无需重复输入 baseUrl/token/CompanyID/FacilityID/CustomerID
|
|
77
|
+
item-wms-public-api-tool post_v1_public_edi_outbound_order_level_search_by_paging \
|
|
78
|
+
--json '{"Paging":{"page":1,"pageSize":10}}'
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### 3. 标准MCP (stdio) 调用
|
|
82
|
+
|
|
83
|
+
当进程运行在非TTY模式时,服务进入标准MCP JSON-RPC模式,支持 `initialize`、`tools/list`、`tools/call` 等方法:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","clientInfo":{"name":"agent","version":"1.0.0"}}}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{"jsonrpc":"2.0","id":2,"method":"tools/list"}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"post_v1_public_user_login","arguments":{"username":"USERNAME","password":"PASSWORD"},"options":{"baseUrl":"https://wms-staging.item.com/api/public"}}}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
工具名称根据 OpenAPI 自动生成:`<method>_<path>`(非字母数字替换为 `_`),例如 `post_v1_public_user_login`。完整列表请见 `mcp.json`。
|
|
98
|
+
运行时工具列表同样支持 `APIFOX_PATH_PREFIX` 过滤(未设置时默认 `/v1/public/`)。
|
|
99
|
+
同一 MCP 进程内,若登录返回 `onAuthToken`,服务会自动缓存并用于后续调用(未显式传 token 时)。
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{"jsonrpc":"2.0","id":4,"method":"prompts/list"}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{"jsonrpc":"2.0","id":5,"method":"prompts/get","params":{"name":"wms_call_flow","arguments":{"language":"zh","include_examples":"true"}}}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
提示内容会指导模型基于接口定义生成真实可用的 HTTP 接口实现,而不是调用 MCP 工具。
|
|
110
|
+
|
|
111
|
+
## API 文档
|
|
112
|
+
|
|
113
|
+
项目提供了完整的 OpenAPI 3.0 文档,位于 `openapi.yaml` 文件中。可以使用以下工具查看:
|
|
114
|
+
|
|
115
|
+
- [Swagger UI](https://swagger.io/tools/swagger-ui/)
|
|
116
|
+
- [Apifox](https://apifox.com/)
|
|
117
|
+
- [Postman](https://www.postman.com/)
|
|
118
|
+
|
|
119
|
+
## 开发指南
|
|
120
|
+
|
|
121
|
+
### 项目结构
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
├── src/
|
|
125
|
+
│ ├── client.ts # HTTP 客户端
|
|
126
|
+
│ ├── index.ts # CLI 入口
|
|
127
|
+
│ ├── cli.ts # 基于 OpenAPI 的动态 CLI
|
|
128
|
+
│ ├── openapi-tools.ts # OpenAPI -> MCP 工具映射
|
|
129
|
+
│ └── server.ts # MCP stdio 服务
|
|
130
|
+
├── dist/ # 编译输出目录
|
|
131
|
+
├── mcp.json # MCP 配置文件
|
|
132
|
+
├── openapi.yaml # OpenAPI 文档
|
|
133
|
+
├── package.json # 项目配置
|
|
134
|
+
└── tsconfig.json # TypeScript 配置
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### API 同步
|
|
138
|
+
|
|
139
|
+
使用 Apifox 本地导出链接同步 OpenAPI,并把快照保存到仓库,保证其他开发者/CI 可以直接使用:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# 默认使用本地导出链接
|
|
143
|
+
npm run sync:api
|
|
144
|
+
|
|
145
|
+
# 或显式指定导出链接
|
|
146
|
+
APIFOX_OPENAPI_URL="http://127.0.0.1:4523/export/openapi/2?version=3.0" npm run sync:api
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
同步脚本会:
|
|
150
|
+
- 保存快照到 `api/openapi.apifox.yaml`
|
|
151
|
+
- 覆盖 `openapi.yaml`
|
|
152
|
+
- 重新生成 `mcp.json`
|
|
153
|
+
建议将 `api/openapi.apifox.yaml`、`openapi.yaml`、`mcp.json` 一并提交,方便团队与CI保持一致。
|
|
154
|
+
|
|
155
|
+
可以通过环境变量过滤导出路径前缀(默认仅包含 `/v1/public/`):
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
APIFOX_PATH_PREFIX="/v1/public/" npm run sync:api
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
如果手动导出了文件,也可以用文件路径同步:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
APIFOX_OPENAPI_FILE="/path/to/openapi.yaml" npm run sync:api
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 开发流程
|
|
168
|
+
|
|
169
|
+
1. 克隆项目
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
git clone <repository-url>
|
|
173
|
+
cd item-wms-public-api-tool
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
2. 安装依赖
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
npm install
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
3. 开发模式
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
npm run dev
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
4. 构建项目
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
npm run build
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
5. 运行测试
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
npm test
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
6. 本地链接测试
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
npm link
|
|
204
|
+
item-wms-public-api-tool --help
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 添加新工具
|
|
208
|
+
|
|
209
|
+
工具由 OpenAPI 自动生成,无需手动维护实体或工具定义:
|
|
210
|
+
|
|
211
|
+
1. 在 Apifox 中更新接口定义
|
|
212
|
+
2. 运行 `npm run sync:api` 更新 `openapi.yaml` 和 `mcp.json`
|
|
213
|
+
3. MCP 工具列表自动生效(服务端会按文件变更自动刷新)
|
|
214
|
+
|
|
215
|
+
## 配置文件
|
|
216
|
+
|
|
217
|
+
### mcp.json
|
|
218
|
+
|
|
219
|
+
定义了 MCP 的基本信息和工具列表,包括:
|
|
220
|
+
|
|
221
|
+
- 工具名称
|
|
222
|
+
- 描述
|
|
223
|
+
- 输入参数 schema
|
|
224
|
+
|
|
225
|
+
### tsconfig.json
|
|
226
|
+
|
|
227
|
+
TypeScript 编译配置,设置了目标版本、输出目录等。
|
|
228
|
+
|
|
229
|
+
### package.json
|
|
230
|
+
|
|
231
|
+
项目依赖和脚本配置,包括:
|
|
232
|
+
|
|
233
|
+
- 生产依赖(如 commander)
|
|
234
|
+
- 开发依赖(如 typescript)
|
|
235
|
+
- 构建脚本
|
|
236
|
+
|
|
237
|
+
## 注意事项
|
|
238
|
+
|
|
239
|
+
1. 本项目包含查询与导入/上传等能力,调用前请确认业务权限与风险
|
|
240
|
+
2. 所有 API 调用需要有效的认证令牌
|
|
241
|
+
3. 请确保配置正确的 API 基础 URL
|
|
242
|
+
4. 建议使用环境变量管理敏感信息
|
|
243
|
+
|
|
244
|
+
## 版本历史
|
|
245
|
+
|
|
246
|
+
### v0.1.0
|
|
247
|
+
|
|
248
|
+
- 初始版本
|
|
249
|
+
- 实现了物品详情获取功能
|
|
250
|
+
- 实现了物品搜索功能
|
|
251
|
+
- 实现了入库规则验证功能
|
|
252
|
+
|
|
253
|
+
## 许可证
|
|
254
|
+
|
|
255
|
+
ISC
|
|
256
|
+
|
|
257
|
+
## 联系方式
|
|
258
|
+
|
|
259
|
+
如有问题或建议,请联系项目维护者。
|