内容
# SearXNG MCP 服务器
一款使用本地 SearXNG 实例提供网络搜索和网页抓取功能的模型上下文协议(MCP)服务器。设计用于与 LM Studio 和其他支持 MCP 的 AI 客户端集成。
## 功能
- **网络搜索**:通过 SearXNG 在多个搜索引擎(DuckDuckGo、Google、Bing、Brave)上进行搜索
- **内容抓取**:自动抓取和格式化搜索结果的内容
- **直接 URL 抓取**:从特定 URL 提取内容
- **Tor 支持**:可选的通过 Tor 网络进行匿名抓取
- **MCP 协议**:MCP HTTP 协议的完整实现,实现与 AI 助手无缝集成
- **纯文本提取**:去除表情符号、规范格式并限制字数
## 先决条件
- Python 3.8+
- 运行中的 SearXNG 实例(默认为 `http://localhost:8080`)
## 安装
1. 克隆或下载此存储库
2. 安装依赖项:
```bash
pip install -r requirements.txt
```
3. 确保 SearXNG 在本地运行于 `http://localhost:8080`
## 配置
编辑 `searxng_mcp_server.py` 以自定义:
```python
SEARXNG_BASE_URL = "http://localhost:8080/search" # 您的 SearXNG 实例
DEFAULT_MAX_RESULTS = 5 # 默认搜索结果数
DEFAULT_MAX_WORDS = 5000 # 每页最大字数
REQUEST_TIMEOUT = 20 # 请求超时(秒)
SERVER_PORT = 8765 # 服务器端口
USE_TOR = False # 通过 Tor 路由抓取(需要 127.0.0.1:9050 上的 Tor)
```
### Tor 支持
要启用通过 Tor 进行匿名抓取:
1. 安装并启动 Tor 服务(必须运行于 `127.0.0.1:9050`)
2. 在配置中设置 `USE_TOR = True`
3. 重启服务器
启用后,所有网页抓取请求都将通过 Tor 网络路由。
## 使用
### 启动服务器
```bash
python searxng_mcp_server.py
```
服务器将在 `http://localhost:8765` 运行
### 与 LM Studio 配置
在您的 LM Studio MCP 设置中添加:
```json
{
"mcpServers": {
"searxng": {
"url": "http://localhost:8765",
"transport": "http"
}
}
}
```
## 可用工具
### 1. search_web
搜索网络并抓取结果页面。
**参数:**
- `query`(必填):搜索查询字符串
- `max_results`(可选):要抓取的结果数(默认为 5)
**示例:**
```
搜索“最新的 AI 发展”并给我前 3 个结果
```
### 2. get_website
从特定 URL 抓取内容。
**参数:**
- `url`(必填):要抓取的 URL
**示例:**
```
获取 https://example.com 的内容
```
## API 端点
- `POST /` - MCP 协议端点
- `GET /health` - 健康检查端点
- `GET /` - 服务器信息(或 SSE 回退)
## 工作原理
1. 从 AI 助手接收 MCP 工具调用
2. 使用指定的搜索词查询 SearXNG
3. 以 JSON 格式检索搜索结果
4. 从每个结果 URL 抓取内容
5. 清洁和格式化文本(去除 HTML、表情符号、规范间距)
6. 将内容截断到字数限制
7. 将格式化结果返回给 AI 助手
## 许可证
MIT