@creatoria/miniapp-mcp 0.1.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.
Files changed (160) hide show
  1. package/README.md +469 -0
  2. package/dist/cli.d.ts +6 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +144 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/config/defaults.d.ts +73 -0
  7. package/dist/config/defaults.d.ts.map +1 -0
  8. package/dist/config/defaults.js +118 -0
  9. package/dist/config/defaults.js.map +1 -0
  10. package/dist/config/loader.d.ts +50 -0
  11. package/dist/config/loader.d.ts.map +1 -0
  12. package/dist/config/loader.js +189 -0
  13. package/dist/config/loader.js.map +1 -0
  14. package/dist/core/element-ref.d.ts +44 -0
  15. package/dist/core/element-ref.d.ts.map +1 -0
  16. package/dist/core/element-ref.js +213 -0
  17. package/dist/core/element-ref.js.map +1 -0
  18. package/dist/core/logger.d.ts +55 -0
  19. package/dist/core/logger.d.ts.map +1 -0
  20. package/dist/core/logger.js +378 -0
  21. package/dist/core/logger.js.map +1 -0
  22. package/dist/core/output.d.ts +21 -0
  23. package/dist/core/output.d.ts.map +1 -0
  24. package/dist/core/output.js +56 -0
  25. package/dist/core/output.js.map +1 -0
  26. package/dist/core/report-generator.d.ts +24 -0
  27. package/dist/core/report-generator.d.ts.map +1 -0
  28. package/dist/core/report-generator.js +212 -0
  29. package/dist/core/report-generator.js.map +1 -0
  30. package/dist/core/session.d.ts +83 -0
  31. package/dist/core/session.d.ts.map +1 -0
  32. package/dist/core/session.js +306 -0
  33. package/dist/core/session.js.map +1 -0
  34. package/dist/core/timeout.d.ts +49 -0
  35. package/dist/core/timeout.d.ts.map +1 -0
  36. package/dist/core/timeout.js +67 -0
  37. package/dist/core/timeout.js.map +1 -0
  38. package/dist/core/tool-logger.d.ts +83 -0
  39. package/dist/core/tool-logger.d.ts.map +1 -0
  40. package/dist/core/tool-logger.js +453 -0
  41. package/dist/core/tool-logger.js.map +1 -0
  42. package/dist/core/validation.d.ts +39 -0
  43. package/dist/core/validation.d.ts.map +1 -0
  44. package/dist/core/validation.js +93 -0
  45. package/dist/core/validation.js.map +1 -0
  46. package/dist/index.d.ts +7 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +6 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/server.d.ts +7 -0
  51. package/dist/server.d.ts.map +1 -0
  52. package/dist/server.js +85 -0
  53. package/dist/server.js.map +1 -0
  54. package/dist/tools/assert.d.ts +108 -0
  55. package/dist/tools/assert.d.ts.map +1 -0
  56. package/dist/tools/assert.js +291 -0
  57. package/dist/tools/assert.js.map +1 -0
  58. package/dist/tools/automator.d.ts +45 -0
  59. package/dist/tools/automator.d.ts.map +1 -0
  60. package/dist/tools/automator.js +186 -0
  61. package/dist/tools/automator.js.map +1 -0
  62. package/dist/tools/element.d.ts +253 -0
  63. package/dist/tools/element.d.ts.map +1 -0
  64. package/dist/tools/element.js +615 -0
  65. package/dist/tools/element.js.map +1 -0
  66. package/dist/tools/index.d.ts +97 -0
  67. package/dist/tools/index.d.ts.map +1 -0
  68. package/dist/tools/index.js +1565 -0
  69. package/dist/tools/index.js.map +1 -0
  70. package/dist/tools/miniprogram.d.ts +79 -0
  71. package/dist/tools/miniprogram.d.ts.map +1 -0
  72. package/dist/tools/miniprogram.js +245 -0
  73. package/dist/tools/miniprogram.js.map +1 -0
  74. package/dist/tools/network.d.ts +65 -0
  75. package/dist/tools/network.d.ts.map +1 -0
  76. package/dist/tools/network.js +205 -0
  77. package/dist/tools/network.js.map +1 -0
  78. package/dist/tools/page.d.ts +108 -0
  79. package/dist/tools/page.d.ts.map +1 -0
  80. package/dist/tools/page.js +307 -0
  81. package/dist/tools/page.js.map +1 -0
  82. package/dist/tools/record.d.ts +86 -0
  83. package/dist/tools/record.d.ts.map +1 -0
  84. package/dist/tools/record.js +316 -0
  85. package/dist/tools/record.js.map +1 -0
  86. package/dist/tools/snapshot.d.ts +82 -0
  87. package/dist/tools/snapshot.d.ts.map +1 -0
  88. package/dist/tools/snapshot.js +258 -0
  89. package/dist/tools/snapshot.js.map +1 -0
  90. package/dist/types.d.ts +240 -0
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +5 -0
  93. package/dist/types.js.map +1 -0
  94. package/docs/SIMPLE_USAGE.md +210 -0
  95. package/docs/api/README.md +244 -0
  96. package/docs/api/assert.md +1015 -0
  97. package/docs/api/automator.md +345 -0
  98. package/docs/api/element.md +1454 -0
  99. package/docs/api/miniprogram.md +558 -0
  100. package/docs/api/network.md +883 -0
  101. package/docs/api/page.md +909 -0
  102. package/docs/api/record.md +963 -0
  103. package/docs/api/snapshot.md +792 -0
  104. package/docs/architecture.E-Docs.md +1359 -0
  105. package/docs/architecture.F1.md +720 -0
  106. package/docs/architecture.F2.md +871 -0
  107. package/docs/architecture.F3.md +905 -0
  108. package/docs/architecture.md +90 -0
  109. package/docs/charter.A1.align.yaml +170 -0
  110. package/docs/charter.A2.align.yaml +199 -0
  111. package/docs/charter.A3.align.yaml +242 -0
  112. package/docs/charter.A4.align.yaml +227 -0
  113. package/docs/charter.B1.align.yaml +179 -0
  114. package/docs/charter.B2.align.yaml +200 -0
  115. package/docs/charter.B3.align.yaml +200 -0
  116. package/docs/charter.B4.align.yaml +188 -0
  117. package/docs/charter.C1.align.yaml +190 -0
  118. package/docs/charter.C2.align.yaml +202 -0
  119. package/docs/charter.C3.align.yaml +211 -0
  120. package/docs/charter.C4.align.yaml +263 -0
  121. package/docs/charter.C5.align.yaml +220 -0
  122. package/docs/charter.D1.align.yaml +190 -0
  123. package/docs/charter.D2.align.yaml +234 -0
  124. package/docs/charter.D3.align.yaml +206 -0
  125. package/docs/charter.E-Docs.align.yaml +294 -0
  126. package/docs/charter.F1.align.yaml +193 -0
  127. package/docs/charter.F2.align.yaml +248 -0
  128. package/docs/charter.F3.align.yaml +287 -0
  129. package/docs/charter.G.align.yaml +174 -0
  130. package/docs/charter.align.yaml +111 -0
  131. package/docs/examples/session-report-usage.md +449 -0
  132. package/docs/maintenance.md +682 -0
  133. package/docs/playwright-mcp/350/260/203/347/240/224.md +53 -0
  134. package/docs/setup-guide.md +775 -0
  135. package/docs/tasks.A1.atomize.md +296 -0
  136. package/docs/tasks.A2.atomize.md +408 -0
  137. package/docs/tasks.A3.atomize.md +564 -0
  138. package/docs/tasks.A4.atomize.md +496 -0
  139. package/docs/tasks.B1.atomize.md +352 -0
  140. package/docs/tasks.B2.atomize.md +561 -0
  141. package/docs/tasks.B3.atomize.md +508 -0
  142. package/docs/tasks.B4.atomize.md +504 -0
  143. package/docs/tasks.C1.atomize.md +540 -0
  144. package/docs/tasks.C2.atomize.md +665 -0
  145. package/docs/tasks.C3.atomize.md +745 -0
  146. package/docs/tasks.C4.atomize.md +908 -0
  147. package/docs/tasks.C5.atomize.md +755 -0
  148. package/docs/tasks.D1.atomize.md +547 -0
  149. package/docs/tasks.D2.atomize.md +619 -0
  150. package/docs/tasks.D3.atomize.md +790 -0
  151. package/docs/tasks.E-Docs.atomize.md +1204 -0
  152. package/docs/tasks.atomize.md +189 -0
  153. package/docs/troubleshooting.md +855 -0
  154. package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +155 -0
  155. package/docs//345/274/200/345/217/221/344/273/273/345/212/241/350/256/241/345/210/222.md +110 -0
  156. package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226API/345/256/214/346/225/264/346/226/207/346/241/243.md +894 -0
  157. package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226/345/256/214/346/225/264/346/223/215/344/275/234/346/211/213/345/206/214.md +1885 -0
  158. package/docs//346/216/245/345/217/243/346/226/271/346/241/210.md +565 -0
  159. package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +380 -0
  160. package/package.json +87 -0
