本地MCP研究工具集

一个本地优先的MCP服务器,提供网页搜索、页面阅读、视频转录和图像分析功能,无需付费API密钥,适用于AI代理的研究工作流。

  • by hippogriff-ai
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 hippogriff-ai/mcp-research-tools

使用说明

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 Harness

SearXNG+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

安装脚本:

  1. 安装 ffmpeg, yt-dlp, whisper-cpp 通过Homebrew
  2. 下载Whisper small 型号(~465MB)
  3. 通过Docker Compose启动SearXNG+Redis
  4. 创建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://<mac-mini-ip>: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使零成本、私人网络搜索成为可能——这要归功于它们的维护者和贡献者。