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.
Files changed (110) hide show
  1. package/AI_INTEGRATION_GUIDE.md +492 -0
  2. package/HELP.md +297 -0
  3. package/README.md +259 -0
  4. package/api/README.md +9 -0
  5. package/api/openapi.apifox.yaml +20771 -0
  6. package/dist/cli.d.ts +10 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +326 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/client.d.ts +8 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +76 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/config.d.ts +32 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +109 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +31 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/openapi-tools.d.ts +25 -0
  23. package/dist/openapi-tools.d.ts.map +1 -0
  24. package/dist/openapi-tools.js +287 -0
  25. package/dist/openapi-tools.js.map +1 -0
  26. package/dist/server.d.ts +5 -0
  27. package/dist/server.d.ts.map +1 -0
  28. package/dist/server.js +442 -0
  29. package/dist/server.js.map +1 -0
  30. package/dist/tools/batchImportItemMaster.d.ts +59 -0
  31. package/dist/tools/batchImportItemMaster.d.ts.map +1 -0
  32. package/dist/tools/batchImportItemMaster.js +27 -0
  33. package/dist/tools/batchImportItemMaster.js.map +1 -0
  34. package/dist/tools/batchUploadOrderFiles.d.ts +29 -0
  35. package/dist/tools/batchUploadOrderFiles.d.ts.map +1 -0
  36. package/dist/tools/batchUploadOrderFiles.js +96 -0
  37. package/dist/tools/batchUploadOrderFiles.js.map +1 -0
  38. package/dist/tools/importInbound.d.ts +62 -0
  39. package/dist/tools/importInbound.d.ts.map +1 -0
  40. package/dist/tools/importInbound.js +22 -0
  41. package/dist/tools/importInbound.js.map +1 -0
  42. package/dist/tools/importOutbound.d.ts +76 -0
  43. package/dist/tools/importOutbound.d.ts.map +1 -0
  44. package/dist/tools/importOutbound.js +25 -0
  45. package/dist/tools/importOutbound.js.map +1 -0
  46. package/dist/tools/itemGet.d.ts +15 -0
  47. package/dist/tools/itemGet.d.ts.map +1 -0
  48. package/dist/tools/itemGet.js +12 -0
  49. package/dist/tools/itemGet.js.map +1 -0
  50. package/dist/tools/itemSearch.d.ts +8 -0
  51. package/dist/tools/itemSearch.d.ts.map +1 -0
  52. package/dist/tools/itemSearch.js +17 -0
  53. package/dist/tools/itemSearch.js.map +1 -0
  54. package/dist/tools/login.d.ts +26 -0
  55. package/dist/tools/login.d.ts.map +1 -0
  56. package/dist/tools/login.js +15 -0
  57. package/dist/tools/login.js.map +1 -0
  58. package/dist/tools/queryItemMaster.d.ts +63 -0
  59. package/dist/tools/queryItemMaster.d.ts.map +1 -0
  60. package/dist/tools/queryItemMaster.js +9 -0
  61. package/dist/tools/queryItemMaster.js.map +1 -0
  62. package/dist/tools/queryOrder.d.ts +74 -0
  63. package/dist/tools/queryOrder.d.ts.map +1 -0
  64. package/dist/tools/queryOrder.js +19 -0
  65. package/dist/tools/queryOrder.js.map +1 -0
  66. package/dist/tools/queryOrderDC.d.ts +25 -0
  67. package/dist/tools/queryOrderDC.d.ts.map +1 -0
  68. package/dist/tools/queryOrderDC.js +19 -0
  69. package/dist/tools/queryOrderDC.js.map +1 -0
  70. package/dist/tools/queryOrderDetail.d.ts +70 -0
  71. package/dist/tools/queryOrderDetail.d.ts.map +1 -0
  72. package/dist/tools/queryOrderDetail.js +19 -0
  73. package/dist/tools/queryOrderDetail.js.map +1 -0
  74. package/dist/tools/queryReceipt.d.ts +70 -0
  75. package/dist/tools/queryReceipt.d.ts.map +1 -0
  76. package/dist/tools/queryReceipt.js +19 -0
  77. package/dist/tools/queryReceipt.js.map +1 -0
  78. package/dist/tools/queryReceiptDetail.d.ts +70 -0
  79. package/dist/tools/queryReceiptDetail.d.ts.map +1 -0
  80. package/dist/tools/queryReceiptDetail.js +19 -0
  81. package/dist/tools/queryReceiptDetail.js.map +1 -0
  82. package/dist/tools/queryReceiptRC.d.ts +25 -0
  83. package/dist/tools/queryReceiptRC.d.ts.map +1 -0
  84. package/dist/tools/queryReceiptRC.js +19 -0
  85. package/dist/tools/queryReceiptRC.js.map +1 -0
  86. package/dist/tools/uploadOrderFile.d.ts +25 -0
  87. package/dist/tools/uploadOrderFile.d.ts.map +1 -0
  88. package/dist/tools/uploadOrderFile.js +94 -0
  89. package/dist/tools/uploadOrderFile.js.map +1 -0
  90. package/dist/tools/validateInbound.d.ts +13 -0
  91. package/dist/tools/validateInbound.d.ts.map +1 -0
  92. package/dist/tools/validateInbound.js +18 -0
  93. package/dist/tools/validateInbound.js.map +1 -0
  94. package/llms.txt +23 -0
  95. package/mcp.json +6562 -0
  96. package/mcp.schema.json +100 -0
  97. package/openapi.yaml +20685 -0
  98. package/package.json +34 -0
  99. package/scripts/sync-openapi.js +289 -0
  100. package/src/cli.ts +353 -0
  101. package/src/client.ts +90 -0
  102. package/src/config.ts +126 -0
  103. package/src/index.ts +31 -0
  104. package/src/openapi-tools.ts +346 -0
  105. package/src/server.ts +472 -0
  106. package/test-ai-integration.js +128 -0
  107. package/test-fix.js +68 -0
  108. package/test-mcp.js +92 -0
  109. package/test-order.json +25 -0
  110. 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
+ 如有问题或建议,请联系项目维护者。
package/api/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # API Snapshot
2
+
3
+ This directory stores the OpenAPI snapshot exported from Apifox.
4
+
5
+ Generate or refresh the snapshot with:
6
+
7
+ ```bash
8
+ npm run sync:api
9
+ ```