@@ -0,0 +1,210 @@
1
+ # 极简使用方式
2
+
3
+ ## 🎯 像 Playwright MCP 一样简单
4
+
5
+ ### 1. Claude Desktop 配置(推荐)
6
+
7
+ **只需要这一行配置:**
8
+
9
+ ```json
10
+ {
11
+ "mcpServers": {
12
+ "miniprogram": {
13
+ "command": "npx",
14
+ "args": ["-y", "@creatoria/miniapp-mcp"]
15
+ }
16
+ }
17
+ }
18
+ ```
19
+
20
+ **就这样!** 🎉
21
+
22
+ ### 2. 它会自动做什么?
23
+
24
+ ✅ **自动检测项目路径**
25
+ - 当前目录有 `project.config.json` 或 `app.json`?使用当前目录
26
+ - 没有?检查 `dist/`, `build/`, `miniprogram/`, `src/` 子目录
27
+ - 找到了?自动使用
28
+
29
+ ✅ **自动使用默认配置**
30
+ - CLI 路径:`/Applications/wechatwebdevtools.app/Contents/MacOS/cli` (macOS)
31
+ - 端口:`9420`
32
+ - 功能:全部启用
33
+
34
+ ✅ **环境变量覆盖**(可选)
35
+ ```bash
36
+ export MCP_PROJECT_PATH=/path/to/your/miniprogram
37
+ export MCP_PORT=9421
38
+ ```
39
+
40
+ ✅ **配置文件覆盖**(可选)
41
+ 项目根目录放 `.mcp.json`:
42
+ ```json
43
+ {
44
+ "projectPath": "./dist",
45
+ "port": 9420
46
+ }
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 📋 三种使用场景
52
+
53
+ ### 场景 1: 零配置(项目根目录有小程序)
54
+
55
+ ```
56
+ my-project/
57
+ ├── project.config.json ← 自动检测到这个
58
+ ├── app.json
59
+ └── pages/
60
+ ```
61
+
62
+ **Claude Desktop 配置:**
63
+ ```json
64
+ {
65
+ "mcpServers": {
66
+ "miniprogram": {
67
+ "command": "npx",
68
+ "args": ["-y", "@creatoria/miniapp-mcp"]
69
+ }
70
+ }
71
+ }
72
+ ```
73
+
74
+ 在 `my-project/` 目录下打开 Claude Desktop,它会自动找到小程序。
75
+
76
+ ---
77
+
78
+ ### 场景 2: 小程序在子目录
79
+
80
+ ```
81
+ my-project/
82
+ ├── dist/
83
+ │ ├── project.config.json ← 自动检测到这个
84
+ │ └── app.json
85
+ └── src/
86
+ ```
87
+
88
+ **Claude Desktop 配置:**
89
+ ```json
90
+ {
91
+ "mcpServers": {
92
+ "miniprogram": {
93
+ "command": "npx",
94
+ "args": ["-y", "@creatoria/miniapp-mcp"]
95
+ }
96
+ }
97
+ }
98
+ ```
99
+
100
+ 在 `my-project/` 目录下打开 Claude Desktop,它会自动找到 `dist/` 目录。
101
+
102
+ ---
103
+
104
+ ### 场景 3: 手动指定路径
105
+
106
+ ```json
107
+ {
108
+ "mcpServers": {
109
+ "miniprogram": {
110
+ "command": "npx",
111
+ "args": [
112
+ "-y",
113
+ "@creatoria/miniapp-mcp",
114
+ "--project-path",
115
+ "./custom-path"
116
+ ]
117
+ }
118
+ }
119
+ }
120
+ ```
121
+
122
+ ---
123
+
124
+ ## 🆚 对比
125
+
126
+ ### ❌ 以前(复杂)
127
+ ```json
128
+ {
129
+ "mcpServers": {
130
+ "miniprogram": {
131
+ "command": "miniprogram-mcp",
132
+ "args": [
133
+ "--project-path", "/absolute/long/path/to/project",
134
+ "--cli-path", "/Applications/wechatwebdevtools.app/Contents/MacOS/cli",
135
+ "--port", "9420",
136
+ "--capabilities", "core,assert,snapshot"
137
+ ]
138
+ }
139
+ }
140
+ }
141
+ ```
142
+
143
+ ### ✅ 现在(极简)
144
+ ```json
145
+ {
146
+ "mcpServers": {
147
+ "miniprogram": {
148
+ "command": "npx",
149
+ "args": ["-y", "@creatoria/miniapp-mcp"]
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ ---
156
+
157
+ ## 🧪 本地测试(npm link)
158
+
159
+ ```bash
160
+ # 1. 在项目目录执行
161
+ npm link
162
+
163
+ # 2. 使用相同的简洁配置
164
+ {
165
+ "mcpServers": {
166
+ "miniprogram": {
167
+ "command": "miniprogram-mcp"
168
+ }
169
+ }
170
+ }
171
+ ```
172
+
173
+ ---
174
+
175
+ ## 🔍 调试信息
176
+
177
+ 当 MCP 服务器启动时,会在 stderr 输出:
178
+
179
+ ```
180
+ Auto-detected project path: /path/to/your/miniprogram
181
+ Loaded config from: /path/to/.mcp.json
182
+ Loaded config from environment: projectPath, port
183
+ ```
184
+
185
+ 查看 Claude Desktop 日志:
186
+ - macOS: `~/Library/Logs/Claude/`
187
+ - 找到最新的 mcp-server-miniprogram.log
188
+
189
+ ---
190
+
191
+ ## ✨ 发布后的最终体验
192
+
193
+ **发布到 npm 后,用户只需:**
194
+
195
+ 1. 在小程序项目根目录创建 Claude Desktop 配置
196
+ 2. 复制这个配置:
197
+ ```json
198
+ {
199
+ "mcpServers": {
200
+ "miniprogram": {
201
+ "command": "npx",
202
+ "args": ["-y", "@creatoria/miniapp-mcp"]
203
+ }
204
+ }
205
+ }
206
+ ```
207
+ 3. 重启 Claude Desktop
208
+ 4. 完成!🎉
209
+
210
+ **就像 Playwright MCP 一样简单!**
@@ -0,0 +1,244 @@
1
+ # API Reference - creatoria-miniapp-mcp
2
+
3
+ > Complete API documentation for all 65 tools across 8 categories
4
+
5
+ Enable AI assistants to orchestrate WeChat Mini Program testing through natural language. Each tool is designed for LLM consumption with clear parameters, return values, and usage examples.
6
+
7
+ ---
8
+
9
+ ## 📊 Tool Catalog
10
+
11
+ **Total**: 65 tools across 8 categories
12
+
13
+ | Category | Tools | Description |
14
+ |----------|-------|-------------|
15
+ | [Automator](#automator) | 4 | Connection & lifecycle management |
16
+ | [MiniProgram](#miniprogram) | 16 | App-level operations (navigation, screenshots, wx.* APIs) |
17
+ | [Page](#page) | 8 | Page-level queries and data manipulation |
18
+ | [Element](#element) | 23 | Element interactions, attributes, scrolling |
19
+ | [Assert](#assert) | 9 | Testing assertions and validation |
20
+ | [Snapshot](#snapshot) | 3 | State capture for debugging |
21
+ | [Record](#record) | 6 | Action recording and replay for regression testing |
22
+ | [Network](#network) | 6 | Network mocking and wx.* API testing |
23
+
24
+ ---
25
+
26
+ ## 📚 Category Details
27
+
28
+ ### <a name="automator"></a>[Automator](./automator.md) - Connection & Lifecycle (4 tools)
29
+
30
+ Manage WeChat DevTools startup, connection, disconnection, and cleanup.
31
+
32
+ | Tool | Description |
33
+ |------|-------------|
34
+ | `automator_launch` | Launch WeChat DevTools and load mini program |
35
+ | `automator_connect` | Connect to running DevTools instance |
36
+ | `automator_disconnect` | Disconnect but keep DevTools running |
37
+ | `automator_close` | Close mini program and cleanup all resources |
38
+
39
+ ---
40
+
41
+ ### <a name="miniprogram"></a>[MiniProgram](./miniprogram.md) - App-Level Operations (6 tools)
42
+
43
+ Global mini program operations including navigation, screenshots, and script execution.
44
+
45
+ | Tool | Description |
46
+ |------|-------------|
47
+ | `miniprogram_navigate` | Navigate between pages (5 methods: navigateTo, redirectTo, etc.) |
48
+ | `miniprogram_call_wx` | Call WeChat APIs (wx.*) |
49
+ | `miniprogram_evaluate` | Execute JavaScript in mini program context |
50
+ | `miniprogram_screenshot` | Take screenshot (full page or custom region) |
51
+ | `miniprogram_current_page` | Get current page information |
52
+ | `miniprogram_get_system_info` | Get system info (platform, version, etc.) |
53
+
54
+ ---
55
+
56
+ ### <a name="page"></a>[Page](./page.md) - Page-Level Operations (8 tools)
57
+
58
+ Query elements, manipulate page data, and call page methods.
59
+
60
+ | Tool | Description |
61
+ |------|-------------|
62
+ | `page_query` | Query single element (returns ElementRef) |
63
+ | `page_query_all` | Query all matching elements |
64
+ | `page_wait_for` | Wait for element to appear/disappear |
65
+ | `page_get_data` | Get page data by path |
66
+ | `page_set_data` | Set page data by path |
67
+ | `page_call_method` | Call page method |
68
+ | `page_get_size` | Get page dimensions |
69
+ | `page_get_scroll_top` | Get page scroll position |
70
+
71
+ ---
72
+
73
+ ### <a name="element"></a>[Element](./element.md) - Element-Level Operations (23 tools)
74
+
75
+ Interact with elements, get attributes, and control scrolling.
76
+
77
+ **Tap & Input** (5 tools):
78
+ - `element_tap`, `element_long_press`, `element_input`
79
+ - `element_clear_input`, `element_trigger`
80
+
81
+ **Touch Events** (6 tools):
82
+ - `element_touch_start`, `element_touch_move`, `element_touch_end`
83
+ - `element_swipe`, `element_moveTo`, `element_slide`
84
+
85
+ **Getters** (7 tools):
86
+ - `element_get_text`, `element_get_value`
87
+ - `element_get_attribute`, `element_get_property`
88
+ - `element_get_size`, `element_get_offset`, `element_get_rect`
89
+
90
+ **Scrolling** (5 tools):
91
+ - `element_scroll`, `element_scroll_to`, `element_scroll_into_view`
92
+ - `element_scroll_x`, `element_scroll_y`
93
+
94
+ 📖 **[Full Element API Documentation](./element.md)**
95
+
96
+ ---
97
+
98
+ ### <a name="assert"></a>[Assert](./assert.md) - Testing Assertions (9 tools)
99
+
100
+ Automated testing assertions for element validation.
101
+
102
+ | Tool | Description |
103
+ |------|-------------|
104
+ | `assert_exists` | Assert element exists |
105
+ | `assert_not_exists` | Assert element does not exist |
106
+ | `assert_text` | Assert exact text match |
107
+ | `assert_text_contains` | Assert text contains substring |
108
+ | `assert_attribute` | Assert attribute value |
109
+ | `assert_property` | Assert property value |
110
+ | `assert_data` | Assert page data value |
111
+ | `assert_visible` | Assert element is visible (non-zero size) |
112
+ | `assert_count` | Assert element count |
113
+
114
+ ---
115
+
116
+ ### <a name="snapshot"></a>[Snapshot](./snapshot.md) - State Capture & Debug (3 tools)
117
+
118
+ Capture page, app, and element state for troubleshooting and debugging.
119
+
120
+ | Tool | Description |
121
+ |------|-------------|
122
+ | `snapshot_capture` | Capture current state (page data + optional screenshot) |
123
+ | `snapshot_restore` | Restore previously captured state |
124
+ | `snapshot_compare` | Compare two snapshots and report differences |
125
+
126
+ ---
127
+
128
+ ### <a name="record"></a>[Record](./record.md) - Recording & Replay (6 tools)
129
+
130
+ Record user actions and replay for regression testing.
131
+
132
+ | Tool | Description |
133
+ |------|-------------|
134
+ | `record_start` | Start recording user actions |
135
+ | `record_stop` | Stop recording and save sequence |
136
+ | `record_list` | List all saved action sequences |
137
+ | `record_get` | Get specific sequence details |
138
+ | `record_delete` | Delete a saved sequence |
139
+ | `record_replay` | Replay recorded sequence with optional error handling |
140
+
141
+ ---
142
+
143
+ ### <a name="network"></a>[Network](./network.md) - Network Mocking & Testing (6 tools)
144
+
145
+ Mock WeChat APIs (wx.*) for testing without real network calls.
146
+
147
+ | Tool | Description |
148
+ |------|-------------|
149
+ | `network_mock_wx_method` | Mock any wx.* API method (success/fail) |
150
+ | `network_restore_wx_method` | Restore a mocked wx.* method |
151
+ | `network_mock_request` | Convenience wrapper for wx.request mock |
152
+ | `network_mock_request_failure` | Mock wx.request failure |
153
+ | `network_restore_request` | Restore wx.request to original behavior |
154
+ | `network_restore_all_mocks` | Restore all mocked methods at once |
155
+
156
+ ---
157
+
158
+ ## 📖 使用指南
159
+
160
+ ### 基本工作流
161
+
162
+ ```javascript
163
+ // 1. 启动或连接
164
+ automator_launch({ projectPath: "/path/to/project" })
165
+
166
+ // 2. 导航
167
+ miniprogram_navigate({ method: "navigateTo", url: "/pages/index/index" })
168
+
169
+ // 3. 查询元素
170
+ const result = page_query({ selector: ".btn", save: true })
171
+
172
+ // 4. 操作元素
173
+ element_tap({ refId: result.refId })
174
+
175
+ // 5. 断言
176
+ assert_exists({ selector: ".success-message" })
177
+
178
+ // 6. 快照(可选)
179
+ snapshot_capture({ includeScreenshot: true })
180
+ ```
181
+
182
+ ### 元素引用(refId)
183
+
184
+ **推荐做法**: 使用 `save: true` 缓存元素引用,避免重复查询。
185
+
186
+ ```javascript
187
+ // ✅ 推荐:保存引用
188
+ const result = page_query({ selector: ".btn", save: true })
189
+ element_tap({ refId: result.refId })
190
+ element_get_text({ refId: result.refId })
191
+
192
+ // ❌ 不推荐:每次都查询
193
+ page_query({ selector: ".btn" })
194
+ element_tap({ selector: ".btn" }) // 重复查询
195
+ ```
196
+
197
+ ---
198
+
199
+ ## 📝 文档约定
200
+
201
+ **参数标记**:
202
+ - ✅ **必需参数**: 标记为 `required`
203
+ - ⭐ **可选参数**: 有默认值或可省略
204
+ - 🔧 **配置参数**: 环境变量或配置文件
205
+
206
+ **返回值**:
207
+ - 所有工具返回 `{ success: boolean, message: string, ... }`
208
+ - 错误通过抛出异常
209
+
210
+ **错误处理**:
211
+ - 参数错误:立即抛出异常
212
+ - 连接错误:提示先调用 `miniprogram_launch` 或 `miniprogram_connect`
213
+ - 断言失败:抛出 `Assertion failed: {detail}` 异常
214
+
215
+ ---
216
+
217
+ ## 🔗 相关文档
218
+
219
+ - [项目README](../../README.md)
220
+ - [配置指南](../setup-guide.md)
221
+ - [系统架构](../architecture.md)
222
+ - [使用示例](../../examples/README.md)
223
+ - [故障排除](../troubleshooting.md)
224
+
225
+ ---
226
+
227
+ ---
228
+
229
+ ## 🔑 工具命名说明
230
+
231
+ **MCP 工具名称格式**: 实际工具名称使用 `snake_case` 格式(如 `miniprogram_navigate`、`page_query`)。
232
+
233
+ **文档展示格式**: 为了提高可读性,文档中某些地方使用点号分隔(如 `miniprogram.navigate`、`page.query`),这仅是**展示格式**,调用时请使用下划线格式。
234
+
235
+ **示例对照**:
236
+ - 文档展示: `miniprogram.navigate` → 实际调用: `miniprogram_navigate`
237
+ - 文档展示: `page.getData` → 实际调用: `page_get_data`
238
+ - 文档展示: `element.tap` → 实际调用: `element_tap`
239
+
240
+ 所有工具的**完整准确名称**请参考各分类页面的工具列表。
241
+
242
+ ---
243
+
244
+ **最后更新**: 2025-10-03