@attson/atwebpilot-mcp 0.0.55 → 0.0.57
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 +72 -7
- package/dist/index.js +883 -292
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,14 +6,22 @@
|
|
|
6
6
|
|
|
7
7
|
claude mcp add atwebpilot --scope user -- npx -y @attson/atwebpilot-mcp
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
然后[下载 release zip](https://github.com/attson/atwebpilot/releases/latest) 加载已解压扩展。
|
|
10
|
+
|
|
11
|
+
**不需要手填端口。** 从 Plan 33 起是配对流程:
|
|
12
|
+
|
|
13
|
+
1. 会话启动时**不绑任何端口** —— 不碰网页的会话零副作用。
|
|
14
|
+
2. AI 第一次调 `list_tabs` / `browser_*` 时才绑一个空闲端口,并自动打开配对页。
|
|
15
|
+
3. 你在浏览器里点「允许」,扩展即接入,重试那次调用即可。
|
|
16
|
+
4. 之后本机的会话都免确认(信任是安装级的);端口能复用时连配对页都不会弹。
|
|
10
17
|
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
多个 Claude Code 会话可以同时接入同一个浏览器,各自一条连接。可在扩展设置 →
|
|
19
|
+
Coordinator 查看已接入的会话、单独断开,或撤销信任。
|
|
20
|
+
|
|
21
|
+
可选环境变量:
|
|
13
22
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`list_tabs` 即可看到当前标签页。
|
|
23
|
+
- `ATWEBPILOT_WS_PORT`:固定端口(默认是自动选一个空闲端口并复用上次的)
|
|
24
|
+
- `ATWEBPILOT_WS_TOKEN`:要求扩展带 `bearer.<token>` 子协议
|
|
17
25
|
|
|
18
26
|
## 给开发者:本地 monorepo
|
|
19
27
|
|
|
@@ -21,10 +29,67 @@
|
|
|
21
29
|
|
|
22
30
|
环境变量同上,路径用 `tsx src/index.ts` 直跑(包内 `start` script 已封)。
|
|
23
31
|
|
|
32
|
+
## 多会话
|
|
33
|
+
|
|
34
|
+
每个 MCP server 进程是 WS **服务端**,扩展是**客户端** —— MV3 service worker 没有
|
|
35
|
+
listen 端口的能力,所以方向只能如此。这也是配对页存在的原因:服务端没法主动找到浏览器,
|
|
36
|
+
只能由它把自己的端口**告知**扩展。
|
|
37
|
+
|
|
38
|
+
扩展侧维护一个连接池,每个已配对会话一条连接。`list_tabs` 会告诉你哪些 tab 正被**别的**
|
|
39
|
+
会话占用(`busy` / `busy_label`)——只是提示,不拦截;AI 看到占用通常直接 `openTab` 开一个新的就行。
|
|
40
|
+
|
|
24
41
|
## 工具面
|
|
25
42
|
|
|
26
43
|
- 控制面 4 个:`list_tabs / open_session / close_session / get_quota`
|
|
27
|
-
- 执行面
|
|
44
|
+
- 执行面 54 个 `browser_*`:扩展的全部内置工具,除了 `askUser`(MCP 会话没有人在侧边栏应答)和
|
|
45
|
+
`attachTab` / `detachTab`(侧边栏多 tab 记账,MCP 的目标 tab 已由 `open_session` 绑定)。
|
|
46
|
+
|
|
47
|
+
工具列表会和扩展 `HELLO` 里上报的 `supported_tools` 求交集,所以旧版扩展配新版 server 时不会
|
|
48
|
+
出现「列出来但一调就 unknown tool」。字段缺失(Plan 32 之前的扩展)时回落到旧的 19 个。
|
|
49
|
+
|
|
50
|
+
### 环境变量 `ATWEBPILOT_MCP_TOOLS`
|
|
51
|
+
|
|
52
|
+
| 值 | 效果 |
|
|
53
|
+
|---|---|
|
|
54
|
+
| `full`(默认) | 全部 54 个 |
|
|
55
|
+
| `parity` | 只出对标 playwright-ext 那 24 个能力的子集,省上下文 |
|
|
56
|
+
|
|
57
|
+
无法识别的值按 `full` 处理,并往 stderr 打一条提示。
|
|
58
|
+
|
|
59
|
+
## 替代 playwright-ext
|
|
60
|
+
|
|
61
|
+
`@playwright/mcp --extension` 的每个工具在这里都有对应项(名字是 AtWebPilot 的,不是 playwright 的):
|
|
62
|
+
|
|
63
|
+
| playwright-ext | AtWebPilot |
|
|
64
|
+
|---|---|
|
|
65
|
+
| `browser_snapshot` | `browser_takeSnapshot`(uid 可直接喂给 `clickByUid` / `fillByUid`) |
|
|
66
|
+
| `browser_find` | `browser_findElements` |
|
|
67
|
+
| `browser_click` | `browser_click`(含 `doubleClick` / `button` / `modifiers`)、`browser_clickByUid` |
|
|
68
|
+
| `browser_type` | `browser_fillInput`(含 `slowly` / `submit`) |
|
|
69
|
+
| `browser_fill_form` | `browser_fillForm` |
|
|
70
|
+
| `browser_select_option` / `browser_hover` / `browser_press_key` | 同名去掉下划线:`browser_selectOption` / `browser_hover` / `browser_pressKey` |
|
|
71
|
+
| `browser_drag` / `browser_drop` | `browser_drag` / `browser_drop` |
|
|
72
|
+
| `browser_file_upload` | `browser_uploadFile` |
|
|
73
|
+
| `browser_navigate` / `browser_navigate_back` | `browser_navigate` / `browser_navigateBack`(另有 `navigateForward`) |
|
|
74
|
+
| `browser_tabs` | `browser_listTabs` / `openTab` / `closeTab` / `switchToTab` |
|
|
75
|
+
| `browser_close` | `browser_closeTab` |
|
|
76
|
+
| `browser_resize` | `browser_resize` |
|
|
77
|
+
| `browser_take_screenshot` | `browser_screenshot`(含 `fullPage` / `format` / `scale`) |
|
|
78
|
+
| `browser_wait_for` | `browser_waitFor`(含 `text` / `textGone`) |
|
|
79
|
+
| `browser_evaluate` / `browser_run_code_unsafe` | `browser_runJS` |
|
|
80
|
+
| `browser_console_messages` | `browser_consoleMessages` |
|
|
81
|
+
| `browser_network_requests` / `browser_network_request` | `browser_networkRequests` / `browser_networkRequestDetail` |
|
|
82
|
+
| `browser_handle_dialog` | `browser_handleDialog`(默认档是预设策略,见下) |
|
|
83
|
+
|
|
84
|
+
两处语义差异,调用前要知道:
|
|
85
|
+
|
|
86
|
+
- **`handleDialog` 在默认档是预先策略,不是反应式。** `alert` / `confirm` / `prompt` 是同步的,
|
|
87
|
+
打了补丁也没法挂起等 agent 决定。开启设置里的 CDP 档之后弹窗真挂起,行为才和 playwright 一致。
|
|
88
|
+
- **`networkRequestDetail` 的 body 默认不记。** 先 `recorderConfig({bodies:true})` 再复现请求。
|
|
89
|
+
不开时返回元数据加一条 `bodyUnavailable` 说明怎么开。
|
|
90
|
+
|
|
91
|
+
AtWebPilot 额外有 playwright-ext 没有的:page-index 四件套、`extractImages`、`httpRequest`、
|
|
92
|
+
`downloadSpreadsheet`(真 `.xlsx`)、书签/历史搜索。
|
|
28
93
|
|
|
29
94
|
详细协议与设计见 [`../../docs/superpowers/specs/2026-06-06-mcp-bridge-design.md`](../../docs/superpowers/specs/2026-06-06-mcp-bridge-design.md)。
|
|
30
95
|
|