
MCP SearXNG Enhanced Server

2025.05.10
0
Python网页搜索网站抓取日期时间工具搜索工具
MCP SearXNG Enhanced Server 是一个基于 Model Context Protocol (MCP) 的服务,主要用于支持分类感知的网页搜索、网站内容抓取以及日期/时间工具。它设计用于与 SearXNG 和现代 MCP 客户端无缝集成。
View on GitHub
Overview
基本能力
产品定位
MCP SearXNG Enhanced Server 是一个增强版的 SearXNG 搜索服务,提供分类感知的网页搜索、网站内容抓取和日期/时间工具功能。
核心功能
- 🔍 支持分类的 SearXNG 网页搜索(通用、图片、视频、文件、地图、社交媒体)
- 📄 网站内容抓取,包含引用元数据和自动 Reddit URL 转换
- 💾 内存缓存,自动验证新鲜度
- 🚦 基于域名的速率限制,防止服务滥用
- 🕒 时区感知的日期/时间工具
- ⚠️ 强大的错误处理,支持自定义异常类型
- 🐳 Docker 化,通过环境变量配置
- ⚙️ 容器重启间配置持久化
适用场景
- 需要分类感知的网页搜索
- 需要抓取网站内容并获取引用信息
- 需要时区感知的日期/时间工具
- 需要防止服务滥用的场景
工具列表
工具名称 | 功能描述 | 别名 |
---|---|---|
search_web |
通过 SearXNG 进行网页搜索 | search , web_search , find , lookup_web , search_online , access_internet , lookup |
get_website |
抓取网站内容 | fetch_url , scrape_page , get , load_website , lookup |
get_current_datetime |
获取当前日期/时间 | current_time , get_time , current_date |
常见问题解答
- 无法连接到 SearXNG:确保 SearXNG 实例正在运行,并且
SEARXNG_ENGINE_API_BASE_URL
环境变量指向正确的端点。 - 速率限制错误:调整
RATE_LIMIT_REQUESTS_PER_MINUTE
如果遇到太多速率限制错误。 - 内容提取慢:增加
TRAFILATURA_TIMEOUT
以允许在复杂页面上有更多时间处理内容。 - Docker 网络问题:如果在 Windows/Mac 上使用 Docker Desktop,
host.docker.internal
应该解析到主机机器。在 Linux 上,可能需要使用主机的 IP 地址。
使用教程
使用依赖
- Docker 安装在系统上
- 一个运行的 SearXNG 实例(自托管或可访问的端点)
安装教程
构建 Docker 镜像:
docker build -t overtlids/mcp-searxng-enhanced:latest .
运行 SearXNG 实例(手动 Docker 运行):
docker run -i --rm --network=host \
-e SEARXNG_ENGINE_API_BASE_URL="http://127.0.0.1:8080/search" \
-e DESIRED_TIMEZONE="America/New_York" \
overtlids/mcp-searxng-enhanced:latest
配置 MCP 客户端(例如 VS Code 中的 Cline):
{
"mcpServers": {
"overtlids/mcp-searxng-enhanced": {
"command": "docker",
"args": [
"run", "-i", "--rm", "--network=host",
"-e", "SEARXNG_ENGINE_API_BASE_URL=http://host.docker.internal:8080/search",
"-e", "DESIRED_TIMEZONE=America/New_York",
"-e", "ODS_CONFIG_PATH=/config/ods_config.json",
"-e", "RETURNED_SCRAPPED_PAGES_NO=3",
"-e", "SCRAPPED_PAGES_NO=5",
"-e", "PAGE_CONTENT_WORDS_LIMIT=5000",
"-e", "CITATION_LINKS=True",
"-e", "MAX_IMAGE_RESULTS=10",
"-e", "MAX_VIDEO_RESULTS=10",
"-e", "MAX_FILE_RESULTS=5",
"-e", "MAX_MAP_RESULTS=5",
"-e", "MAX_SOCIAL_RESULTS=5",
"-e", "TRAFILATURA_TIMEOUT=15",
"-e", "SCRAPING_TIMEOUT=20",
"-e", "CACHE_MAXSIZE=100",
"-e", "CACHE_TTL_MINUTES=5",
"-e", "CACHE_MAX_AGE_MINUTES=30",
"-e", "RATE_LIMIT_REQUESTS_PER_MINUTE=10",
"-e", "RATE_LIMIT_TIMEOUT_SECONDS=60",
"-e", "IGNORED_WEBSITES=",
"overtlids/mcp-searxng-enhanced:latest"
],
"timeout": 60
}
}
}
调试方式
运行本地(不使用 Docker) 1. Python 安装:需要 Python 3.9 或更新版本,推荐 Python 3.11。 2. 克隆仓库:
git clone https://github.com/OvertliDS/mcp-searxng-enhanced.git
cd mcp-searxng-enhanced
- 创建并激活虚拟环境:
# Linux/macOS
python3 -m venv .venv
source .venv/bin/activate
# Windows (Command Prompt)
python -m venv .venv
.\\.venv\Scripts\activate.bat
# Windows (PowerShell)
python -m venv .venv
.\\.venv\Scripts\Activate.ps1
- 安装依赖:
pip install -r requirements.txt
- 确保 SearXNG 可访问:确保有运行的 SearXNG 实例及其 API 基础 URL。
- 设置环境变量:
# Linux/macOS (bash/zsh)
export SEARXNG_ENGINE_API_BASE_URL="http://your-searxng-instance:port/search"
export DESIRED_TIMEZONE="America/Los_Angeles"
# Windows (Command Prompt)
set SEARXNG_ENGINE_API_BASE_URL="http://your-searxng-instance:port/search"
set DESIRED_TIMEZONE="America/Los_Angeles"
# Windows (PowerShell)
$env:SEARXNG_ENGINE_API_BASE_URL="http://your-searxng-instance:port/search"
$env:DESIRED_TIMEZONE="America/Los_Angeles"
- 运行服务器:
python mcp_server.py
- 配置文件 (
ods_config.json
):
{
"searxng_engine_api_base_url": "http://127.0.0.1:8080/search",
"desired_timezone": "America/New_York"
}