@coofly/agent-browser-mcp 1.0.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.
- package/.dockerignore +7 -0
- package/CLAUDE.md +82 -0
- package/Dockerfile +41 -0
- package/LICENSE +674 -0
- package/README.md +191 -0
- package/README_ZH.md +191 -0
- package/config.example.yaml +44 -0
- package/dist/config.d.ts +43 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +43 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +334 -0
- package/dist/server.js.map +1 -0
- package/dist/test-cli.d.ts +2 -0
- package/dist/test-cli.d.ts.map +1 -0
- package/dist/test-cli.js +22 -0
- package/dist/test-cli.js.map +1 -0
- package/dist/test.d.ts +2 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +17 -0
- package/dist/test.js.map +1 -0
- package/dist/tools/advanced.d.ts +19 -0
- package/dist/tools/advanced.d.ts.map +1 -0
- package/dist/tools/advanced.js +40 -0
- package/dist/tools/advanced.js.map +1 -0
- package/dist/tools/information.d.ts +23 -0
- package/dist/tools/information.d.ts.map +1 -0
- package/dist/tools/information.js +41 -0
- package/dist/tools/information.js.map +1 -0
- package/dist/tools/interaction.d.ts +27 -0
- package/dist/tools/interaction.d.ts.map +1 -0
- package/dist/tools/interaction.js +49 -0
- package/dist/tools/interaction.js.map +1 -0
- package/dist/tools/navigation.d.ts +21 -0
- package/dist/tools/navigation.d.ts.map +1 -0
- package/dist/tools/navigation.js +37 -0
- package/dist/tools/navigation.js.map +1 -0
- package/dist/tools/storage.d.ts +16 -0
- package/dist/tools/storage.d.ts.map +1 -0
- package/dist/tools/storage.js +28 -0
- package/dist/tools/storage.js.map +1 -0
- package/dist/utils/configLoader.d.ts +19 -0
- package/dist/utils/configLoader.d.ts.map +1 -0
- package/dist/utils/configLoader.js +163 -0
- package/dist/utils/configLoader.js.map +1 -0
- package/dist/utils/executor.d.ts +26 -0
- package/dist/utils/executor.d.ts.map +1 -0
- package/dist/utils/executor.js +71 -0
- package/dist/utils/executor.js.map +1 -0
- package/package.json +35 -0
- package/src/config.ts +60 -0
- package/src/index.ts +16 -0
- package/src/server.ts +388 -0
- package/src/test-cli.ts +27 -0
- package/src/test.ts +20 -0
- package/src/tools/advanced.ts +55 -0
- package/src/tools/information.ts +54 -0
- package/src/tools/interaction.ts +74 -0
- package/src/tools/navigation.ts +51 -0
- package/src/tools/storage.ts +36 -0
- package/src/utils/configLoader.ts +195 -0
- package/src/utils/executor.ts +100 -0
- package/tsconfig.json +18 -0
package/README.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# agent-browser-mcp
|
|
2
|
+
|
|
3
|
+
**[English](README.md)** | [中文](README_ZH.md)
|
|
4
|
+
|
|
5
|
+
MCP (Model Context Protocol) server for [agent-browser](https://github.com/vercel-labs/agent-browser) - headless browser automation for AI agents.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **CDP Remote Connection**: Connect to remote Chrome/Edge browser via Chrome DevTools Protocol
|
|
10
|
+
- **Multiple Transport Modes**: Support both stdio and SSE (Server-Sent Events) transport
|
|
11
|
+
- **YAML Configuration**: Easy-to-read configuration with comments support
|
|
12
|
+
- **Docker Support**: Ready-to-use Dockerfile for containerized deployment
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
### Via npx (Recommended)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Run directly without installation
|
|
20
|
+
npx @coofly/agent-browser-mcp
|
|
21
|
+
|
|
22
|
+
# SSE mode
|
|
23
|
+
npx @coofly/agent-browser-mcp --sse --port 9223
|
|
24
|
+
|
|
25
|
+
# With CDP endpoint
|
|
26
|
+
npx @coofly/agent-browser-mcp --cdp "http://localhost:9222"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### From Source
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Clone the repository
|
|
33
|
+
git clone <repository-url>
|
|
34
|
+
cd agent-browser-mcp
|
|
35
|
+
|
|
36
|
+
# Install dependencies
|
|
37
|
+
npm install
|
|
38
|
+
|
|
39
|
+
# Build
|
|
40
|
+
npm run build
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Configuration
|
|
44
|
+
|
|
45
|
+
Copy the example configuration file:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
cp config.example.yaml config.yaml
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Configuration Options
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
# CDP remote debugging configuration
|
|
55
|
+
cdp:
|
|
56
|
+
enabled: false
|
|
57
|
+
endpoint: "http://10.0.0.20:9222"
|
|
58
|
+
|
|
59
|
+
# MCP server configuration
|
|
60
|
+
server:
|
|
61
|
+
transport: stdio # stdio or sse
|
|
62
|
+
port: 9223
|
|
63
|
+
host: "0.0.0.0"
|
|
64
|
+
|
|
65
|
+
# Browser operation configuration
|
|
66
|
+
browser:
|
|
67
|
+
timeout: 30000
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Usage
|
|
71
|
+
|
|
72
|
+
### Stdio Mode (Default)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npm start
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### SSE Mode
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Via command line
|
|
82
|
+
npm start -- --sse --port 9223
|
|
83
|
+
|
|
84
|
+
# Via environment variables
|
|
85
|
+
MCP_TRANSPORT=sse MCP_PORT=9223 npm start
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### With CDP Remote Browser
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Start Chrome with remote debugging
|
|
92
|
+
chrome --remote-debugging-port=9222
|
|
93
|
+
|
|
94
|
+
# Start MCP server with CDP
|
|
95
|
+
npm start -- --cdp "http://localhost:9222"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### MCP Client Configuration
|
|
99
|
+
|
|
100
|
+
#### Claude Desktop
|
|
101
|
+
|
|
102
|
+
Add to your Claude Desktop configuration file:
|
|
103
|
+
|
|
104
|
+
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
105
|
+
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"agent-browser": {
|
|
111
|
+
"command": "npx",
|
|
112
|
+
"args": ["agent-browser-mcp"]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
With CDP endpoint:
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"mcpServers": {
|
|
123
|
+
"agent-browser": {
|
|
124
|
+
"command": "npx",
|
|
125
|
+
"args": ["agent-browser-mcp", "--cdp", "http://localhost:9222"]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Docker
|
|
132
|
+
|
|
133
|
+
### Build Image
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
docker build -t agent-browser-mcp:latest .
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Run Container
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# SSE mode
|
|
143
|
+
docker run -p 9223:9223 -e MCP_TRANSPORT=sse agent-browser-mcp:latest
|
|
144
|
+
|
|
145
|
+
# With CDP endpoint
|
|
146
|
+
docker run -p 9223:9223 \
|
|
147
|
+
-e MCP_TRANSPORT=sse \
|
|
148
|
+
-e CDP_ENDPOINT=http://host.docker.internal:9222 \
|
|
149
|
+
agent-browser-mcp:latest
|
|
150
|
+
|
|
151
|
+
# With custom config
|
|
152
|
+
docker run -p 9223:9223 \
|
|
153
|
+
-v ./config.yaml:/app/config.yaml \
|
|
154
|
+
agent-browser-mcp:latest
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Available Tools
|
|
158
|
+
|
|
159
|
+
| Tool | Description |
|
|
160
|
+
|------|-------------|
|
|
161
|
+
| `browser_open` | Open a URL |
|
|
162
|
+
| `browser_back` | Navigate back |
|
|
163
|
+
| `browser_forward` | Navigate forward |
|
|
164
|
+
| `browser_reload` | Reload current page |
|
|
165
|
+
| `browser_get_url` | Get current URL |
|
|
166
|
+
| `browser_get_title` | Get page title |
|
|
167
|
+
| `browser_click` | Click an element |
|
|
168
|
+
| `browser_type` | Type text (character by character) |
|
|
169
|
+
| `browser_fill` | Fill input field |
|
|
170
|
+
| `browser_hover` | Hover over element |
|
|
171
|
+
| `browser_press` | Press keyboard key |
|
|
172
|
+
| `browser_select` | Select dropdown option |
|
|
173
|
+
| `browser_snapshot` | Get page accessibility snapshot |
|
|
174
|
+
| `browser_get_text` | Get element text |
|
|
175
|
+
| `browser_get_html` | Get element HTML |
|
|
176
|
+
| `browser_screenshot` | Take screenshot |
|
|
177
|
+
| `browser_scroll` | Scroll page |
|
|
178
|
+
|
|
179
|
+
## Environment Variables
|
|
180
|
+
|
|
181
|
+
| Variable | Description | Default |
|
|
182
|
+
|----------|-------------|---------|
|
|
183
|
+
| `CDP_ENDPOINT` | CDP remote endpoint URL | - |
|
|
184
|
+
| `MCP_TRANSPORT` | Transport mode (stdio/sse) | stdio |
|
|
185
|
+
| `MCP_PORT` | SSE server port | 9223 |
|
|
186
|
+
| `MCP_HOST` | SSE server host | 0.0.0.0 |
|
|
187
|
+
| `BROWSER_TIMEOUT` | Command timeout (ms) | 30000 |
|
|
188
|
+
|
|
189
|
+
## License
|
|
190
|
+
|
|
191
|
+
GPL-3.0
|
package/README_ZH.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# agent-browser-mcp
|
|
2
|
+
|
|
3
|
+
[English](README.md) | **[中文](README_ZH.md)**
|
|
4
|
+
|
|
5
|
+
[agent-browser](https://github.com/vercel-labs/agent-browser) 的 MCP (Model Context Protocol) 服务器 - 为 AI 代理提供无头浏览器自动化能力。
|
|
6
|
+
|
|
7
|
+
## 功能特性
|
|
8
|
+
|
|
9
|
+
- **CDP 远程连接**:通过 Chrome DevTools Protocol 连接远程 Chrome/Edge 浏览器
|
|
10
|
+
- **多传输模式**:支持 stdio 和 SSE (Server-Sent Events) 两种传输方式
|
|
11
|
+
- **YAML 配置**:易读的配置文件格式,支持注释
|
|
12
|
+
- **Docker 支持**:提供 Dockerfile,支持容器化部署
|
|
13
|
+
|
|
14
|
+
## 安装
|
|
15
|
+
|
|
16
|
+
### 通过 npx(推荐)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 直接运行(无需安装)
|
|
20
|
+
npx @coofly/agent-browser-mcp
|
|
21
|
+
|
|
22
|
+
# SSE 模式
|
|
23
|
+
npx @coofly/agent-browser-mcp --sse --port 9223
|
|
24
|
+
|
|
25
|
+
# 连接 CDP
|
|
26
|
+
npx @coofly/agent-browser-mcp --cdp "http://localhost:9222"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 从源码安装
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# 克隆仓库
|
|
33
|
+
git clone <repository-url>
|
|
34
|
+
cd agent-browser-mcp
|
|
35
|
+
|
|
36
|
+
# 安装依赖
|
|
37
|
+
npm install
|
|
38
|
+
|
|
39
|
+
# 编译
|
|
40
|
+
npm run build
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 配置
|
|
44
|
+
|
|
45
|
+
复制示例配置文件:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
cp config.example.yaml config.yaml
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 配置选项
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
# CDP 远程调试配置
|
|
55
|
+
cdp:
|
|
56
|
+
enabled: false
|
|
57
|
+
endpoint: "http://10.0.0.20:9222"
|
|
58
|
+
|
|
59
|
+
# MCP 服务器配置
|
|
60
|
+
server:
|
|
61
|
+
transport: stdio # stdio 或 sse
|
|
62
|
+
port: 9223
|
|
63
|
+
host: "0.0.0.0"
|
|
64
|
+
|
|
65
|
+
# 浏览器操作配置
|
|
66
|
+
browser:
|
|
67
|
+
timeout: 30000
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 使用方法
|
|
71
|
+
|
|
72
|
+
### Stdio 模式(默认)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npm start
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### SSE 模式
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# 命令行参数
|
|
82
|
+
npm start -- --sse --port 9223
|
|
83
|
+
|
|
84
|
+
# 环境变量
|
|
85
|
+
MCP_TRANSPORT=sse MCP_PORT=9223 npm start
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 连接 CDP 远程浏览器
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# 启动带远程调试的 Chrome
|
|
92
|
+
chrome --remote-debugging-port=9222
|
|
93
|
+
|
|
94
|
+
# 启动 MCP 服务器并连接 CDP
|
|
95
|
+
npm start -- --cdp "http://localhost:9222"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### MCP 客户端配置
|
|
99
|
+
|
|
100
|
+
#### Claude Desktop
|
|
101
|
+
|
|
102
|
+
添加到 Claude Desktop 配置文件:
|
|
103
|
+
|
|
104
|
+
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
105
|
+
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"agent-browser": {
|
|
111
|
+
"command": "npx",
|
|
112
|
+
"args": ["agent-browser-mcp"]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
连接 CDP 端点:
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"mcpServers": {
|
|
123
|
+
"agent-browser": {
|
|
124
|
+
"command": "npx",
|
|
125
|
+
"args": ["agent-browser-mcp", "--cdp", "http://localhost:9222"]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Docker
|
|
132
|
+
|
|
133
|
+
### 构建镜像
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
docker build -t agent-browser-mcp:latest .
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### 运行容器
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# SSE 模式
|
|
143
|
+
docker run -p 9223:9223 -e MCP_TRANSPORT=sse agent-browser-mcp:latest
|
|
144
|
+
|
|
145
|
+
# 指定 CDP 端点
|
|
146
|
+
docker run -p 9223:9223 \
|
|
147
|
+
-e MCP_TRANSPORT=sse \
|
|
148
|
+
-e CDP_ENDPOINT=http://host.docker.internal:9222 \
|
|
149
|
+
agent-browser-mcp:latest
|
|
150
|
+
|
|
151
|
+
# 挂载自定义配置
|
|
152
|
+
docker run -p 9223:9223 \
|
|
153
|
+
-v ./config.yaml:/app/config.yaml \
|
|
154
|
+
agent-browser-mcp:latest
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 可用工具
|
|
158
|
+
|
|
159
|
+
| 工具 | 描述 |
|
|
160
|
+
|------|------|
|
|
161
|
+
| `browser_open` | 打开 URL |
|
|
162
|
+
| `browser_back` | 后退 |
|
|
163
|
+
| `browser_forward` | 前进 |
|
|
164
|
+
| `browser_reload` | 刷新页面 |
|
|
165
|
+
| `browser_get_url` | 获取当前 URL |
|
|
166
|
+
| `browser_get_title` | 获取页面标题 |
|
|
167
|
+
| `browser_click` | 点击元素 |
|
|
168
|
+
| `browser_type` | 输入文本(逐字符) |
|
|
169
|
+
| `browser_fill` | 填充输入框 |
|
|
170
|
+
| `browser_hover` | 悬停元素 |
|
|
171
|
+
| `browser_press` | 按下键盘按键 |
|
|
172
|
+
| `browser_select` | 选择下拉选项 |
|
|
173
|
+
| `browser_snapshot` | 获取页面可访问性快照 |
|
|
174
|
+
| `browser_get_text` | 获取元素文本 |
|
|
175
|
+
| `browser_get_html` | 获取元素 HTML |
|
|
176
|
+
| `browser_screenshot` | 截图 |
|
|
177
|
+
| `browser_scroll` | 滚动页面 |
|
|
178
|
+
|
|
179
|
+
## 环境变量
|
|
180
|
+
|
|
181
|
+
| 变量 | 描述 | 默认值 |
|
|
182
|
+
|------|------|--------|
|
|
183
|
+
| `CDP_ENDPOINT` | CDP 远程端点 URL | - |
|
|
184
|
+
| `MCP_TRANSPORT` | 传输模式 (stdio/sse) | stdio |
|
|
185
|
+
| `MCP_PORT` | SSE 服务器端口 | 9223 |
|
|
186
|
+
| `MCP_HOST` | SSE 服务器地址 | 0.0.0.0 |
|
|
187
|
+
| `BROWSER_TIMEOUT` | 命令超时时间 (毫秒) | 30000 |
|
|
188
|
+
|
|
189
|
+
## 许可证
|
|
190
|
+
|
|
191
|
+
GPL-3.0
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# agent-browser-mcp 配置文件
|
|
2
|
+
# 复制此文件为 config.yaml 并根据需要修改
|
|
3
|
+
|
|
4
|
+
# ===================
|
|
5
|
+
# CDP 远程调试配置
|
|
6
|
+
# ===================
|
|
7
|
+
cdp:
|
|
8
|
+
# 是否启用 CDP 远程连接
|
|
9
|
+
# 启用后将连接到远程 Chrome/Edge 浏览器实例
|
|
10
|
+
enabled: false
|
|
11
|
+
|
|
12
|
+
# CDP 远程端点地址
|
|
13
|
+
# 格式: http://<host>:<port>
|
|
14
|
+
# 示例: http://10.0.0.20:9222
|
|
15
|
+
#
|
|
16
|
+
# 如何启动支持 CDP 的浏览器:
|
|
17
|
+
# Chrome: chrome --remote-debugging-port=9222
|
|
18
|
+
# Edge: msedge --remote-debugging-port=9222
|
|
19
|
+
endpoint: "http://10.0.0.20:9222"
|
|
20
|
+
|
|
21
|
+
# ===================
|
|
22
|
+
# MCP 服务器配置
|
|
23
|
+
# ===================
|
|
24
|
+
server:
|
|
25
|
+
# 传输模式
|
|
26
|
+
# - stdio: 标准输入输出模式(默认,用于 Claude Desktop 等)
|
|
27
|
+
# - sse: HTTP/SSE 模式(用于 Web 客户端或远程访问)
|
|
28
|
+
transport: stdio
|
|
29
|
+
|
|
30
|
+
# SSE 模式下的监听端口
|
|
31
|
+
port: 9223
|
|
32
|
+
|
|
33
|
+
# SSE 模式下的监听地址
|
|
34
|
+
# - 0.0.0.0: 监听所有网络接口(允许远程访问)
|
|
35
|
+
# - 127.0.0.1: 仅本地访问
|
|
36
|
+
host: "0.0.0.0"
|
|
37
|
+
|
|
38
|
+
# ===================
|
|
39
|
+
# 浏览器操作配置
|
|
40
|
+
# ===================
|
|
41
|
+
browser:
|
|
42
|
+
# 命令执行超时时间(毫秒)
|
|
43
|
+
# 建议值: 30000-60000
|
|
44
|
+
timeout: 30000
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 配置接口定义
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* CDP 配置
|
|
6
|
+
*/
|
|
7
|
+
export interface CdpConfig {
|
|
8
|
+
/** 是否启用 CDP 远程连接 */
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/** CDP 远程端点地址,如 http://10.0.0.20:9222 */
|
|
11
|
+
endpoint: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 服务器配置
|
|
15
|
+
*/
|
|
16
|
+
export interface ServerConfig {
|
|
17
|
+
/** 传输模式: stdio 或 sse */
|
|
18
|
+
transport: 'stdio' | 'sse';
|
|
19
|
+
/** SSE 模式下的端口号 */
|
|
20
|
+
port: number;
|
|
21
|
+
/** SSE 模式下的监听地址 */
|
|
22
|
+
host: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 浏览器配置
|
|
26
|
+
*/
|
|
27
|
+
export interface BrowserConfig {
|
|
28
|
+
/** 命令执行超时时间(毫秒) */
|
|
29
|
+
timeout: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 完整配置接口
|
|
33
|
+
*/
|
|
34
|
+
export interface AppConfig {
|
|
35
|
+
cdp: CdpConfig;
|
|
36
|
+
server: ServerConfig;
|
|
37
|
+
browser: BrowserConfig;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 默认配置
|
|
41
|
+
*/
|
|
42
|
+
export declare const defaultConfig: AppConfig;
|
|
43
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,SAa3B,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 配置接口定义
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 默认配置
|
|
6
|
+
*/
|
|
7
|
+
export const defaultConfig = {
|
|
8
|
+
cdp: {
|
|
9
|
+
enabled: false,
|
|
10
|
+
endpoint: '',
|
|
11
|
+
},
|
|
12
|
+
server: {
|
|
13
|
+
transport: 'stdio',
|
|
14
|
+
port: 9223,
|
|
15
|
+
host: '0.0.0.0',
|
|
16
|
+
},
|
|
17
|
+
browser: {
|
|
18
|
+
timeout: 30000,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyCH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,GAAG,EAAE;QACH,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,EAAE;KACb;IACD,MAAM,EAAE;QACN,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;KAChB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;KACf;CACF,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { startServer } from './server.js';
|
|
3
|
+
import { getConfig } from './utils/configLoader.js';
|
|
4
|
+
// 加载配置并显示启动信息
|
|
5
|
+
const config = getConfig();
|
|
6
|
+
console.error('[agent-browser-mcp] 启动中...');
|
|
7
|
+
console.error(`[配置] 传输模式: ${config.server.transport}`);
|
|
8
|
+
if (config.cdp.enabled) {
|
|
9
|
+
console.error(`[配置] CDP 端点: ${config.cdp.endpoint}`);
|
|
10
|
+
}
|
|
11
|
+
startServer().catch((error) => {
|
|
12
|
+
console.error('服务器启动失败:', error);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,cAAc;AACd,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC5C,OAAO,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* 创建并启动 MCP 服务器
|
|
4
|
+
*/
|
|
5
|
+
export declare function createServer(): Promise<Server<{
|
|
6
|
+
method: string;
|
|
7
|
+
params?: {
|
|
8
|
+
[x: string]: unknown;
|
|
9
|
+
_meta?: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
progressToken?: string | number | undefined;
|
|
12
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
13
|
+
taskId: string;
|
|
14
|
+
} | undefined;
|
|
15
|
+
} | undefined;
|
|
16
|
+
} | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
method: string;
|
|
19
|
+
params?: {
|
|
20
|
+
[x: string]: unknown;
|
|
21
|
+
_meta?: {
|
|
22
|
+
[x: string]: unknown;
|
|
23
|
+
progressToken?: string | number | undefined;
|
|
24
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
25
|
+
taskId: string;
|
|
26
|
+
} | undefined;
|
|
27
|
+
} | undefined;
|
|
28
|
+
} | undefined;
|
|
29
|
+
}, {
|
|
30
|
+
[x: string]: unknown;
|
|
31
|
+
_meta?: {
|
|
32
|
+
[x: string]: unknown;
|
|
33
|
+
progressToken?: string | number | undefined;
|
|
34
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
35
|
+
taskId: string;
|
|
36
|
+
} | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
}>>;
|
|
39
|
+
/**
|
|
40
|
+
* 启动服务器
|
|
41
|
+
*/
|
|
42
|
+
export declare function startServer(): Promise<void>;
|
|
43
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAsPnE;;GAEG;AACH,wBAAsB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwBjC;AAED;;GAEG;AACH,wBAAsB,WAAW,kBAgBhC"}
|