AgentWebSearch-MCP
不带API密钥的本地Web搜索+MCP服务器
需要WebSearch来搜索您当地的LLM(Ollama,LM Studio)或Claude Code吗? 不需要API密钥- 只有Chrome.
运作原理
此工具启动真正的Chrome浏览器 -不是无头的,不是模拟的。 它打开实际的Chrome窗口,并通过CDP(Chrome DevTools协议)对其进行控制。 这就是为什么它可以绕过机器人检测和验证码——因为它是一个真正的浏览器。
┌─────────────────────────────────────────────────────────┐
│ Your Desktop │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Chrome:9222 │ │ Chrome:9223 │ │ Chrome:9224 │ │
│ │ Naver │ │ Google │ │ Brave │ │
│ │ (search) │ │ (search) │ │ (search) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └───────────────┼───────────────┘ │
│ │ CDP (WebSocket) │
│ ┌────┴────┐ │
│ │ MCP │ │
│ │ Server │ │
│ └────┬────┘ │
│ │ │
│ Claude Code │
└─────────────────────────────────────────────────────────┘为什么是真正的浏览器?
- 不需要API密钥(您只是在浏览)
- 无速率限制(正常浏览器行为)
- CAPTCHA抗性(真实浏览器指纹)
- 登录会话持续(Cookie已保存)
- 韩国门户网站工作(Naver需要真正的浏览器)
可扩展到其他网站
- 当前配置用于搜索门户(Naver、Google、Brave)
- 可以通过添加门户配置扩展到其他站点
- 每个网站都需要自己的Chrome实例和会话
关键利益
| 功能 | Tavily/Brave API | SearXNG(OpenClaw) | AgentWebSearch-MCP |
|---|---|---|---|
| API密钥 | 必需 | 不需要 | 不需要 |
| 费用 | 付费/有限 | 免费 | 自由 |
| 设置 | 获取API密钥 | 主机SearXNG服务器 | 只需安装Chrome |
| 机器人检测 | N/A | 容易被阻止 | Bypassed(真实浏览器) |
| 韩国门户 | 有限 | 无Naver | Naver支持 |
| MCP支持 | ❌ | ❌ | ✅ 内建 |
特性
- 没有API密钥 -直接Chrome CDP(DevTools协议)控制
- MCP服务器 -用作克劳德代码/光标/LM Studio工具
- AgentCPM探索 -从OpenBMB/THUNLP搜索优化的4B型号(可选)
- 并行搜索 -同时为Naver/Google/BBrave提供3个Chrome实例
- 机器人检测旁路 -会话持久性+隐形标志
- CAPTCHA抗性 -真实的浏览器会话避免了大多数验证码挑战
安装
1.安装依赖项
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt2.启动Chrome(调试模式)
python chrome_launcher.py start # Start 3 Chrome instances
python chrome_launcher.py status # Check status
python chrome_launcher.py stop # Stop all3.登录和同步(可选但推荐)
默认情况下,Chrome实例使用临时配置文件(/tmp/).对于持久登录:
- 打开CDP Chrome浏览器 (之后
chrome_launcher.py start) - 登录谷歌 在Chrome窗口中
- 启用同步 (设置→ Sync)
优点:
- OAuth登录(“使用谷歌登录”)会自动工作
- 保存的密码自动填充
- 更好的搜索结果(个性化)
- 会话在重新启动后持续存在
注: 要使配置文件永久化,请在中更改配置文件路径chrome_launcher.py从/tmp/chrome-*-profile到~/.config/chrome-cdp/*
MCP服务器
在Claude Code、Cursor、LM Studio或 OpenClaw/Moltbot.
快速开始
# Start Chrome first
python chrome_launcher.py start
# Run MCP server (stdio mode)
python mcp_server.py克劳德代码注册
claude mcp add agentwebsearch -s user -- python /path/to/mcp_server.pyClaude代码设置.json
{
"mcpServers": {
"agentwebsearch": {
"command": "python",
"args": ["/path/to/AgentWebSearch-MCP/mcp_server.py"],
"env": {}
}
}
}OpenClaw/Moltbot注册
# Add MCP to OpenClaw
openclaw mcp add agentwebsearch -- python /path/to/mcp_server.py
# Or add to ~/.openclaw/config.jsonSSE模式(HTTP服务器)
python mcp_server.py --sse --port 8902可用的MCP工具
| 工具 | 说明 | 需要LLM |
|---|---|---|
web_search | 同时搜索Naver/Google/BBrave | 否 |
fetch_urls | 从URL获取网页内容 | 否 |
smart_search | 搜索+带深度控制的自动提取 | 否 |
get_search_status | 检查搜索进度并获得部分结果 | 否 |
cancel_search | 取消正在进行的搜索并获得部分结果 | 否 |
agentcpm | 使用AgentCPM Explore(SGLang)进行代理搜索 | 是 |
工具参数
smart_search
| 参数 | 值 | 说明 |
|---|---|---|
query | string | 搜索查询(必填) |
depth | simple | 仅限片段(快速) |
medium | 获取前5个URL(默认) | |
deep | 获取前15个网址(速度慢) | |
portal | all/naver/google/brave | 搜索门户 |
agentcpm
用途 AgentCPM探索 模型(4B,OpenBMB/THUNLP)通过SGLang来计划搜索查询、执行搜索和生成答案。
| 参数 | 值 | 说明 |
|---|---|---|
query | string | 搜索查询(必填) |
depth | simple/medium/deep | 搜索深度(默认值:中等) |
confirm | boolean | 如果SGLang未运行,请确认继续 |
要求:
- SGLang服务器在端口30001上运行
- AgentCPM探索模型已加载
首次设置: 模型加载需要大约30-45秒。使用 smart_search 如果你没有设置SGLang。
get_search_status / cancel_search
部分结果支持:当搜索时间过长时,您可以:
- 呼叫
get_search_status检查进度并查看到目前为止收集的结果 - 呼叫
cancel_search停止搜索并返回部分结果
| 工具 | 说明 |
|---|---|
get_search_status | 返回:状态、进度%、已用时间、部分搜索结果、部分提取内容 |
cancel_search | 取消正在进行的搜索并返回收集到的所有部分结果 |
为什么选择AgentPM Explore? 由OpenBMB/THUNLP专门针对搜索代理任务进行培训。生成多样化的查询,并比通用模型更好地处理工具调用。
示例用法
"Search latest AI news" → smart_search tool
"Deep search about GPT-5" → smart_search(depth="deep")
"Use AgentCPM for AI news" → agentcpm(query="AI news")独立代理(CLI)
直接从命令行运行搜索代理。
# Default: SGLang backend
python search_agent.py "search query"
# Search depth
python search_agent.py "query" --depth simple # snippets only (fast)
python search_agent.py "query" --depth medium # fetch top 5 URLs (default)
python search_agent.py "query" --depth deep # fetch all URLs (slow)
# Interactive mode
python search_agent.py -i
# CLI supports multiple backends (--llm ollama/lmstudio/openai)
python search_agent.py --list-backendsAgentCPM探索设置(用于 agentcpm 工具)
AgentCPM探索 是来自的4B参数模型 OpenBMB/THUNLP 专门针对搜索代理任务进行培训:
- 自动生成多种搜索查询(韩语/英语,多视角)
- 针对工具调用(搜索、fetch_url)进行了优化
- 基于Qwen3-4B-思考
# 1. Install SGLang (CUDA required)
pip install sglang[all]
# 2. Download AgentCPM-Explore model (~8GB)
# https://huggingface.co/openbmb/AgentCPM-Explore
# 3. Start server
MODEL_PATH=/path/to/AgentCPM-Explore ./start_sglang.sh注: 这 agentcpm MCP工具仅使用SGLang+AgentCPM Explore。对于其他LLM后端,请使用 smart_search 或CLI(search_agent.py --llm ollama).
建筑
User Query
|
MCP Server (mcp_server.py)
+-- web_search → CDP Search only
+-- smart_search → CDP Search + URL Fetch
+-- agentcpm → SGLang + AgentCPM-Explore + CDP Search
|
CDP Search (parallel)
+-- Chrome:9222 → Naver
+-- Chrome:9223 → Google
+-- Chrome:9224 → Brave
|
Final Answer + Sources文件结构
AgentWebSearch-MCP/
├── mcp_server.py # MCP server (4 tools)
├── search_agent.py # Standalone CLI agent
├── cdp_search.py # CDP parallel search
├── chrome_launcher.py # Chrome instance manager
├── llm_adapters/ # LLM adapters (CLI use)
│ ├── base.py # Common interface
│ ├── sglang_adapter.py
│ ├── ollama_adapter.py
│ ├── lmstudio_adapter.py
│ └── openai_adapter.py
└── start_sglang.sh # SGLang server startup演出
| 模式 | 时间 | 令牌 |
|---|---|---|
| 简单 | ~35s | ~3K |
| 中等 | ~50s | ~17K |
| 深 | ~170秒 | ~77K |
需求
- Python 3.10+
- 铬/铬
- 对于
agentcpm工具:SGLang+AgentCPM探索模型
许可证
MIT许可证
贡献
门户添加PR欢迎!看 PORTAL_CONFIG 在 cdp_search.py.
______________________________________________________________________
合著者:inchul 合著者:Claude
