@urovotest/urovosdk-docs-mcp 1.0.1
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 +176 -0
- package/docs/00-overview.md +37 -0
- package/docs/01-integration/android-permissions.md +22 -0
- package/docs/01-integration/quickstart-zh.md +54 -0
- package/docs/02-reference/emv/emv-api.md +3308 -0
- package/docs/02-reference/emv/emv-appendix.md +112 -0
- package/docs/02-reference/emv/emv-callback.md +1155 -0
- package/docs/02-reference/emv/emv-enum.md +324 -0
- package/docs/02-reference/error-codes.md +59 -0
- package/docs/02-reference/general/beeper.md +160 -0
- package/docs/02-reference/general/devicemanager.md +460 -0
- package/docs/02-reference/general/insertcardreader.md +307 -0
- package/docs/02-reference/general/install-manager.md +202 -0
- package/docs/02-reference/general/led-light.md +144 -0
- package/docs/02-reference/general/magcardreader.md +191 -0
- package/docs/02-reference/general/pinpad.md +3309 -0
- package/docs/02-reference/general/printer.md +1410 -0
- package/docs/02-reference/general/psam2.md +55 -0
- package/docs/02-reference/general/rfcardreader.md +1090 -0
- package/docs/02-reference/general/scanner-custom.md +196 -0
- package/docs/02-reference/general/scanner.md +214 -0
- package/docs/02-reference/general/sdk-log-output-management.md +124 -0
- package/docs/02-reference/general/serial-port-deprecated-suggest-using-module-14-serialtool.md +406 -0
- package/docs/02-reference/general/serial-port.md +326 -0
- package/docs/02-reference/general/sle4428-4436-4442.md +1890 -0
- package/docs/02-reference/general/system-manager.md +212 -0
- package/docs/02-reference/module-index.md +30 -0
- package/docs/02-reference/source-emv_sdk.md +3927 -0
- package/docs/02-reference/source-general_sdk.md +8978 -0
- package/docs/02-reference/undocumented/kiosk-lock-task.md +92 -0
- package/docs/03-demo/activity-map.md +27 -0
- package/docs/api-registry.json +4733 -0
- package/docs/search-index.json +2688 -0
- package/docs/source/emv_sdk.md +3927 -0
- package/docs/source/general_sdk.md +8978 -0
- package/docs/source/kiosk_lock_task.md +86 -0
- package/package.json +36 -0
- package/src/launch.js +22 -0
- package/src/lib/check-update.js +92 -0
- package/src/lib/create-mcp-server.js +90 -0
- package/src/lib/docs-tools.js +206 -0
- package/src/server.js +10 -0
package/README.md
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# @urovotest/urovosdk-docs-mcp
|
|
2
|
+
|
|
3
|
+
UrovoSDK 文档 MCP(stdio),知识库打进 npm 包,供 Cursor 通过 `npx` 离线使用。
|
|
4
|
+
|
|
5
|
+
- **npm 包名**:`@urovotest/urovosdk-docs-mcp`
|
|
6
|
+
- **覆盖范围**:Pinpad、Printer、Scanner、EMV、读卡、安装等 POS 终端 SDK 文档
|
|
7
|
+
- **入口**:`src/launch.js`(`bin` 同名)
|
|
8
|
+
|
|
9
|
+
## Cursor 配置
|
|
10
|
+
|
|
11
|
+
### 生产(推荐)
|
|
12
|
+
|
|
13
|
+
从 npm registry 拉取,每次 MCP 启动时自动检查是否有更新:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"mcpServers": {
|
|
18
|
+
"urovosdk": {
|
|
19
|
+
"command": "npx",
|
|
20
|
+
"args": ["-y", "@urovotest/urovosdk-docs-mcp@latest"]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
完整示例见 [`cursor-mcp.example.json`](cursor-mcp.example.json)。
|
|
27
|
+
|
|
28
|
+
### 本地开发(`file:`)
|
|
29
|
+
|
|
30
|
+
直接指向仓库内 npx 包,**必须**设置 `DOCS_MCP_SKIP_UPDATE=1`,否则会尝试从 registry 拉取并覆盖本地:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"mcpServers": {
|
|
35
|
+
"urovosdk": {
|
|
36
|
+
"command": "npx",
|
|
37
|
+
"args": ["-y", "file:D:/path/to/UrovoSDK/ai-kit/npx/urovosdk-docs-mcp"],
|
|
38
|
+
"env": {
|
|
39
|
+
"DOCS_MCP_SKIP_UPDATE": "1"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
完整示例见 [`cursor-mcp.local.example.json`](cursor-mcp.local.example.json)。
|
|
47
|
+
|
|
48
|
+
## MCP Tools
|
|
49
|
+
|
|
50
|
+
| Tool | 说明 |
|
|
51
|
+
|------|------|
|
|
52
|
+
| `search_urovosdk_docs` | 全文搜索 |
|
|
53
|
+
| `lookup_urovosdk_api` | 按模块/方法/类路径查 API |
|
|
54
|
+
| `lookup_urovosdk_emv` | EMV 域查询 |
|
|
55
|
+
| `lookup_urovosdk_error_code` | Pinpad/Printer 错误码 |
|
|
56
|
+
| `get_urovosdk_doc` / `list_urovosdk_docs` | 读文档 |
|
|
57
|
+
|
|
58
|
+
## 版本号在哪里
|
|
59
|
+
|
|
60
|
+
| 字段 | 文件 | 说明 |
|
|
61
|
+
|------|------|------|
|
|
62
|
+
| **npm 包版本(发版必改)** | 本目录 [`package.json`](package.json) 的 `"version"` | 发布到 registry 的版本号,也是 `check-update` 比较的「当前版本」 |
|
|
63
|
+
| MCP 协议版本 | `src/lib/create-mcp-server.js` 内 `version` | MCP Server 元信息,与 npm 版本独立 |
|
|
64
|
+
| 知识库索引版本 | `docs/search-index.json` 的 `"version"` | 知识库生成时写入,随 `bundle` 同步 |
|
|
65
|
+
|
|
66
|
+
**发版前必须递增** `package.json` 的 `version`(semver:`major.minor.patch`)。若只改文档/代码但未升版本,`npm publish` 会被 registry 拒绝(同版本不可重复发布)。
|
|
67
|
+
|
|
68
|
+
## 启动与自动更新(check-update)
|
|
69
|
+
|
|
70
|
+
启动链路:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Cursor 执行 npx -y @urovotest/urovosdk-docs-mcp@latest
|
|
74
|
+
→ launch.js
|
|
75
|
+
→ ensureLatestFromRegistry()
|
|
76
|
+
→ server.js(stdio MCP)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### `@latest` 与 check-update 的关系
|
|
80
|
+
|
|
81
|
+
两层机制配合,目的都是让用户尽量跑到 registry 上的最新包:
|
|
82
|
+
|
|
83
|
+
1. **npx `@latest`**:Cursor 每次启动 MCP 时,npx 会解析并下载 registry 上 `@latest` 指向的版本(若本地缓存不是最新)。
|
|
84
|
+
2. **check-update(启动时二次校验)**:`launch.js` 启动后读取**当前已安装包**的 `package.json.version`,请求 registry 的 `GET /{包名}/latest`,若 registry 版本 **semver 更大**,则 `npx -y {包名}@{新版本}` 重新 exec 当前进程并退出旧进程。
|
|
85
|
+
|
|
86
|
+
因此:即使用户 Cursor 配置里写死 `@1.0.0`,只要该旧包内的 `check-update` 逻辑存在且 registry 有更高版本,仍可能在启动时被拉到新版本(除非设置了 `DOCS_MCP_SKIP_UPDATE=1`)。
|
|
87
|
+
|
|
88
|
+
### 判定逻辑(`src/lib/check-update.js`)
|
|
89
|
+
|
|
90
|
+
1. 若 `DOCS_MCP_SKIP_UPDATE=1` → 跳过,直接启动 MCP。
|
|
91
|
+
2. 读取本包 `package.json` → `current`。
|
|
92
|
+
3. `fetch` `{DOCS_MCP_REGISTRY 或 https://registry.npmjs.org}/@urovotest%2Furovosdk-docs-mcp/latest`(scoped 包路径编码,超时 8s)。
|
|
93
|
+
4. 网络失败 / 404 → 打日志,**不阻断**,用当前 bundled 版本继续。
|
|
94
|
+
5. `isNewer(latest, current)`:按 `.` 分段比较整数(如 `1.0.1` > `1.0.0`)。
|
|
95
|
+
6. 若 `latest` 更新 → stderr 输出 `>> @urovotest/urovosdk-docs-mcp: vX -> vY`,spawn `npx -y @urovotest/urovosdk-docs-mcp@Y`(子进程带 `DOCS_MCP_SKIP_UPDATE=1` 防止递归),当前进程退出。
|
|
96
|
+
|
|
97
|
+
### 环境变量
|
|
98
|
+
|
|
99
|
+
| 变量 | 默认值 | 说明 |
|
|
100
|
+
|------|--------|------|
|
|
101
|
+
| `DOCS_MCP_SKIP_UPDATE` | 未设置 | 设为 `1` 跳过 registry 检查(本地 `file:` 开发必设) |
|
|
102
|
+
| `DOCS_MCP_REGISTRY` | `https://registry.npmjs.org` | 自定义 npm registry(内网 mirror 等) |
|
|
103
|
+
|
|
104
|
+
日志前缀均为 `>>`,便于 Cursor MCP 输出过滤。
|
|
105
|
+
|
|
106
|
+
## 发版流程
|
|
107
|
+
|
|
108
|
+
在 **ai-kit/scripts** 目录执行一站式发版向导(无需再 cd 到 npx 子目录):
|
|
109
|
+
|
|
110
|
+
```bat
|
|
111
|
+
cd UrovoSDK\ai-kit\scripts
|
|
112
|
+
run.bat deploy :: 可选:若 docs 有变更,先生成知识库 + 索引
|
|
113
|
+
bundle-npx.bat :: 输入新版本(回车=patch+1)→ bundle → verify → npm publish
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
仅同步知识库、不升版本、不 publish:
|
|
117
|
+
|
|
118
|
+
```bat
|
|
119
|
+
bundle-npx.bat --bundle-only
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
手动分步(跳过向导时):
|
|
123
|
+
|
|
124
|
+
```bat
|
|
125
|
+
cd ..\npx\urovosdk-docs-mcp
|
|
126
|
+
:: 编辑 package.json version
|
|
127
|
+
npm run bundle
|
|
128
|
+
npm run verify
|
|
129
|
+
npm publish
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
说明:
|
|
133
|
+
|
|
134
|
+
- `npm publish` / `npm pack` 前会自动执行 `prepack` → `scripts/bundle.js`,再次同步知识库与源码。
|
|
135
|
+
- `bundle.js` 来源:`../../docs/`、`../../mcp-server/src/lib/`(`create-mcp-server.js`、`docs-tools.js`)、`../_shared/check-update.js`。
|
|
136
|
+
- 若 `docs/search-index.json` 不存在,bundle 会失败并提示先 `run.bat deploy`。
|
|
137
|
+
|
|
138
|
+
### 发版检查清单
|
|
139
|
+
|
|
140
|
+
- [ ] `run.bat deploy` 或等价步骤已更新 `ai-kit/docs/`
|
|
141
|
+
- [ ] `bundle-npx.bat` 或 `npm run bundle` 成功
|
|
142
|
+
- [ ] `package.json` 的 `version` 已递增
|
|
143
|
+
- [ ] `npm run verify` 通过(可选)
|
|
144
|
+
- [ ] `npm publish` 成功
|
|
145
|
+
- [ ] 同事 Cursor 重启 MCP 后 stderr 出现 `vX (latest)` 或 `v旧 -> v新`
|
|
146
|
+
|
|
147
|
+
## 常见问题
|
|
148
|
+
|
|
149
|
+
**Q:改了知识库但用户 npx 没更新?**
|
|
150
|
+
A:确认已 `npm publish` 且 **version 已递增**;让用户重启 Cursor MCP。配置建议使用 `@latest`。
|
|
151
|
+
|
|
152
|
+
**Q:本地 `file:` 调试时被拉成 registry 版本?**
|
|
153
|
+
A:在 mcp.json 的 `env` 中加 `"DOCS_MCP_SKIP_UPDATE": "1"`。
|
|
154
|
+
|
|
155
|
+
**Q:registry 404 / 网络不通?**
|
|
156
|
+
A:check-update 会跳过,使用当前包内 bundled 文档,MCP 仍可工作。
|
|
157
|
+
|
|
158
|
+
**Q:与 Tomcat / HTTP MCP(:3101)的关系?**
|
|
159
|
+
A:npx 包**不依赖** Tomcat;文档全部在包内 `docs/`。HTTP MCP 适合局域网共享(`http://<LAN_IP>:3101/mcp`),npx 适合每人本机离线。二者知识库来源相同(ai-kit `docs/`),需分别 deploy / bundle / publish。
|
|
160
|
+
|
|
161
|
+
**Q:与 ScanSDK-U100 npx 包的区别?**
|
|
162
|
+
A:独立 npm 包、独立知识库与 Tool 前缀(`urovosdk_*` vs `scansdk_u100_*`)。check-update 与环境变量机制相同,详见 [`ScanSDK/ai-kit/npx/scansdk-u100-docs-mcp/README.md`](../../../../ScanSDK/ai-kit/npx/scansdk-u100-docs-mcp/README.md)。
|
|
163
|
+
|
|
164
|
+
## 维护者路径速查
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
UrovoSDK/ai-kit/
|
|
168
|
+
docs/ # 知识库(deploy 生成)
|
|
169
|
+
mcp-server/src/lib/ # MCP 业务逻辑(bundle 复制源)
|
|
170
|
+
npx/_shared/check-update.js # 自动更新(bundle 复制源)
|
|
171
|
+
npx/urovosdk-docs-mcp/ # 本 npm 包(registry 名 @urovotest/urovosdk-docs-mcp)
|
|
172
|
+
package.json # version 发版入口
|
|
173
|
+
src/launch.js # bin 入口
|
|
174
|
+
src/lib/check-update.js # bundle 产物
|
|
175
|
+
docs/ # bundle 产物
|
|
176
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: UrovoSDK 总览
|
|
3
|
+
module: urovosdk
|
|
4
|
+
version: 1.0.24.10
|
|
5
|
+
tags: ["overview"]
|
|
6
|
+
---
|
|
7
|
+
# UrovoSDK 知识库总览
|
|
8
|
+
|
|
9
|
+
POS 终端 SDK 知识库:**不依赖 UrovoSDK/Code 工程**,权威源为 `docs/source/*.md` + 结构化模块文档。
|
|
10
|
+
|
|
11
|
+
## 统计
|
|
12
|
+
|
|
13
|
+
- General API:**157** 条(17 模块)
|
|
14
|
+
- EMV API:**79** 条(4 模块)
|
|
15
|
+
- api-registry 条目:**238**
|
|
16
|
+
|
|
17
|
+
## 文档结构
|
|
18
|
+
|
|
19
|
+
| 路径 | 说明 |
|
|
20
|
+
|------|------|
|
|
21
|
+
| [docs/source/](../source/) | 原始规范 Markdown(唯一维护入口) |
|
|
22
|
+
| [module-index.md](02-reference/module-index.md) | 模块索引 |
|
|
23
|
+
| [02-reference/general/](02-reference/general/) | 蜂鸣器/密码键盘/打印/扫码/读卡等 |
|
|
24
|
+
| [02-reference/emv/](02-reference/emv/) | EMV 内核 API/回调/枚举 |
|
|
25
|
+
| [02-reference/undocumented/](02-reference/undocumented/) | Demo 发现、官方未收录 API |
|
|
26
|
+
| [error-codes.md](02-reference/error-codes.md) | Pinpad / Printer 错误码 |
|
|
27
|
+
| [api-registry.json](api-registry.json) | MCP 精确查询注册表 |
|
|
28
|
+
| [01-integration/quickstart-zh.md](01-integration/quickstart-zh.md) | AAR 接入 |
|
|
29
|
+
| [01-integration/android-permissions.md](01-integration/android-permissions.md) | 权限参考 |
|
|
30
|
+
|
|
31
|
+
## MCP Tools
|
|
32
|
+
|
|
33
|
+
- `search_urovosdk_docs` — 全文搜索
|
|
34
|
+
- `lookup_urovosdk_api` — 按模块/方法/类路径查 API
|
|
35
|
+
- `lookup_urovosdk_emv` — EMV 域精确查询
|
|
36
|
+
- `lookup_urovosdk_error_code` — Pinpad/Printer 错误码
|
|
37
|
+
- `get_urovosdk_doc` / `list_urovosdk_docs`
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Android 权限
|
|
3
|
+
module: integration
|
|
4
|
+
tags: ["permissions"]
|
|
5
|
+
---
|
|
6
|
+
# Android 权限参考
|
|
7
|
+
|
|
8
|
+
UrovoSDK Demo 曾使用的权限清单(接入时按实际模块裁剪):
|
|
9
|
+
|
|
10
|
+
| 权限 | 典型用途 |
|
|
11
|
+
|------|----------|
|
|
12
|
+
| `CAMERA` | 扫码 |
|
|
13
|
+
| `NFC` / `CLOUDPOS_CONTACTLESS_CARD` | 非接读卡 |
|
|
14
|
+
| `INTERNET` / `ACCESS_NETWORK_STATE` | 网络 |
|
|
15
|
+
| `READ/WRITE_EXTERNAL_STORAGE` / `MANAGE_EXTERNAL_STORAGE` | 日志、固件 |
|
|
16
|
+
| `READ_PHONE_STATE` 等 | 设备信息 |
|
|
17
|
+
| `BLUETOOTH_*` | 蓝牙外设 |
|
|
18
|
+
| `WRITE_SETTINGS` / `WRITE_SECURE_SETTINGS` | 系统设置(需系统签名或特权) |
|
|
19
|
+
| `SYSTEM_ALERT_WINDOW` | 悬浮窗 |
|
|
20
|
+
| `VIBRATE` / `FLASHLIGHT` | 提示 |
|
|
21
|
+
|
|
22
|
+
完整列表以目标设备系统要求为准。
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 快速接入
|
|
3
|
+
module: integration
|
|
4
|
+
tags: ["quickstart"]
|
|
5
|
+
---
|
|
6
|
+
# UrovoSDK 快速接入
|
|
7
|
+
|
|
8
|
+
## 产物
|
|
9
|
+
|
|
10
|
+
- **AAR:** `urovoSdkLibs_New_v1.0.24.10_{debug|release}.aar`
|
|
11
|
+
- **版本:** 1.0.24.10(versionCode 24)
|
|
12
|
+
- **NDK ABI:** armeabi-v7a、arm64-v8a
|
|
13
|
+
- **minSdk:** 21 · **compileSdk:** 33
|
|
14
|
+
|
|
15
|
+
## 依赖 JAR(放入 app libs/)
|
|
16
|
+
|
|
17
|
+
| 文件 | 用途 |
|
|
18
|
+
|------|------|
|
|
19
|
+
| `pminstall.jar` | 静默安装 |
|
|
20
|
+
| `DecoderLibrary-release.jar` | 扫码解码 |
|
|
21
|
+
| `SerialPortSdk-v2.0.8.jar` | 串口 |
|
|
22
|
+
| `urovosdkEmvLibs-v1.0.14.jar` | EMV 内核 |
|
|
23
|
+
| `platform_sdk_20260519_01.jar` | 平台 DeviceManager |
|
|
24
|
+
|
|
25
|
+
## Gradle 示例
|
|
26
|
+
|
|
27
|
+
```gradle
|
|
28
|
+
dependencies {
|
|
29
|
+
implementation files('libs/urovoSdkLibs_New_v1.0.24.10_release.aar')
|
|
30
|
+
implementation files('libs/pminstall.jar')
|
|
31
|
+
implementation files('libs/DecoderLibrary-release.jar')
|
|
32
|
+
implementation files('libs/SerialPortSdk-v2.0.8.jar')
|
|
33
|
+
implementation files('libs/urovosdkEmvLibs-v1.0.14.jar')
|
|
34
|
+
implementation files('libs/platform_sdk_20260519_01.jar')
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 最小示例
|
|
39
|
+
|
|
40
|
+
```java
|
|
41
|
+
BeeperImpl.getInstance().startBeep(1, 100);
|
|
42
|
+
InnerScannerImpl.getInstance().startScan(context, listener);
|
|
43
|
+
EmvNfcKernelApi.getInstance().startKernel(params);
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 权限
|
|
47
|
+
|
|
48
|
+
详见 [android-permissions.md](./android-permissions.md)。
|
|
49
|
+
|
|
50
|
+
## 知识库
|
|
51
|
+
|
|
52
|
+
- API:`02-reference/general/`、`02-reference/emv/`
|
|
53
|
+
- 源规范:`docs/source/`(可独立维护,不依赖工程源码)
|
|
54
|
+
- MCP:`search_urovosdk_docs`、`lookup_urovosdk_api`
|