@bsbofmusic/agent-reach-mcp 0.4.1 → 1.2.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/CHANGELOG.md +90 -0
- package/README.md +306 -130
- package/THIRD_PARTY_NOTICES.md +95 -0
- package/index.js +969 -230
- package/package.json +40 -22
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.2.0] - 2025-02-27
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Docker auto-install**: Bootstrap 时自动安装 Docker Desktop (winget/chocolatey/brew)
|
|
13
|
+
- **Douyin (抖音) support**: 新增 `reach_search_douyin` 工具,解析抖音分享链接
|
|
14
|
+
- **Douyin MCP container**: 自动启动 douyin-mcp-server 容器
|
|
15
|
+
- **Full platform coverage**: 完整支持所有 12 个平台渠道
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- **ensureDockerContainers**: Docker 未安装时自动尝试安装,而非跳过
|
|
20
|
+
- **reach_version**: 显示 Docker 状态和容器运行状态
|
|
21
|
+
- **reach_doctor**: 输出 Docker 安装建议
|
|
22
|
+
|
|
23
|
+
### Improved
|
|
24
|
+
|
|
25
|
+
- **One-click deployment**: 真正实现一键部署,包括 Docker 依赖
|
|
26
|
+
- **Platform parity**: MCP 版本功能完全对齐 GitHub 原版
|
|
27
|
+
|
|
28
|
+
## [1.1.0] - 2025-02-27
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- **Auto-install npm packages**: Bootstrap 时自动安装 bird、mcporter
|
|
33
|
+
- **Docker container management**: 自动检测并启动 xiaohongshu-mcp 容器
|
|
34
|
+
- **gh CLI auto-install**: Windows (winget) 和 macOS (brew) 自动安装 GitHub CLI
|
|
35
|
+
- **npx fallback**: 使用 `npx -y` 运行 bird/mcporter,无需全局 PATH 配置
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
|
|
39
|
+
- **reach_search_twitter**: 使用 `npx @steipete/bird` 替代直接调用
|
|
40
|
+
- **reach_search_xhs/web**: 使用 `npx mcporter` 替代直接调用
|
|
41
|
+
- **reach_version**: 显示所有依赖安装状态
|
|
42
|
+
- **detectEnvironment**: 使用 npx 检测 bird/mcporter
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
|
|
46
|
+
- **Windows PATH issue**: npm 全局包不在 PATH 时仍可通过 npx 运行
|
|
47
|
+
- **Bootstrap timing**: 正确初始化所有依赖
|
|
48
|
+
|
|
49
|
+
## [1.0.0] - 2025-02-27
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
|
|
53
|
+
- **Bootstrap Ensure**: MCP 启动时自动检测环境、安装依赖、执行 smoke test
|
|
54
|
+
- **Concurrent Protection**: 使用 lockfile 防止并发 ensure 踩踏
|
|
55
|
+
- **Structured Logging**: 步骤、耗时、stdout/stderr、错误分类记录
|
|
56
|
+
- **nextSteps**: 所有失败场景输出可执行修复建议
|
|
57
|
+
- **Environment Detection**: 自动检测 OS、Python、Node.js、网络、磁盘空间
|
|
58
|
+
- **Graceful Degradation**: Bootstrap 失败时 MCP 仍可启动,工具返回明确错误
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
|
|
62
|
+
- **reach_doctor**: 增加 nextSteps 修复建议
|
|
63
|
+
- **reach_version**: 增加 bootstrap 状态显示
|
|
64
|
+
- **reach_search_***: 增加依赖预检查,缺失时返回 nextSteps
|
|
65
|
+
- **Error Output**: 所有错误包含结构化信息
|
|
66
|
+
|
|
67
|
+
### Improved
|
|
68
|
+
|
|
69
|
+
- Windows 兼容性:spawn 命令使用 shell 模式
|
|
70
|
+
- 日志输出:支持 LOG_LEVEL 环境变量控制
|
|
71
|
+
- 原子更新:runtime 目录结构支持未来实现 atomic 策略
|
|
72
|
+
|
|
73
|
+
## [0.4.1] - 2025-02-26
|
|
74
|
+
|
|
75
|
+
### Added
|
|
76
|
+
|
|
77
|
+
- Initial MCP wrapper for Agent-Reach
|
|
78
|
+
- 5 core tools: ensure, doctor, exec, list_commands, version
|
|
79
|
+
- Auto-update mechanism
|
|
80
|
+
- Platform channel support: YouTube, Twitter, Reddit, GitHub, Bilibili, XiaoHongShu
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Roadmap
|
|
85
|
+
|
|
86
|
+
- [ ] Atomic update strategy (runtime_staging / runtime_active)
|
|
87
|
+
- [ ] Docker fallback for complex dependencies
|
|
88
|
+
- [ ] Proxy auto-detection
|
|
89
|
+
- [ ] Cache invalidation on upgrade
|
|
90
|
+
- [ ] Telemetry (opt-in)
|
package/README.md
CHANGED
|
@@ -1,117 +1,156 @@
|
|
|
1
1
|
# Agent-Reach MCP
|
|
2
2
|
|
|
3
|
-
> ✅
|
|
3
|
+
> ✅ One-click enable | ✅ Full capability (exec) | ✅ Self-discovery (list) | ✅ Auto-update | ✅ Diagnosable (doctor) | ✅ Bootstrap self-healing
|
|
4
4
|
|
|
5
|
-
MCP (stdio) server that provides full access to [Agent-Reach](https://github.com/Panniantong/Agent-Reach) for OpenCode /
|
|
5
|
+
MCP (stdio) server that provides full access to [Agent-Reach](https://github.com/Panniantong/Agent-Reach) for OpenCode / Claude Code / Cursor.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Wrapper Notice
|
|
10
|
+
|
|
11
|
+
This project is an MCP wrapper for **Agent-Reach**, enabling its functionality through the MCP protocol.
|
|
12
|
+
|
|
13
|
+
- **Upstream Project**: [Agent-Reach](https://github.com/Panniantong/Agent-Reach)
|
|
14
|
+
- **This is NOT an official release** of Agent-Reach
|
|
15
|
+
- Upstream project name, trademark, and copyright belong to their respective owners
|
|
16
|
+
- Upstream project is licensed under MIT; see [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
### One-Click Enable (Recommended)
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"command": ["node", "FULL_PATH_TO_INDEX_JS"],
|
|
27
|
+
"type": "stdio"
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or via npx (may have Windows JScript issues):
|
|
8
32
|
|
|
9
33
|
```json
|
|
10
34
|
{
|
|
11
|
-
"command": "npx",
|
|
12
|
-
"args": ["-y", "@bsbofmusic/agent-reach-mcp@latest"],
|
|
35
|
+
"command": ["npx", "-y", "@bsbofmusic/agent-reach-mcp@latest"],
|
|
13
36
|
"type": "stdio"
|
|
14
37
|
}
|
|
15
38
|
```
|
|
16
39
|
|
|
17
|
-
|
|
40
|
+
### What happens on enable:
|
|
41
|
+
|
|
42
|
+
1. 🔍 Environment detection (OS, Python, Node.js, network)
|
|
43
|
+
2. 📦 Auto-install Python venv
|
|
44
|
+
3. 🔄 Auto-install/upgrade Agent-Reach to latest
|
|
45
|
+
4. 🐳 Auto-install Docker Desktop (Windows: winget/choco, macOS: brew)
|
|
46
|
+
5. ✅ Smoke test verification
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## What is Agent-Reach?
|
|
51
|
+
|
|
52
|
+
Agent-Reach gives your AI Agent "eyes to see the entire internet". Read and search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
|
|
18
53
|
|
|
19
|
-
|
|
54
|
+
| Platform | Feature | Status |
|
|
55
|
+
|----------|---------|--------|
|
|
56
|
+
| 🌐 Web Pages | Jina Reader (any URL) | ✅ Ready |
|
|
57
|
+
| 📺 YouTube | Transcript + video search | ✅ Ready |
|
|
58
|
+
| 📡 RSS | Read any RSS/Atom feed | ✅ Ready |
|
|
59
|
+
| 🐦 Twitter/X | Read tweets, search | ⚙️ Needs bird CLI |
|
|
60
|
+
| 📖 Reddit | Search, read posts/comments | ⚙️ Needs proxy |
|
|
61
|
+
| 📦 GitHub | Read repos, search | ⚙️ Needs gh CLI |
|
|
62
|
+
| 📺 Bilibili | Transcript + search | ⚙️ Needs proxy |
|
|
63
|
+
| 📕 XiaoHongShu | Search, read notes | ⚙️ Needs Docker |
|
|
64
|
+
| 🎵 Douyin | Parse video, get download URL | ⚙️ Needs Docker |
|
|
65
|
+
| 🔍 Web Search | Exa AI semantic search | ⚙️ Needs mcporter |
|
|
20
66
|
|
|
21
|
-
|
|
22
|
-
|------|------|
|
|
23
|
-
| 🌐 网页 | Jina Reader 读取任意网页 |
|
|
24
|
-
| 📺 YouTube | 字幕提取 + 视频搜索 |
|
|
25
|
-
| 🐦 Twitter/X | 读取推文、搜索 |
|
|
26
|
-
| 📖 Reddit | 搜索、读取帖子评论 |
|
|
27
|
-
| 📦 GitHub | 读取公开仓库、搜索 |
|
|
28
|
-
| 📺 Bilibili | 字幕提取 + 搜索 |
|
|
29
|
-
| 📕 小红书 | 搜索、阅读 |
|
|
30
|
-
| 🔍 全网搜索 | Exa AI 语义搜索 |
|
|
67
|
+
---
|
|
31
68
|
|
|
32
|
-
## 5
|
|
69
|
+
## 5 Core Tools (Required)
|
|
33
70
|
|
|
34
|
-
|
|
|
35
|
-
|
|
36
|
-
| `reach_ensure` | ✅
|
|
37
|
-
| `reach_doctor` | ✅
|
|
38
|
-
| `reach_exec` | ✅
|
|
39
|
-
| `reach_list_commands` | ✅
|
|
40
|
-
| `reach_version` | ✅
|
|
71
|
+
| Tool | Description |
|
|
72
|
+
|------|-------------|
|
|
73
|
+
| `reach_ensure` | ✅ Full self-healing: reinstall/upgrade + auto-install deps |
|
|
74
|
+
| `reach_doctor` | ✅ Diagnose all platform channels + output nextSteps |
|
|
75
|
+
| `reach_exec` | ✅ Universal entry - perfect replica of all features |
|
|
76
|
+
| `reach_list_commands` | ✅ Self-discovery - list all subcommands |
|
|
77
|
+
| `reach_version` | ✅ Version info + bootstrap status |
|
|
41
78
|
|
|
42
|
-
|
|
79
|
+
---
|
|
43
80
|
|
|
44
|
-
|
|
81
|
+
## Complete Tool List
|
|
45
82
|
|
|
46
|
-
|
|
47
|
-
|------|------|
|
|
48
|
-
| `reach_ensure` | 确保 venv 存在并升级到最新 Agent-Reach |
|
|
49
|
-
| `reach_doctor` | 诊断所有平台渠道状态 |
|
|
50
|
-
| `reach_version` | 显示 MCP + Agent-Reach 版本 |
|
|
51
|
-
| `reach_check_update` | 检查 GitHub 是否有新版本 |
|
|
52
|
-
| `reach_watch` | 快速健康检查(适合定时任务) |
|
|
53
|
-
| `reach_list_commands` | 列出所有可用子命令 |
|
|
83
|
+
### Core
|
|
54
84
|
|
|
55
|
-
|
|
85
|
+
| Tool | Description |
|
|
86
|
+
|------|-------------|
|
|
87
|
+
| `reach_ensure` | Ensure venv exists, upgrade to latest Agent-Reach |
|
|
88
|
+
| `reach_doctor` | Diagnose all platform channels, output nextSteps |
|
|
89
|
+
| `reach_version` | Show MCP + Agent-Reach version + bootstrap status |
|
|
90
|
+
| `reach_check_update` | Check for new versions on GitHub |
|
|
91
|
+
| `reach_watch` | Quick health check (for cron tasks) |
|
|
92
|
+
| `reach_list_commands` | List all available subcommands |
|
|
56
93
|
|
|
57
|
-
|
|
58
|
-
|------|------|
|
|
59
|
-
| `reach_install` | 安装系统依赖(gh CLI, Node.js, bird, mcporter) |
|
|
60
|
-
| `reach_configure` | 设置配置(proxy, token, cookies) |
|
|
61
|
-
| `reach_setup` | 交互式配置向导 |
|
|
94
|
+
### Install & Configure
|
|
62
95
|
|
|
63
|
-
|
|
96
|
+
| Tool | Description |
|
|
97
|
+
|------|-------------|
|
|
98
|
+
| `reach_install` | Install system dependencies (gh CLI, bird, mcporter) |
|
|
99
|
+
| `reach_configure` | Set config (proxy, token, cookies) |
|
|
100
|
+
| `reach_setup` | Interactive configuration wizard |
|
|
64
101
|
|
|
65
|
-
|
|
66
|
-
|------|------|
|
|
67
|
-
| `reach_read` | 读取任意 URL |
|
|
68
|
-
| `reach_search_twitter` | 搜索 Twitter |
|
|
69
|
-
| `reach_search_xhs` | 搜索小红书 |
|
|
70
|
-
| `reach_search_web` | 全网搜索(Exa) |
|
|
71
|
-
| `reach_search_github` | 搜索 GitHub |
|
|
102
|
+
### Read & Search
|
|
72
103
|
|
|
73
|
-
|
|
104
|
+
| Tool | Description |
|
|
105
|
+
|------|-------------|
|
|
106
|
+
| `reach_read` | Read any URL (Jina Reader) |
|
|
107
|
+
| `reach_search_twitter` | Search Twitter (needs bird CLI) |
|
|
108
|
+
| `reach_search_xhs` | Search XiaoHongShu (needs mcporter) |
|
|
109
|
+
| `reach_search_douyin` | Parse Douyin video (needs mcporter) |
|
|
110
|
+
| `reach_search_web` | Web search (Exa) |
|
|
111
|
+
| `reach_search_github` | Search GitHub (needs gh CLI) |
|
|
74
112
|
|
|
75
|
-
|
|
76
|
-
|------|------|
|
|
77
|
-
| `reach_exec` | 🔧 万能入口 - 执行任意子命令 |
|
|
113
|
+
### Advanced
|
|
78
114
|
|
|
79
|
-
|
|
115
|
+
| Tool | Description |
|
|
116
|
+
|------|-------------|
|
|
117
|
+
| `reach_exec` | 🔧 Universal entry - execute any subcommand |
|
|
80
118
|
|
|
81
|
-
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Usage Examples
|
|
122
|
+
|
|
123
|
+
### First Use (Auto Bootstrap)
|
|
82
124
|
|
|
83
125
|
```json
|
|
84
126
|
{
|
|
85
|
-
"name": "
|
|
86
|
-
"arguments": { "env": "auto" }
|
|
127
|
+
"name": "reach_ensure"
|
|
87
128
|
}
|
|
88
129
|
```
|
|
89
130
|
|
|
90
|
-
|
|
131
|
+
**Example Output**:
|
|
132
|
+
```
|
|
133
|
+
# reach_ensure Result
|
|
91
134
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
135
|
+
Status: ✅ Success
|
|
136
|
+
|
|
137
|
+
## Execution Log
|
|
138
|
+
- venv_check: OK (0ms)
|
|
139
|
+
- upgrade_pip: OK (2341ms)
|
|
140
|
+
- install_agent_reach: OK (5678ms)
|
|
141
|
+
|
|
142
|
+
Version: 1.2.0
|
|
100
143
|
```
|
|
101
144
|
|
|
102
|
-
###
|
|
145
|
+
### Diagnosis
|
|
103
146
|
|
|
104
147
|
```json
|
|
105
148
|
{
|
|
106
|
-
"name": "
|
|
107
|
-
"arguments": {
|
|
108
|
-
"key": "proxy",
|
|
109
|
-
"value": "http://user:pass@ip:port"
|
|
110
|
-
}
|
|
149
|
+
"name": "reach_doctor"
|
|
111
150
|
}
|
|
112
151
|
```
|
|
113
152
|
|
|
114
|
-
###
|
|
153
|
+
### Read Web Page
|
|
115
154
|
|
|
116
155
|
```json
|
|
117
156
|
{
|
|
@@ -120,7 +159,7 @@ Agent-Reach 让你的 AI Agent 拥有"互联网之眼"。读取和搜索 Twitter
|
|
|
120
159
|
}
|
|
121
160
|
```
|
|
122
161
|
|
|
123
|
-
###
|
|
162
|
+
### Search Twitter
|
|
124
163
|
|
|
125
164
|
```json
|
|
126
165
|
{
|
|
@@ -129,105 +168,242 @@ Agent-Reach 让你的 AI Agent 拥有"互联网之眼"。读取和搜索 Twitter
|
|
|
129
168
|
}
|
|
130
169
|
```
|
|
131
170
|
|
|
132
|
-
###
|
|
171
|
+
### Universal Entry
|
|
133
172
|
|
|
134
173
|
```json
|
|
135
174
|
{
|
|
136
|
-
"name": "
|
|
137
|
-
"arguments": {
|
|
175
|
+
"name": "reach_exec",
|
|
176
|
+
"arguments": {
|
|
177
|
+
"subcommand": "doctor",
|
|
178
|
+
"skipUpdate": false
|
|
179
|
+
}
|
|
138
180
|
}
|
|
139
181
|
```
|
|
140
182
|
|
|
141
|
-
###
|
|
183
|
+
### Self-Discovery
|
|
142
184
|
|
|
143
185
|
```json
|
|
144
186
|
{
|
|
145
|
-
"name": "
|
|
146
|
-
"arguments": {
|
|
147
|
-
"subcommand": "doctor"
|
|
148
|
-
}
|
|
187
|
+
"name": "reach_list_commands"
|
|
149
188
|
}
|
|
150
189
|
```
|
|
151
190
|
|
|
152
|
-
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Auto-Update Strategy
|
|
153
194
|
|
|
154
|
-
|
|
195
|
+
**Default**: Lightweight `ensureLatest()` before each tool call
|
|
155
196
|
|
|
156
|
-
|
|
157
|
-
2. 执行 `pip install -U https://github.com/Panniantong/agent-reach/archive/main.zip`
|
|
158
|
-
3. 然后运行目标命令
|
|
197
|
+
### Environment Variables
|
|
159
198
|
|
|
160
|
-
|
|
199
|
+
| Variable | Default | Description |
|
|
200
|
+
|----------|---------|-------------|
|
|
201
|
+
| `ALWAYS_LATEST` | `1` | Auto-update enabled |
|
|
202
|
+
| `UPDATE_STRATEGY` | `simple` | Update strategy (simple/atomic) |
|
|
203
|
+
| `NETWORK_REQUIRED` | `1` | Network required |
|
|
204
|
+
| `AUTO_INSTALL_DEPS` | `1` | Auto-install dependencies |
|
|
205
|
+
| `AUTO_START_DOCKER` | `1` | Auto-start Docker containers |
|
|
206
|
+
| `CACHE_DIR` | System cache | Cache location |
|
|
207
|
+
| `RUNTIME_DIR` | System cache/runtime | Runtime directory |
|
|
208
|
+
| `LOG_LEVEL` | `info` | Log level (error/info/debug) |
|
|
161
209
|
|
|
162
|
-
|
|
210
|
+
### Update Flow
|
|
163
211
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
-
|
|
212
|
+
1. Check if venv exists
|
|
213
|
+
2. Check bootstrap timestamp
|
|
214
|
+
3. Run `pip install -U https://github.com/Panniantong/agent-reach/archive/main.zip`
|
|
215
|
+
4. Run smoke test
|
|
216
|
+
5. Record bootstrap timestamp
|
|
167
217
|
|
|
168
|
-
|
|
218
|
+
**Failure handling**: Update failure won't break existing version, returns nextSteps for fix.
|
|
169
219
|
|
|
170
|
-
|
|
171
|
-
- macOS: `~/Library/Caches/agent-reach-mcp/runtime/venv`
|
|
172
|
-
- Linux: `~/.cache/agent-reach-mcp/runtime/venv`
|
|
220
|
+
---
|
|
173
221
|
|
|
174
|
-
##
|
|
222
|
+
## Environment Requirements
|
|
175
223
|
|
|
176
|
-
|
|
177
|
-
|------|------|
|
|
178
|
-
| Twitter | bird CLI + twitter-cookies |
|
|
179
|
-
| 小红书 | mcporter + docker xiaohongshu-mcp |
|
|
180
|
-
| Reddit | 代理(服务器 IP 被封) |
|
|
181
|
-
| Bilibili | 代理(服务器 IP 被封) |
|
|
182
|
-
| 全网搜索 | 配置 Exa MCP |
|
|
183
|
-
| GitHub | gh CLI(可选,提高速率限制) |
|
|
224
|
+
### Auto-Detection on Start
|
|
184
225
|
|
|
185
|
-
|
|
226
|
+
- OS / CPU architecture
|
|
227
|
+
- Python version (requires 3.10+)
|
|
228
|
+
- Node.js version
|
|
229
|
+
- Network availability
|
|
230
|
+
- Disk space
|
|
186
231
|
|
|
187
|
-
|
|
188
|
-
2. **配置**: `reach_configure` 配置 Twitter cookies、代理等
|
|
189
|
-
3. **诊断**: `reach_doctor` 检查渠道状态
|
|
190
|
-
4. **发现**: `reach_list_commands` 查看可用命令
|
|
191
|
-
5. **使用**: 使用搜索/读取工具或 `reach_exec`
|
|
232
|
+
### Runtime Directories
|
|
192
233
|
|
|
193
|
-
|
|
234
|
+
| Platform | Directory |
|
|
235
|
+
|----------|-----------|
|
|
236
|
+
| Windows | `%LOCALAPPDATA%\agent-reach-mcp\` |
|
|
237
|
+
| macOS | `~/Library/Caches/agent-reach-mcp/` |
|
|
238
|
+
| Linux | `~/.cache/agent-reach-mcp/` |
|
|
194
239
|
|
|
195
|
-
|
|
240
|
+
---
|
|
196
241
|
|
|
197
|
-
|
|
198
|
-
- [ ] 仅通过 CC-Switch 启用 MCP
|
|
199
|
-
- [ ] 重启 OpenCode
|
|
200
|
-
- [ ] 直接调用 `reach_ensure` 成功
|
|
201
|
-
- [ ] 不需要手动安装任何依赖
|
|
242
|
+
## Recommended Workflow
|
|
202
243
|
|
|
203
|
-
|
|
244
|
+
1. **Enable MCP** → Auto bootstrap
|
|
245
|
+
2. **Diagnose**: `reach_doctor` to see channel status
|
|
246
|
+
3. **Discover**: `reach_list_commands` to see available commands
|
|
247
|
+
4. **Configure**: `reach_configure` for cookies/proxy
|
|
248
|
+
5. **Use**: Search/read tools or `reach_exec`
|
|
204
249
|
|
|
205
|
-
|
|
206
|
-
- [ ] `reach_list_commands` 输出与原工具 `--help` 一致
|
|
207
|
-
- [ ] 新增功能无需改 MCP 即可通过 exec 使用
|
|
250
|
+
---
|
|
208
251
|
|
|
209
|
-
|
|
252
|
+
## Verification Matrix
|
|
210
253
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
-
|
|
254
|
+
### A. One-Click Deployment ✅
|
|
255
|
+
|
|
256
|
+
**Target**: Just enable MCP, auto-collect and install dependencies
|
|
257
|
+
|
|
258
|
+
**Steps**:
|
|
259
|
+
```bash
|
|
260
|
+
# 1. Clear cache
|
|
261
|
+
rm -rf ~/Library/Caches/agent-reach-mcp # macOS
|
|
262
|
+
rd /s /q %LOCALAPPDATA%\agent-reach-mcp # Windows
|
|
214
263
|
|
|
215
|
-
|
|
264
|
+
# 2. Restart MCP
|
|
216
265
|
|
|
217
|
-
|
|
218
|
-
|
|
266
|
+
# 3. Call version check
|
|
267
|
+
reach_version
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Expected Output (Success)**:
|
|
271
|
+
```
|
|
272
|
+
=== Agent-Reach MCP Version Info ===
|
|
273
|
+
|
|
274
|
+
MCP Version: 1.2.0
|
|
275
|
+
Agent-Reach Version: 1.2.0
|
|
276
|
+
Bootstrap Status: ✅ OK
|
|
277
|
+
Update Strategy: simple (alwaysLatest: true)
|
|
278
|
+
Runtime Dir: /Users/xxx/Library/Caches/agent-reach-mcp/runtime
|
|
279
|
+
```
|
|
219
280
|
|
|
220
|
-
|
|
281
|
+
### B. Perfect Replica Verification ✅
|
|
282
|
+
|
|
283
|
+
**Target**: No capability loss after wrapping
|
|
284
|
+
|
|
285
|
+
**Verification Commands**:
|
|
286
|
+
```json
|
|
287
|
+
{"name": "reach_exec", "arguments": {"subcommand": "version"}}
|
|
288
|
+
{"name": "reach_exec", "arguments": {"subcommand": "doctor"}}
|
|
289
|
+
{"name": "reach_exec", "arguments": {"subcommand": "check-update", "skipUpdate": true}}
|
|
290
|
+
{"name": "reach_exec", "arguments": {"subcommand": "watch"}}
|
|
291
|
+
{"name": "reach_exec", "arguments": {"subcommand": "setup"}}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**Criteria**: All commands execute successfully, output matches original CLI
|
|
295
|
+
|
|
296
|
+
### C. Stability Verification ✅
|
|
297
|
+
|
|
298
|
+
**Target**: Self-check / Self-healing / Clear errors / Observable logs
|
|
299
|
+
|
|
300
|
+
**Steps**:
|
|
301
|
+
1. Call `reach_doctor` → Check output includes nextSteps
|
|
302
|
+
2. Break venv → Call `reach_ensure` → Confirm fix
|
|
303
|
+
3. Call non-existent command → Check error output
|
|
304
|
+
|
|
305
|
+
### D. Auto-Update Verification ✅
|
|
306
|
+
|
|
307
|
+
**Target**: Upgrade to latest on each call
|
|
308
|
+
|
|
309
|
+
**Steps**:
|
|
310
|
+
1. Call `reach_version` to record version
|
|
311
|
+
2. Wait for upstream update
|
|
312
|
+
3. Call any tool again
|
|
313
|
+
4. Check if `reach_version` updated
|
|
314
|
+
|
|
315
|
+
### E. Deploy-Ready Verification ✅
|
|
316
|
+
|
|
317
|
+
**Target**: Auto-recover after Agent restart
|
|
318
|
+
|
|
319
|
+
**Steps**:
|
|
320
|
+
1. Enable MCP
|
|
321
|
+
2. Restart Agent
|
|
322
|
+
3. Call any tool
|
|
323
|
+
4. Confirm no manual action needed
|
|
324
|
+
|
|
325
|
+
### F. Failure Scenarios
|
|
326
|
+
|
|
327
|
+
| Scenario | Trigger | Expected nextSteps |
|
|
328
|
+
|----------|---------|-------------------|
|
|
329
|
+
| No network | Close network | Check network connection |
|
|
330
|
+
| No Python | Remove from PATH | Install Python 3.10+ |
|
|
331
|
+
| venv corrupted | Delete venv dir | reach_ensure will rebuild |
|
|
332
|
+
| bird not installed | reach_search_twitter | npm install -g @steipete/bird |
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Troubleshooting
|
|
337
|
+
|
|
338
|
+
### Python Missing
|
|
339
|
+
|
|
340
|
+
**Cause**: Python not installed
|
|
341
|
+
|
|
342
|
+
**Fix**:
|
|
343
|
+
- Install Python 3.10+: https://www.python.org/downloads/
|
|
344
|
+
- Ensure "Add Python to PATH" is checked during installation
|
|
345
|
+
|
|
346
|
+
### Network Error
|
|
347
|
+
|
|
348
|
+
**Cause**: Cannot access GitHub
|
|
349
|
+
|
|
350
|
+
**Fix**:
|
|
351
|
+
- Check network connection
|
|
352
|
+
- Configure proxy: `HTTP_PROXY`, `HTTPS_PROXY`
|
|
353
|
+
- Or set `NETWORK_REQUIRED=0`
|
|
354
|
+
|
|
355
|
+
### venv Failed
|
|
356
|
+
|
|
357
|
+
**Cause**: Python venv module not available
|
|
358
|
+
|
|
359
|
+
**Fix**:
|
|
360
|
+
- Ensure full Python installed (not minimal)
|
|
361
|
+
- Linux: `sudo apt install python3-venv`
|
|
362
|
+
|
|
363
|
+
### Bootstrap Incomplete
|
|
364
|
+
|
|
365
|
+
**Error**:
|
|
366
|
+
```
|
|
367
|
+
⚠️ MCP not fully ready
|
|
368
|
+
|
|
369
|
+
Bootstrap failed, some features may be unavailable.
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
**Fix**: Call `reach_ensure` to repair
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## Compliance
|
|
377
|
+
|
|
378
|
+
### License
|
|
379
|
+
|
|
380
|
+
| Project | License |
|
|
381
|
+
|---------|---------|
|
|
382
|
+
| This project (agent-reach-mcp) | MIT License |
|
|
383
|
+
| Upstream Agent-Reach | MIT License |
|
|
384
|
+
|
|
385
|
+
### Third-Party Notices
|
|
386
|
+
|
|
387
|
+
See [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md)
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Local Development
|
|
221
392
|
|
|
222
393
|
```bash
|
|
223
394
|
npm install
|
|
224
395
|
node index.js
|
|
225
396
|
```
|
|
226
397
|
|
|
398
|
+
---
|
|
399
|
+
|
|
227
400
|
## License
|
|
228
401
|
|
|
229
402
|
MIT
|
|
230
403
|
|
|
404
|
+
---
|
|
405
|
+
|
|
231
406
|
## Links
|
|
232
407
|
|
|
233
408
|
- [Agent-Reach GitHub](https://github.com/Panniantong/Agent-Reach)
|
|
409
|
+
- [MCP Protocol](https://modelcontextprotocol.io/)
|