@becrafter/prompt-manager 0.0.18 → 0.1.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/IFLOW.md +175 -0
- package/README.md +145 -234
- package/app/desktop/assets/app.1.png +0 -0
- package/app/desktop/assets/app.png +0 -0
- package/app/desktop/assets/icons/icon.icns +0 -0
- package/app/desktop/assets/icons/icon.ico +0 -0
- package/app/desktop/assets/icons/icon.png +0 -0
- package/app/desktop/assets/icons/tray.png +0 -0
- package/app/desktop/assets/templates/about.html +147 -0
- package/app/desktop/assets/tray.png +0 -0
- package/app/desktop/main.js +187 -732
- package/app/desktop/package-lock.json +723 -522
- package/app/desktop/package.json +54 -25
- package/app/desktop/preload.js +7 -0
- package/app/desktop/src/core/error-handler.js +108 -0
- package/app/desktop/src/core/event-emitter.js +84 -0
- package/app/desktop/src/core/logger.js +108 -0
- package/app/desktop/src/core/state-manager.js +125 -0
- package/app/desktop/src/services/module-loader.js +214 -0
- package/app/desktop/src/services/runtime-manager.js +301 -0
- package/app/desktop/src/services/service-manager.js +169 -0
- package/app/desktop/src/services/update-manager.js +268 -0
- package/app/desktop/src/ui/about-dialog-manager.js +208 -0
- package/app/desktop/src/ui/admin-window-manager.js +757 -0
- package/app/desktop/src/ui/splash-manager.js +253 -0
- package/app/desktop/src/ui/tray-manager.js +186 -0
- package/app/desktop/src/utils/icon-manager.js +133 -0
- package/app/desktop/src/utils/path-utils.js +58 -0
- package/app/desktop/src/utils/resource-paths.js +49 -0
- package/app/desktop/src/utils/resource-sync.js +260 -0
- package/app/desktop/src/utils/runtime-sync.js +241 -0
- package/app/desktop/src/utils/template-renderer.js +284 -0
- package/app/desktop/src/utils/version-utils.js +59 -0
- package/examples/prompts/engineer/engineer-professional.yaml +92 -0
- package/examples/prompts/engineer/laowang-engineer.yaml +132 -0
- package/examples/prompts/engineer/nekomata-engineer.yaml +123 -0
- package/examples/prompts/engineer/ojousama-engineer.yaml +124 -0
- package/examples/prompts/recommend/human_3-0_growth_diagnostic_coach_prompt.yaml +105 -0
- package/examples/prompts/workflow/sixstep-workflow.yaml +192 -0
- package/package.json +18 -9
- package/packages/admin-ui/.babelrc +3 -0
- package/packages/admin-ui/admin.html +237 -4784
- package/packages/admin-ui/css/main.css +2592 -0
- package/packages/admin-ui/css/recommended-prompts.css +610 -0
- package/packages/admin-ui/package-lock.json +6981 -0
- package/packages/admin-ui/package.json +36 -0
- package/packages/admin-ui/src/codemirror.js +53 -0
- package/packages/admin-ui/src/index.js +3188 -0
- package/packages/admin-ui/webpack.config.js +76 -0
- package/packages/resources/tools/chrome-devtools/README.md +310 -0
- package/packages/resources/tools/chrome-devtools/chrome-devtools.tool.js +1703 -0
- package/packages/resources/tools/file-reader/README.md +289 -0
- package/packages/resources/tools/file-reader/file-reader.tool.js +1545 -0
- package/packages/resources/tools/filesystem/README.md +359 -0
- package/packages/resources/tools/filesystem/filesystem.tool.js +538 -0
- package/packages/resources/tools/ollama-remote/README.md +192 -0
- package/packages/resources/tools/ollama-remote/ollama-remote.tool.js +421 -0
- package/packages/resources/tools/pdf-reader/README.md +236 -0
- package/packages/resources/tools/pdf-reader/pdf-reader.tool.js +565 -0
- package/packages/resources/tools/playwright/README.md +306 -0
- package/packages/resources/tools/playwright/playwright.tool.js +1186 -0
- package/packages/resources/tools/todolist/README.md +394 -0
- package/packages/resources/tools/todolist/todolist.tool.js +1312 -0
- package/packages/server/README.md +142 -0
- package/packages/server/api/admin.routes.js +42 -11
- package/packages/server/api/surge.routes.js +43 -0
- package/packages/server/app.js +119 -14
- package/packages/server/index.js +39 -0
- package/packages/server/mcp/mcp.server.js +346 -28
- package/packages/server/mcp/{mcp.handler.js → prompt.handler.js} +108 -9
- package/packages/server/mcp/sequential-thinking.handler.js +318 -0
- package/packages/server/mcp/think-plan.handler.js +274 -0
- package/packages/server/middlewares/auth.middleware.js +6 -0
- package/packages/server/package.json +51 -0
- package/packages/server/server.js +37 -1
- package/packages/server/toolm/index.js +9 -0
- package/packages/server/toolm/package-installer.service.js +267 -0
- package/packages/server/toolm/test-tools.js +264 -0
- package/packages/server/toolm/tool-context.service.js +334 -0
- package/packages/server/toolm/tool-dependency.service.js +168 -0
- package/packages/server/toolm/tool-description-generator-optimized.service.js +375 -0
- package/packages/server/toolm/tool-description-generator.service.js +312 -0
- package/packages/server/toolm/tool-environment.service.js +200 -0
- package/packages/server/toolm/tool-execution.service.js +277 -0
- package/packages/server/toolm/tool-loader.service.js +219 -0
- package/packages/server/toolm/tool-logger.service.js +223 -0
- package/packages/server/toolm/tool-manager.handler.js +65 -0
- package/packages/server/toolm/tool-manual-generator.service.js +389 -0
- package/packages/server/toolm/tool-mode-handlers.service.js +224 -0
- package/packages/server/toolm/tool-storage.service.js +111 -0
- package/packages/server/toolm/tool-sync.service.js +138 -0
- package/packages/server/toolm/tool-utils.js +20 -0
- package/packages/server/toolm/tool-yaml-parser.service.js +81 -0
- package/packages/server/toolm/validate-system.js +421 -0
- package/packages/server/utils/config.js +49 -5
- package/packages/server/utils/util.js +65 -10
- package/scripts/build-icons.js +135 -0
- package/scripts/build.sh +57 -0
- package/scripts/surge/CNAME +1 -0
- package/scripts/surge/README.md +47 -0
- package/scripts/surge/package-lock.json +34 -0
- package/scripts/surge/package.json +20 -0
- package/scripts/surge/sync-to-surge.js +151 -0
- package/packages/admin-ui/js/closebrackets.min.js +0 -8
- package/packages/admin-ui/js/codemirror.min.js +0 -8
- package/packages/admin-ui/js/js-yaml.min.js +0 -2
- package/packages/admin-ui/js/markdown.min.js +0 -8
- /package/app/desktop/assets/{icon.png → tray.1.png} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
3
|
+
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
4
|
+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
5
|
+
|
|
6
|
+
module.exports = (env, argv) => {
|
|
7
|
+
const isProduction = argv.mode === 'production';
|
|
8
|
+
|
|
9
|
+
return {
|
|
10
|
+
entry: './src/index.js',
|
|
11
|
+
|
|
12
|
+
output: {
|
|
13
|
+
path: path.resolve(__dirname, '..', 'web'),
|
|
14
|
+
filename: isProduction ? '[name].[contenthash].js' : '[name].js',
|
|
15
|
+
clean: true,
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
devServer: {
|
|
19
|
+
static: {
|
|
20
|
+
directory: path.join(__dirname, '.'),
|
|
21
|
+
},
|
|
22
|
+
compress: true,
|
|
23
|
+
port: 9000,
|
|
24
|
+
open: true,
|
|
25
|
+
hot: true,
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
module: {
|
|
29
|
+
rules: [
|
|
30
|
+
{
|
|
31
|
+
test: /\.css$/i,
|
|
32
|
+
use: [
|
|
33
|
+
isProduction ? MiniCssExtractPlugin.loader : 'style-loader',
|
|
34
|
+
'css-loader'
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
test: /\.js$/,
|
|
39
|
+
enforce: 'pre',
|
|
40
|
+
use: ['source-map-loader'],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
test: /\.(png|svg|jpg|jpeg|gif)$/i,
|
|
44
|
+
type: 'asset/resource',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
test: /\.(woff|woff2|eot|ttf|otf)$/i,
|
|
48
|
+
type: 'asset/resource',
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
plugins: [
|
|
54
|
+
new HtmlWebpackPlugin({
|
|
55
|
+
template: './admin.html',
|
|
56
|
+
filename: 'index.html'
|
|
57
|
+
}),
|
|
58
|
+
|
|
59
|
+
new CopyWebpackPlugin({
|
|
60
|
+
patterns: [
|
|
61
|
+
// 移除CSS文件的复制,因为现在使用MiniCssExtractPlugin处理
|
|
62
|
+
{ from: 'css/codemirror.css', to: 'css/' },
|
|
63
|
+
{ from: 'css/codemirror-theme_xq-light.css', to: 'css/' },
|
|
64
|
+
],
|
|
65
|
+
}),
|
|
66
|
+
|
|
67
|
+
new MiniCssExtractPlugin({
|
|
68
|
+
filename: 'css/[name].[contenthash].css',
|
|
69
|
+
}),
|
|
70
|
+
],
|
|
71
|
+
|
|
72
|
+
optimization: {
|
|
73
|
+
minimize: isProduction
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
};
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# Chrome DevTools Tool
|
|
2
|
+
|
|
3
|
+
基于 chrome-devtools-mcp 的浏览器自动化工具,完全复用官方实现。支持页面导航、元素操作、性能分析、网络监控、控制台监控等功能。
|
|
4
|
+
|
|
5
|
+
## 功能特性
|
|
6
|
+
|
|
7
|
+
1. **输入自动化** (`click`, `fill`, `hover`, `press_key`, `drag`, `upload_file`, `handle_dialog`, `fill_form`)
|
|
8
|
+
- 点击、填写、悬停、按键、拖拽等交互操作
|
|
9
|
+
- 支持文件上传和对话框处理
|
|
10
|
+
- 批量表单填写
|
|
11
|
+
|
|
12
|
+
2. **导航自动化** (`navigate_page`, `new_page`, `close_page`, `list_pages`, `select_page`, `wait_for`)
|
|
13
|
+
- 页面导航(URL、前进、后退、刷新)
|
|
14
|
+
- 多页面管理
|
|
15
|
+
- 等待页面元素或文本出现
|
|
16
|
+
|
|
17
|
+
3. **网络监控** (`list_network_requests`, `get_network_request`)
|
|
18
|
+
- 监控网络请求
|
|
19
|
+
- 查看请求详情(方法、URL、状态、头部等)
|
|
20
|
+
|
|
21
|
+
4. **性能分析** (`performance_start_trace`, `performance_stop_trace`, `performance_analyze_insight`)
|
|
22
|
+
- 性能追踪和 Core Web Vitals 分析
|
|
23
|
+
- 性能洞察分析
|
|
24
|
+
|
|
25
|
+
5. **调试功能** (`evaluate_script`, `get_console_message`, `list_console_messages`, `take_screenshot`, `take_snapshot`)
|
|
26
|
+
- 执行 JavaScript 代码
|
|
27
|
+
- 监控控制台消息
|
|
28
|
+
- 页面截图和快照
|
|
29
|
+
|
|
30
|
+
6. **设备模拟** (`emulate`, `resize_page`)
|
|
31
|
+
- 模拟网络条件和 CPU 降速
|
|
32
|
+
- 调整页面尺寸
|
|
33
|
+
|
|
34
|
+
## 环境变量配置
|
|
35
|
+
|
|
36
|
+
工具支持以下环境变量:
|
|
37
|
+
|
|
38
|
+
- `CHROME_HEADLESS` (可选): 是否无头模式(true/false),默认 `true`
|
|
39
|
+
- `CHROME_CHANNEL` (可选): Chrome 渠道(stable/canary/beta/dev),默认 `stable`
|
|
40
|
+
- `CHROME_ISOLATED` (可选): 是否使用隔离的用户数据目录(true/false),默认 `false`
|
|
41
|
+
|
|
42
|
+
## 使用方法
|
|
43
|
+
|
|
44
|
+
### 1. 配置环境变量
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
tool: tool://chrome-devtools
|
|
48
|
+
mode: configure
|
|
49
|
+
parameters:
|
|
50
|
+
CHROME_HEADLESS: "true"
|
|
51
|
+
CHROME_CHANNEL: "stable"
|
|
52
|
+
CHROME_ISOLATED: "false"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2. 导航到页面
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
tool: tool://chrome-devtools
|
|
59
|
+
mode: execute
|
|
60
|
+
parameters:
|
|
61
|
+
method: navigate_page
|
|
62
|
+
url: "https://example.com"
|
|
63
|
+
type: "url"
|
|
64
|
+
options:
|
|
65
|
+
headless: true
|
|
66
|
+
keepAlive: false
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 3. 获取页面快照
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
tool: tool://chrome-devtools
|
|
73
|
+
mode: execute
|
|
74
|
+
parameters:
|
|
75
|
+
method: take_snapshot
|
|
76
|
+
verbose: false
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 4. 点击元素
|
|
80
|
+
|
|
81
|
+
```yaml
|
|
82
|
+
tool: tool://chrome-devtools
|
|
83
|
+
mode: execute
|
|
84
|
+
parameters:
|
|
85
|
+
method: click
|
|
86
|
+
uid: "element-uid-from-snapshot"
|
|
87
|
+
dblClick: false
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 5. 填写表单
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
tool: tool://chrome-devtools
|
|
94
|
+
mode: execute
|
|
95
|
+
parameters:
|
|
96
|
+
method: fill
|
|
97
|
+
uid: "input-uid-from-snapshot"
|
|
98
|
+
value: "要填写的内容"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 6. 截图
|
|
102
|
+
|
|
103
|
+
```yaml
|
|
104
|
+
tool: tool://chrome-devtools
|
|
105
|
+
mode: execute
|
|
106
|
+
parameters:
|
|
107
|
+
method: take_screenshot
|
|
108
|
+
format: "png"
|
|
109
|
+
fullPage: false
|
|
110
|
+
filePath: "screenshot.png" # 可选
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 7. 性能分析
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
tool: tool://chrome-devtools
|
|
117
|
+
mode: execute
|
|
118
|
+
parameters:
|
|
119
|
+
method: performance_start_trace
|
|
120
|
+
reload: true
|
|
121
|
+
autoStop: true
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 参数说明
|
|
125
|
+
|
|
126
|
+
### 通用参数
|
|
127
|
+
|
|
128
|
+
- `method` (必需): 操作方法名称
|
|
129
|
+
- `keepAlive` (可选): 操作完成后是否保持浏览器打开(默认 false)。设置为 true 时,浏览器会保持打开状态,可用于连续操作或调试
|
|
130
|
+
- `options` (可选): 操作选项对象
|
|
131
|
+
- `headless`: 是否无头模式
|
|
132
|
+
- `channel`: Chrome 渠道
|
|
133
|
+
- `isolated`: 是否使用隔离的用户数据目录
|
|
134
|
+
- `keepAlive`: 是否保持浏览器打开
|
|
135
|
+
- `timeout` (可选): 超时时间(毫秒),默认 30000
|
|
136
|
+
|
|
137
|
+
### 导航相关参数
|
|
138
|
+
|
|
139
|
+
- `url`: 目标 URL(navigate_page、new_page 方法)
|
|
140
|
+
- `type`: 导航类型(url/back/forward/reload),默认 `url`
|
|
141
|
+
- `ignoreCache`: 是否忽略缓存,默认 `false`
|
|
142
|
+
- `pageIdx`: 页面索引(select_page、close_page 方法)
|
|
143
|
+
|
|
144
|
+
### 元素操作参数
|
|
145
|
+
|
|
146
|
+
- `uid`: 元素的唯一标识符(从页面快照中获取)
|
|
147
|
+
- `value`: 要填写的值(fill 方法)
|
|
148
|
+
- `key`: 按键或组合键(press_key 方法,如 "Enter", "Control+A")
|
|
149
|
+
- `from_uid`: 拖拽源元素的 uid(drag 方法)
|
|
150
|
+
- `to_uid`: 拖拽目标元素的 uid(drag 方法)
|
|
151
|
+
- `filePath`: 文件路径(upload_file 方法)
|
|
152
|
+
- `action`: 对话框操作(handle_dialog 方法:accept/dismiss)
|
|
153
|
+
- `elements`: 表单元素数组(fill_form 方法)
|
|
154
|
+
|
|
155
|
+
### 网络监控参数
|
|
156
|
+
|
|
157
|
+
- `includePreservedRequests`: 是否包含保留的请求,默认 `false`
|
|
158
|
+
- `resourceTypes`: 资源类型过滤数组
|
|
159
|
+
- `pageSize`: 最大返回数量
|
|
160
|
+
- `reqid`: 网络请求ID(get_network_request 方法,可选)
|
|
161
|
+
|
|
162
|
+
### 性能分析参数
|
|
163
|
+
|
|
164
|
+
- `reload`: 是否重新加载页面(performance_start_trace 方法,必需)
|
|
165
|
+
- `autoStop`: 是否自动停止追踪(performance_start_trace 方法,必需)
|
|
166
|
+
- `insightName`: 性能洞察名称(performance_analyze_insight 方法,必需)
|
|
167
|
+
- `insightSetId`: 性能洞察集合ID(performance_analyze_insight 方法,必需)
|
|
168
|
+
|
|
169
|
+
### 调试参数
|
|
170
|
+
|
|
171
|
+
- `function`: 要执行的JavaScript函数(evaluate_script 方法)
|
|
172
|
+
- `args`: 函数参数数组(evaluate_script 方法)
|
|
173
|
+
- `msgid`: 控制台消息ID(get_console_message 方法)
|
|
174
|
+
- `types`: 消息类型过滤数组(list_console_messages 方法)
|
|
175
|
+
- `verbose`: 是否详细模式(take_snapshot 方法),默认 `false`
|
|
176
|
+
|
|
177
|
+
### 截图参数
|
|
178
|
+
|
|
179
|
+
- `format`: 截图格式(png/jpeg/webp),默认 `png`
|
|
180
|
+
- `fullPage`: 是否截取整页(与 uid 不兼容),默认 `false`
|
|
181
|
+
- `quality`: 压缩质量(0-100,仅用于 JPEG 和 WebP)
|
|
182
|
+
- `uid`: 元素 uid(截取特定元素)
|
|
183
|
+
|
|
184
|
+
## 返回格式
|
|
185
|
+
|
|
186
|
+
### 导航返回
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"success": true,
|
|
191
|
+
"method": "navigate_page",
|
|
192
|
+
"text": "页面标题",
|
|
193
|
+
"pages": [
|
|
194
|
+
{
|
|
195
|
+
"index": 0,
|
|
196
|
+
"title": "页面标题",
|
|
197
|
+
"selected": true
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 快照返回
|
|
204
|
+
|
|
205
|
+
```json
|
|
206
|
+
{
|
|
207
|
+
"success": true,
|
|
208
|
+
"method": "take_snapshot",
|
|
209
|
+
"snapshot": "Page Snapshot:\n[1] heading: 标题\n[2] button: 按钮\n..."
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 截图返回
|
|
214
|
+
|
|
215
|
+
```json
|
|
216
|
+
{
|
|
217
|
+
"success": true,
|
|
218
|
+
"method": "take_screenshot",
|
|
219
|
+
"images": [
|
|
220
|
+
{
|
|
221
|
+
"data": "base64-encoded-image-data",
|
|
222
|
+
"mimeType": "image/png"
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## 错误处理
|
|
229
|
+
|
|
230
|
+
工具定义了以下业务错误:
|
|
231
|
+
|
|
232
|
+
- `BROWSER_LAUNCH_FAILED`: 浏览器启动失败
|
|
233
|
+
- `NAVIGATION_FAILED`: 页面导航失败
|
|
234
|
+
- `ELEMENT_NOT_FOUND`: 元素未找到
|
|
235
|
+
- `SCREENSHOT_FAILED`: 截图失败
|
|
236
|
+
- `NETWORK_ERROR`: 网络错误
|
|
237
|
+
- `INVALID_UID`: 无效的元素标识符
|
|
238
|
+
- `TIMEOUT`: 操作超时
|
|
239
|
+
- `PAGE_CLOSED`: 页面已关闭
|
|
240
|
+
|
|
241
|
+
## 注意事项
|
|
242
|
+
|
|
243
|
+
1. **服务器同步**: 新添加的工具需要重启服务器才能被加载
|
|
244
|
+
2. **浏览器安装**: 首次使用时需要安装 Chrome 浏览器(会自动安装)
|
|
245
|
+
3. **浏览器生命周期**: 默认情况下操作完成后会自动关闭浏览器(可通过 `keepAlive` 参数控制)
|
|
246
|
+
4. **跨执行保持**: 使用 `keepAlive: true` 时,浏览器实例会跨执行保持,便于连续操作
|
|
247
|
+
5. **快照失效**: 页面导航后,旧的快照会失效,需要重新获取
|
|
248
|
+
6. **元素标识符**: 操作元素前必须先调用 `take_snapshot` 获取页面快照,然后使用快照中的 `uid`
|
|
249
|
+
7. **数据存储**: 工具数据存储在 `~/.prompt-manager/toolbox/chrome-devtools/data/` 目录下
|
|
250
|
+
|
|
251
|
+
## 测试步骤
|
|
252
|
+
|
|
253
|
+
1. **重启服务器**(如果服务器已在运行)
|
|
254
|
+
|
|
255
|
+
2. **查看工具手册**
|
|
256
|
+
```yaml
|
|
257
|
+
tool: tool://chrome-devtools
|
|
258
|
+
mode: manual
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
3. **配置环境变量**
|
|
262
|
+
```yaml
|
|
263
|
+
tool: tool://chrome-devtools
|
|
264
|
+
mode: configure
|
|
265
|
+
parameters:
|
|
266
|
+
CHROME_HEADLESS: "true"
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
4. **测试导航和快照**
|
|
270
|
+
```yaml
|
|
271
|
+
tool: tool://chrome-devtools
|
|
272
|
+
mode: execute
|
|
273
|
+
parameters:
|
|
274
|
+
method: navigate_page
|
|
275
|
+
url: "https://example.com"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
```yaml
|
|
279
|
+
tool: tool://chrome-devtools
|
|
280
|
+
mode: execute
|
|
281
|
+
parameters:
|
|
282
|
+
method: take_snapshot
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
5. **测试截图**
|
|
286
|
+
```yaml
|
|
287
|
+
tool: tool://chrome-devtools
|
|
288
|
+
mode: execute
|
|
289
|
+
parameters:
|
|
290
|
+
method: take_screenshot
|
|
291
|
+
fullPage: true
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
## 开发说明
|
|
295
|
+
|
|
296
|
+
工具基于 [chrome-devtools-mcp](https://github.com/modelcontextprotocol/servers/tree/main/src/chrome-devtools) 开发,完全复用官方实现,遵循 Prompt Manager 工具开发规范:
|
|
297
|
+
|
|
298
|
+
- 使用 ES6 模块格式 (`export default`)
|
|
299
|
+
- 实现必需方法 `execute()`
|
|
300
|
+
- 实现推荐方法:`getDependencies()`, `getMetadata()`, `getSchema()`, `getBusinessErrors()`
|
|
301
|
+
- 完整的错误处理和日志记录
|
|
302
|
+
- 符合工具开发指南的所有要求
|
|
303
|
+
|
|
304
|
+
## 版本历史
|
|
305
|
+
|
|
306
|
+
- **1.0.0** (2025-01-01): 初始版本
|
|
307
|
+
- 实现所有 chrome-devtools-mcp 功能
|
|
308
|
+
- 支持 keepAlive 参数保持浏览器状态
|
|
309
|
+
- 完整的错误处理和日志记录
|
|
310
|
+
|