/ 目录 / 演练场 / mcp-omnisearch
● 社区 spences10 ⚡ 即开即用

mcp-omnisearch

作者 spences10 · spences10/mcp-omnisearch

一个 MCP,搜遍全网 — Tavily、Brave、Kagi、Exa,加上用于内容提取的 Firecrawl。混用多个搜索服务,无需管理 5 个 MCP。

mcp-omnisearch 用四个工具统一网页搜索、AI 搜索、GitHub 搜索和内容提取。带上你付费的服务商的密钥即可,没有密钥的服务商会被自动跳过。需要多个搜索后端冗余或按查询类型优化成本时最有用。

为什么要用

核心特性

实时演示

实际使用效果

omnisearch.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "omnisearch",
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "omnisearch": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-omnisearch"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add omnisearch -- npx -y mcp-omnisearch

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: mcp-omnisearch

跨多个搜索引擎研究一个话题,支持备用方案

👤 研究者、分析师,以及被某个搜索引擎偏差坑过的人 ⏱ ~15 min beginner

何时使用: 新话题,其中一个引擎的前 10 结果往往与另一个不同。

前置条件
  • 至少一个搜索 API 密钥(Tavily 免费层最简单) — tavily.com/signup — 免费层每月 1000 次请求
步骤
  1. 先用最便宜的服务商运行搜索
    在 Tavily 搜索 'latest MCP protocol changes 2026'。总结前 5 个结果。✓ 已复制
    → 带引用的总结
  2. 在不同的服务商上交叉验证
    现在在 Brave 搜索相同查询。哪些结果在两者都出现?哪些是独有的?✓ 已复制
    → 重叠分析
  3. 提取最有前景的结果的完整内容
    在顶部结果上使用 web_extract,给我真正有用的文本,不要导航样板。✓ 已复制
    → 文章的干净 markdown

结果: 经过交叉验证的研究答案,通过多引擎一致性提高可信度。

注意事项
  • 各服务商的配额不同 — Tavily 很慷慨,Kagi 按查询计费 — 探索性搜索路由到 Tavily,保留 Kagi 用于高信号的'给我答案'查询(通过 FastGPT)
  • web_extract 在 JS 密集的网站上失败 — SPA 用 Firecrawl(JS 渲染);静态页面用 Tavily extract
搭配使用: notion

通过 AI 搜索获得带引用的快速答案

👤 想要'答案是什么'而不是'这是 10 个蓝色链接'的任何人 ⏱ ~5 min beginner

何时使用: 特定的事实问题,你想要带源头的推理。

前置条件
  • 至少一个 AI 搜索密钥:KAGI_API_KEY、EXA_API_KEY 或 LINKUP_API_KEY — Kagi FastGPT 是每次查询最便宜的
步骤
  1. 通过 ai_search 提问
    使用 ai_search(Kagi FastGPT)询问:截至 2026 年 Q1,GitHub Models API 的默认速率限制是多少?✓ 已复制
    → 带引用的直接答案
  2. 验证引用
    用 web_extract 打开顶部引用并确认声明。✓ 已复制
    → 引用的源文本

结果: 经过验证的快速答案,比免费搜索往返更便宜、更快。

注意事项
  • AI 搜索可能会自信地误引用源 — 对重要声明始终对顶部引用进行 web_extract

在公共 GitHub 上搜索参考实现

👤 评估库或寻找代码模式的开发者 ⏱ ~15 min intermediate

何时使用: '有人用 Rust 解决过 X 吗?'这类问题。

前置条件
  • GITHUB_API_KEY 且没有作用域(仅公开) — github.com/settings/tokens — 空作用域列表的经典令牌就可以
步骤
  1. 用代码操作符搜索
    github_search 搜索 fn main() language:rust path:src/ 'tokio::select!' — 前 20 个仓库。✓ 已复制
    → 带文件匹配的仓库列表
  2. 提取值得阅读的特定文件
    对于前 3 个匹配,在 raw.githubusercontent URL 上使用 web_extract 并向我展示它们使用的 tokio::select! 模式。✓ 已复制
    → 带上下文的代码摘录

结果: 一份精选的真实实现阅读清单,你可以从中学习。

搭配使用: github

组合

与其他 MCP 搭配,撬动十倍杠杆

omnisearch + notion

跨引擎研究一个话题,将提炼的笔记保存到 Notion

跨 Tavily 和 Brave 研究 'post-quantum TLS 2026 state of play',提取 3 个最佳来源,并保存一个 Notion 页面总结它们。✓ 已复制
omnisearch + github

在 GitHub 公开搜索上发现仓库,然后通过 github MCP 对最好的进行深度操作

github_search 搜索 Go 中的 rate-limiter 库,选择最好的,然后通过 github MCP 打开它最近的 3 个问题。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
web_search query: str, provider?: tavily|brave|kagi|exa, options?: {site?, filetype?, time?, lang?} 广泛网页搜索,支持操作符控制 1 provider API call
ai_search query: str, provider?: kagi_fastgpt|exa|linkup 你想要直接的带引用答案,而不是链接 1 AI-search call (costlier than regular search)
github_search query: str, kind?: code|repo|user 使用 GitHub 语法进行代码/仓库/用户发现 1 GitHub API call (30/min code search limit)
web_extract url: str, provider?: firecrawl|tavily|kagi 从 URL 获取干净的文章文本 1 extractor call

成本与限制

运行它的成本

API 配额
按服务商。Tavily:每月 1000 次免费。Brave:每月 2000 次免费。Kagi:按次付费。Exa:免费层约 1000/月。
每次调用 Token 数
搜索结果:500-1500 token。带引用的 AI 搜索:1-3k。提取的文章:2-8k。
费用
免费开始(Tavily、Brave、Exa 免费层);Kagi 按次付费;Firecrawl 自托管 = 免费
提示
路由:便宜的广泛搜索 → Tavily/Brave;高信号答案 → Kagi FastGPT;提取 → 自托管 Firecrawl。

安全

权限、密钥、影响范围

最小权限: GitHub 令牌:空作用域(仅公开)
凭据存储: 按服务商的环境变量:TAVILY_API_KEY、BRAVE_API_KEY 等。
数据出站: 查询发送到每个配置的服务商的 API;结果返回通过
切勿授予: GitHub 令牌有仓库写权限 — web_search 仅限公开 自托管 Firecrawl 暴露于公网而无需身份验证

故障排查

常见错误与修复

服务商未配置

为该服务商设置环境变量,或传递 provider= 路由到不同的。

验证: echo $TAVILY_API_KEY
Firecrawl 提取超时

重型 SPA;提高 FIRECRAWL 超时,或回退到 tavily/kagi extract 用于静态页面。

GitHub 搜索返回 403

未认证的代码搜索受到严格限制。即使作用域为空也要提供 GITHUB_API_KEY。

验证: curl -H 'Authorization: Bearer $GITHUB_API_KEY' https://api.github.com/rate_limit

替代方案

mcp-omnisearch 对比其他方案

替代方案何时用它替代权衡
brave-search MCP你只需要一个引擎并想要最小化配置没有 AI 搜索,没有多服务商冗余
searxng MCP你想要完全自托管的元搜索且无需 API 密钥你需要托管 SearXNG 实例
kindly-web-search你想要更完整的内容检索(完整的 StackOverflow 主题、GitHub 问题)服务商列表较小

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills