内容
# urb-mcp-research
MCP服务器用于网络搜索和压缩研究。接受查询,收集公开来源的内容,通过嵌入式过滤,并返回markdown报告。连接到任何MCP客户端,并提供两个工具:`search`用于快速搜索,`research`用于完整流程。
## 工具
### `search`
无需刮取和LLM的搜索 - 返回包含标题、URL和摘要的结果列表。适用于只需要搜索引擎结果的情况。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| `query` | 字符串 | — | 搜索查询 |
| `max_results` | 整数(1-20) | 5 | 结果数量 |
### `research`
完整流程:搜索 → 刮取 → 通过嵌入式选择片段 → Grok报告。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| `query` | 字符串 | — | 研究主题 |
| `depth` | `quick` / `standard` | `quick` | `quick` - 一个搜索查询;`standard` - Grok形成三个后续查询 |
| `max_words` | 整数(100-2000) | 500 | 报告目标字数 |
| `language` | 字符串 | `中文` | 报告语言 |
---
## `research`流程
```
查询
│
├─ depth="standard" ──► Grok形成3个后续搜索查询
│ depth="quick" ──► [查询]
│
└─ 并行处理每个查询:
├─ 通过Tavily搜索,失败时回落到DDG
├─ 刮取找到的页面
└─ 嵌入式过滤:选择相关片段
│
└─ Grok根据收集的上下文形成报告
研究报告(报告、来源、耗时、费用、部分结果、统计)
```
每次运行的产物保存在`research/`目录中:每个刮取页面的文件和最终报告。
---
## 架构
```
MCP客户端
│ MCP(stdio)
▼
MCP服务器 ──► Grok API / Tavily / DDG / 刮取(HTTPS)
│ TCP loopback
▼
嵌入式守护进程(模型在GPU/RAM中)
```
**MCP服务器**实现了主要逻辑:调度查询、搜索、刮取和调用Grok。在MCP客户端会话期间运行。
**嵌入式守护进程**被分离到独立进程中,因为模型占用约2 GB,频繁重启模型时间上不可接受。守护进程在首次调用时自动启动,在查询之间保持模型在内存中,在空闲一段时间后卸载模型,然后退出。
---
## 要求
### 全功能GPU
嵌入式使用[`intfloat/multilingual-e5-large`](https://huggingface.co/intfloat/multilingual-e5-large):~2.2 GB磁盘空间和2.5-3 GB VRAM。支持无GPU运行,但明显较慢:典型报告在显卡上收集约1分钟,而在CPU上约16分钟。Apple Silicon自动使用MPS后端。
### [uv - Python包管理器](https://docs.astral.sh/uv/getting-started/installation/)
用于安装依赖和启动服务器。自动拉取所需的Python版本(3.11+)并管理虚拟环境。
### [Grok API Token](https://console.x.ai)
LLM提供商,用于调度查询和形成报告。在测试的提供商中,显示了处理最新信息的最佳质量。通过`GROK_API_KEY`环境变量传递。
### [Tavily API Token](https://app.tavily.com)
主要搜索引擎:无需单独刮取页面内容,明显更快、更优质的DDG回落。非必需,但强烈推荐。通过`TAVILY_API_KEY`环境变量传递。
---
## 安装
1. 复制发布版本到目标机器并进入其根目录。
2. 根据`.env.example`创建`.env`并填写密钥:
```
GROK_API_KEY=... # 必需
TAVILY_API_KEY=... # 可选,推荐
```
如果跳过此步骤,安装程序将从模板创建文件并提示手动填写。
3. 为您的操作系统运行安装程序。它将安装依赖项,下载嵌入式模型(~2.2 GB),并使用发布版本的绝对路径生成`mcp.json`:
- Linux:`tools/linux/install.sh`
- macOS:`tools/mac/install.sh`
- Windows:`tools\win\install.ps1`
4. 将`mcp.json`连接到MCP客户端:作为单独的配置文件或将`mcpServers.urb-research`部分与现有配置合并。