返回市场
全网搜索

全网搜索

作者:spences10243 星标更新:2025-11-21

项目介绍

mcp-omnisearch

一个模型上下文协议(MCP)服务器,提供对多个搜索提供商和AI工具的统一访问。该服务器结合了Tavily、Perplexity、Kagi、Jina AI、Brave、Exa AI和Firecrawl的能力,通过单一接口提供全面的搜索、AI响应、内容处理和增强功能。

<a href="https://glama.ai/mcp/servers/gz5wgmptd8"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=3136212195,221163637&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Glama 徽章" /> </a>

功能

🔍 搜索工具

  • Tavily 搜索:针对事实信息进行了优化,并具有强大的引用支持。支持通过API参数进行域名过滤(include_domains/exclude_domains)。
  • Brave 搜索:隐私优先的搜索,支持全面的操作符:site:-site:filetype:/ext:intitle:inurl:inbody:inpage:lang:loc:before:after:+term-term 和精确短语 ("phrase").
  • Kagi 搜索:高质量搜索,支持所有操作符:site:-site:filetype:/ext:intitle:inurl:inbody:inpage:lang:loc:before:after:+term-term 和精确短语 ("phrase").
  • Exa 搜索:使用神经网络和关键词搜索的AI驱动的网络搜索。针对AI应用进行了优化,具有语义理解、内容提取和研究能力。
  • GitHub 搜索:在公共GitHub存储库中进行全面代码搜索,包括三个专用工具:
    • 代码搜索:使用高级语法查找代码示例、函数定义和文件(filename:path:repo:user:language:in:file
    • 仓库搜索:按星数、分支或最近更新排序发现仓库
    • 用户搜索:查找GitHub用户和组织

🎯 搜索操作符

MCP Omnisearch通过操作符和参数提供了强大的搜索能力:

搜索操作符参考

Brave & Kagi 操作符(用于查询字符串):

  • 域名site:example.com-site:example.com
  • 文件类型filetype:pdfext:pdf
  • 位置intitle:terminurl:terminbody:terminpage:term
  • 语言lang:en(ISO 639-1 代码)
  • 国家loc:us(ISO 3166-1 代码)
  • 日期before:2024after:2024-01-01
  • 精确"exact phrase"
  • 包含/排除+required-excluded

Tavily(仅限API参数):

  • 域名过滤:include_domainsexclude_domains

示例用法

// Brave/Kagi: 查询中的高级操作符
{
  "query": "filetype:pdf lang:en site:microsoft.com +typescript -javascript",
  "provider": "brave"
}

// Brave/Kagi: 搜索gist
{
  "query": "site:gist.github.com claude code settings",
  "provider": "brave"
}

// Tavily: API参数用于域名过滤
{
  "query": "typescript guide",
  "provider": "tavily",
  "include_domains": ["microsoft.com"]
}

提供商能力

  • Brave 搜索:查询字符串中的全本操作符支持
  • Kagi 搜索:查询字符串中的完全操作符支持
  • Tavily 搜索:通过API参数进行域名过滤
  • Exa 搜索:通过API参数进行域名过滤,具有神经理解的语义搜索
  • GitHub 搜索:具有限定词的高级代码搜索语法:
    • filename:remote.ts - 查找特定文件
    • path:src/lib - 在特定目录内搜索
    • repo:user/repo - 在特定仓库内搜索
    • user:username - 在用户的仓库内搜索
    • language:typescript - 按编程语言筛选
    • in:file "export function" - 在文件内搜索文本

🤖 AI 响应工具

  • Perplexity AI:结合实时网络搜索与GPT-4 Omni和Claude 3的高级响应生成
  • Kagi FastGPT:快速生成带有引用的AI答案(典型响应时间为900毫秒)
  • Exa 答案:使用Exa 答案API直接获取问题的AI生成答案

📄 内容处理工具

  • Jina AI 阅读器:干净的内容提取,支持图像字幕和PDF
  • Kagi 统一摘要器:页面、视频和播客的内容摘要
  • Tavily 提取:从单个或多个网页中提取原始内容,可配置提取深度('基本'或'高级')。返回组合内容和每个URL的内容,以及包括单词计数和提取统计在内的元数据
  • Firecrawl 抓取:从单个URL中提取干净、适合LLM的数据,具有增强的格式选项
  • Firecrawl 深度抓取:网站上所有可访问子页的深度抓取,可配置深度限制
  • Firecrawl 地图:快速收集网站上的URL,以进行全面的站点映射
  • Firecrawl 结构化数据提取:使用自然语言提示的AI结构化数据提取
  • Firecrawl 页面交互:支持页面交互(点击、滚动等)前的动态内容提取
  • Exa 内容:从Exa搜索结果ID中提取全部内容
  • Exa 相似:使用Exa找到与给定URL语义相似的网页

🔄 增强工具

  • Kagi 增强API:来自专业索引的补充内容(Teclis, TinyGem)
  • Jina AI 接地:实时事实验证与网络知识

灵活的API密钥要求

MCP Omnisearch设计为与您可用的API密钥一起工作。您不需要拥有所有提供商的密钥——服务器会自动检测哪些API密钥可用并仅启用那些提供商。

例如:

  • 如果您只有Tavily和Perplexity的API密钥,则只有这些提供商可用
  • 如果没有Kagi的API密钥,基于Kagi的服务不可用,但其他所有提供商正常工作
  • 服务器会记录根据您的API密钥配置可用的提供商

这种灵活性使得只需一两个提供商即可轻松开始,并根据需要添加更多。

配置

此服务器需要通过您的MCP客户端进行配置。以下是不同环境下的示例:

Cline 配置

在您的Cline MCP设置中添加以下内容:

{
	"mcpServers": {
		"mcp-omnisearch": {
			"command": "node",
			"args": ["/path/to/mcp-omnisearch/dist/index.js"],
			"env": {
				"TAVILY_API_KEY": "your-tavily-key",
				"PERPLEXITY_API_KEY": "your-perplexity-key",
				"KAGI_API_KEY": "your-kagi-key",
				"JINA_AI_API_KEY": "your-jina-key",
				"BRAVE_API_KEY": "your-brave-key",
				"GITHUB_API_KEY": "your-github-key",
				"EXA_API_KEY": "your-exa-key",
				"FIRECRAWL_API_KEY": "your-firecrawl-key",
				"FIRECRAWL_BASE_URL": "http://localhost:3002"
			},
			"disabled": false,
			"autoApprove": []
		}
	}
}

Claude Desktop with WSL 配置

对于WSL环境,在您的Claude Desktop配置中添加以下内容:

{
	"mcpServers": {
		"mcp-omnisearch": {
			"command": "wsl.exe",
			"args": [
				"bash",
				"-c",
				"TAVILY_API_KEY=key1 PERPLEXITY_API_KEY=key2 KAGI_API_KEY=key3 JINA_AI_API_KEY=key4 BRAVE_API_KEY=key5 GITHUB_API_KEY=key6 EXA_API_KEY=key7 FIRECRAWL_API_KEY=key8 FIRECRAWL_BASE_URL=http://localhost:3002 node /path/to/mcp-omnisearch/dist/index.js"
			]
		}
	}
}

环境变量

服务器使用每个提供商的API密钥。您不需要所有提供商的密钥——只有对应于您可用API密钥的提供商会被激活:

  • TAVILY_API_KEY:用于Tavily搜索
  • PERPLEXITY_API_KEY:用于Perplexity AI
  • KAGI_API_KEY:用于Kagi服务(FastGPT、摘要器、增强)
  • JINA_AI_API_KEY:用于Jina AI服务(阅读器、接地)
  • BRAVE_API_KEY:用于Brave搜索
  • GITHUB_API_KEY:用于GitHub搜索服务(代码、仓库、用户搜索)
  • EXA_API_KEY:用于Exa AI服务(搜索、答案、内容、相似)
  • FIRECRAWL_API_KEY:用于Firecrawl服务(抓取、深度抓取、地图、结构化数据提取、页面交互)
  • FIRECRAWL_BASE_URL:用于自托管的Firecrawl实例(可选,默认为Firecrawl云服务)

您可以先从一两个API密钥开始,以后根据需要添加更多。服务器启动时会记录哪些提供商可用。

GitHub API 密钥设置

要使用GitHub搜索功能,您需要一个具有仅公共仓库访问权限的安全GitHub个人访问令牌:

  1. 转到GitHub设置:导航至 GitHub 设置 > 开发者设置 > 个人访问令牌

  2. 创建新令牌:点击“生成新令牌” → “生成新令牌(经典)”

  3. 配置令牌设置

    • 名称MCP Omnisearch - 公共搜索

    • 过期时间:选择您偏好的过期时间(建议90天)

    • 范围取消勾选所有复选框

      ⚠️ 重要:不要选择任何范围。空范围令牌只能访问公共仓库和个人资料,这正是我们想要的搜索功能。

  4. 生成并复制:点击“生成令牌”并立即复制令牌

  5. 添加到环境:设置 GITHUB_API_KEY=your_token_here

安全注意事项

  • 此令牌配置确保无法访问私有仓库
  • 只能访问公共代码搜索、仓库发现和个人资料
  • 速率限制:每小时5,000次请求,代码搜索每分钟10次请求
  • 如需撤销令牌,可以从GitHub设置中随时撤销

自托管Firecrawl配置

如果您正在运行自托管的Firecrawl实例,可以通过设置FIRECRAWL_BASE_URL环境变量来配置MCP Omnisearch使用它。这允许您完全控制数据处理管道。

自托管Firecrawl设置:

  1. 遵循Firecrawl自托管指南
  2. 设置您的Firecrawl实例(默认运行在http://localhost:3002
  3. 使用您的自托管URL配置MCP Omnisearch:
FIRECRAWL_BASE_URL=http://localhost:3002
# 或对于远程自托管实例:
FIRECRAWL_BASE_URL=https://your-firecrawl-domain.com

重要说明:

  • 如果未设置FIRECRAWL_BASE_URL,MCP Omnisearch将默认使用Firecrawl云服务
  • 自托管实例支持相同的API端点(/v1/scrape/v1/crawl等)
  • 即使是自托管实例,您仍然需要一个FIRECRAWL_API_KEY
  • 自托管Firecrawl提供增强的安全性和定制选项

API

服务器实现了按类别组织的MCP工具:

搜索工具

search_tavily

使用Tavily搜索API进行网络搜索。最适合需要可靠来源和引用的事实查询。

参数:

  • query(字符串,必需):搜索查询

示例:

{
	"query": "量子计算最新进展"
}

search_brave

隐私优先的网络搜索,涵盖技术主题广泛。

参数:

  • query(字符串,必需):搜索查询

示例:

{
	"query": "Rust 编程语言特性"
}

search_kagi

广告影响最小的高质量搜索结果。最适合寻找权威来源和研究材料。

参数:

  • query(字符串,必需):搜索查询
  • language(字符串,可选):语言过滤器(例如,“en”)
  • no_cache(布尔值,可选):绕过缓存以获得新鲜结果

示例:

{
	"query": "机器学习最新研究",
	"language": "en"
}

github_search

使用高级语法在GitHub上搜索代码。此工具搜索公共存储库中的文件内容,并提供带有元数据的代码片段。

参数:

  • query(字符串,必需):带有GitHub搜索语法的搜索查询
  • limit(数字,可选):最大结果数量(1-50,默认:10)

示例:

{
	"query": "filename:remote.ts @sveltejs/kit",
	"limit": 5
}

高级查询示例:

  • "filename:config.json path:src" - 在src目录中查找config.json文件
  • "function fetchData language:typescript" - 查找TypeScript中的fetchData函数
  • "repo:microsoft/vscode extension" - 在特定仓库中搜索
  • "user:torvalds language:c" - 在用户仓库中搜索C代码

github_repository_search

发现GitHub仓库,带有增强的元数据,包括星数、分支、语言和最后更新信息。

参数:

  • query(字符串,必需):仓库搜索查询
  • limit(数字,可选):最大结果数量(1-50,默认:10)
  • sort(字符串,可选):按“星数”、“分支”或“更新”排序结果

示例:

{
	"query": "sveltekit 远程函数",
	"sort": "stars",
	"limit": 5
}

github_user_search

查找GitHub用户和组织,带有个人资料信息。

参数:

  • query(字符串,必需):用户/组织搜索查询
  • limit(数字,可选):最大结果数量(1-50,默认:10)

示例:

{
	"query": "Rich-Harris",
	"limit": 3
}

exa_search

使用神经网络和关键词搜索的AI驱动的网络搜索。自动选择传统关键词搜索或Exa的嵌入式模型,以找到最相关的查询结果。

参数:

  • query(字符串,必需):搜索查询
  • limit(数字,可选):最大结果数量(1-100,默认:10)
  • include_domains(数组,可选):仅包含这些域的结果
  • exclude_domains(数组,可选):排除这些域的结果

示例:

{
	"query": "最新的人工智能研究论文",
	"limit": 15,
	"include_domains": ["arxiv.org", "scholar.google.com"]
}

AI 响应工具

ai_perplexity

具有实时网络搜索集成的AI驱动响应生成。

参数:

  • query(字符串,必需):AI响应的问题或主题

示例:

{
	"query": "解释REST和GraphQL之间的区别"
}

ai_kagi_fastgpt

快速生成带有引用的AI答案。

参数:

  • query(字符串,必需):快速AI响应的问题

示例:

{
	"query": "TypeScript的主要特性是什么?"
}

exa_answer

使用Exa答案API直接获取问题的AI生成答案。

参数:

  • query(字符串,必需):AI响应的问题
  • include_domains(数组,可选):仅包含这些域的来源
  • exclude_domains(数组,可选):排除这些域的来源

示例:

{
	"query": "机器学习是如何工作的?",
	"include_domains": ["arxiv.org", "nature.com"]
}

内容处理工具

process_jina_reader

将URL转换为适合LLM的干净文本,带有图像字幕。

参数:

  • url(字符串,必需):要处理的URL

示例:

{
	"url": "https://example.com/article"
}

process_kagi_summarizer

从URL中总结内容。

参数:

  • url(字符串,必需):要总结的URL

示例:

{
	"url": "https://example.com/长文章"
}

process_tavily_extract

使用Tavily Extract从网页中提取原始内容。

参数:

  • url(字符串 | 字符串数组,必需):要提取内容的单个URL或URL数组
  • extract_depth(字符串,可选):提取深度 - '基本'(默认)或'高级'

示例: