MCP研究工具
本地第一台MCP服务器,提供Claude Code网络搜索、页面阅读、视频转录和图像分析,无需支付API密钥。在Apple Silicon上原生运行SearXNG+whisper.cpp,实现零成本、低延迟的研究工作流程。
为什么存在
如果你运行人工智能代理,将搜索网络作为其工作流程的一部分,API账单会很快累积起来。一次搜索API调用只需花费几美分,但当你的代理夜以继日地工作——研究、获取页面、提取成绩单——这些部分会变成真钱。该服务器通过在本地运行所有内容完全消除了成本:SearXNG聚合了70多个搜索引擎,没有API密钥,trafilatura从任何页面提取干净的文本,whisper.cpp使用Metal加速在设备上转录音频。通过MCP将其插入Claude Code,您的代理可以在不运行仪表的情况下自由研究。
建筑
Docker Native (Mac mini)
┌──────────────┐ ┌─────────────────────────┐
│ SearXNG │◄── JSON API ──────│ MCP Server (FastMCP) │
│ :8080 │ │ ├─ searxng_search │
│ Redis │ │ ├─ web_fetch │
└──────────────┘ │ ├─ process_video │
│ └─ analyze_image │
└────────┬────────────────┘
stdio │ streamable-http
Claude Code / Agent HarnessSearXNG+Redis在Docker中运行。MCP服务器和媒体工具(ffmpeg、yt-dlp、whisper-cli)本机运行,因此whisper可以获得Apple Silicon Metal的加速。
快速开始
git clone https://github.com/hippogriff-ai/mcp-research-tools.git
cd mcp-research-tools
chmod +x install.sh
./install.sh安装脚本:
- 安装
ffmpeg,yt-dlp,whisper-cpp通过Homebrew - 下载Whisper
small型号(~465MB) - 通过Docker Compose启动SearXNG+Redis
- 创建Python venv并安装项目
工具
searxng_search --网络搜索
查询本地SearXNG实例(聚合了70多个搜索引擎,API成本为零)。
searxng - searxng_search(query="your search", max_results=10, engines="duckduckgo,brave")退货: { query, results: [{ title, url, snippet, engine, score }], count }
web_fetch --页面提取
下载网页并通过trafilatura提取清晰可读的文本。没有DOM膨胀。
searxng - web_fetch(url="https://example.com", extract_text=true)退货: { status_code, url, content_type, content_text, title }
process_video --视频处理
下载YouTube/TikTok视频,修剪到120秒,每3秒提取一次音频+关键帧,通过耳语cli转录音频。
searxng - process_video(url="https://youtube.com/watch?v=...")退货: { transcript, frames: ["/tmp/.../frame_0001.jpg", ...], audio_path, duration_seconds }
analyze_image --图像分析
从URL(本地缓存)获取图像,或验证克劳德视觉推理的本地路径。
searxng - analyze_image(source="https://example.com/photo.jpg")退货: { path, exists, content_type }
用法
克劳德代码(stdio)
添加到您的项目 .mcp.json:
{
"mcpServers": {
"searxng": {
"command": "/path/to/mcp-research-tools/venv/bin/python",
"args": ["-m", "mcp_research_tools.server"]
}
}
}或在全球范围内添加 ~/.claude.json 在...之下 mcpServers 每次会议的关键。
远程代理线束(可流式传输http)
source venv/bin/activate
MCP_TRANSPORT=streamable-http MCP_HOST=0.0.0.0 MCP_PORT=9000 \
python -m mcp_research_tools.server从客户端连接 http://:9000/mcp.
配置
通过环境变量进行的所有设置:
| 变量 | 默认值 | 描述 |
|---|---|---|
SEARXNG_URL | http://localhost:8080 | SearXNG实例URL |
MCP_TRANSPORT | stdio | 运输: stdio 或 streamable-http |
MCP_HOST | 127.0.0.1 | 为HTTP传输绑定主机 |
MCP_PORT | 9000 | HTTP传输端口 |
MAX_VIDEO_SECONDS | 120 | 要处理的最大视频持续时间 |
FRAME_EVERY_SECONDS | 3 | 关键帧提取间隔 |
WHISPER_MODEL | small | Whisper型号(微型/底座/小型/中型/大型) |
WHISPER_CPP_BIN | whisper-cli | Whisper二进制名称 |
WHISPER_MODEL_PATH | ~/.cache/whisper-cpp/ggml-small.bin | 耳语模型的路径 |
MAX_FETCH_SIZE_MB | 10 | 最大页面下载大小 |
FETCH_TIMEOUT_SECONDS | 30 | 页面获取超时 |
需求
- 带苹果硅(M1/M2/M3/M4)的macOS
- Docker 桌面版
- 家酿
- Python 3.13+
发展
source venv/bin/activate
# Run tests
pytest tests/ -v
# Lint
ruff check src/ tests/管理SearXNG
# Start
docker compose up -d
# Stop
docker compose down
# Logs
docker compose logs -f searxng
# Test JSON API
curl 'http://localhost:8080/search?q=test&format=json' | python3 -m json.tool致谢
该项目建立在 SearXNG,一个免费的互联网元搜索引擎,聚合了70多个搜索服务的结果。SearXNG使零成本、私人网络搜索成为可能——这要归功于它们的维护者和贡献者。
