mcp-omnisearch
一个模型上下文协议 (MCP) 服务器,提供对多个搜索提供商和 AI 工具的统一访问。该服务器整合了 Tavily、Perplexity、Kagi、Jina AI、Brave 和 Firecrawl 的功能,通过单一界面提供全面的搜索、AI 响应、内容处理和增强功能。
特征
🔍 搜索工具
Tavily Search :针对事实信息进行了优化,并提供强大的引用支持。支持通过 API 参数 (include_domains/exclude_domains) 进行域名过滤。
Brave Search :注重隐私的搜索,涵盖广泛的技术内容。原生支持搜索运算符(site:、-site:、filetype:、intitle:、inurl:、before:、after: 和精确短语)。
Kagi 搜索:高质量搜索结果,广告影响极小,专注于权威来源。支持查询字符串中的搜索运算符(site:、-site:、filetype:、intitle:、inurl:、before:、after: 和精确短语)。
🎯 搜索运算符
MCP Omnisearch通过操作符和参数提供了强大的搜索功能:
常见搜索功能
域名过滤:所有提供商均可使用
Tavily:通过 API 参数(include_domains/exclude_domains)
Brave & Kagi:通过 site: 和 -site: 运算符
文件类型过滤:Brave 和 Kagi 中可用(filetype:)
标题和 URL 过滤:Brave 和 Kagi 中可用(intitle:、inurl:)
日期过滤:Brave 和 Kagi 中可用(之前:、之后:)
精确短语匹配:在 Brave 和 Kagi(“短语”)中可用
示例用法
提供商能力
Brave Search :查询字符串中完全支持本机运算符
Kagi 搜索:查询字符串中完整的运算符支持
Tavily Search :通过 API 参数进行域名过滤
🤖 AI 响应工具
Perplexity AI :将实时网络搜索与 GPT-4 Omni 和 Claude 3 相结合的高级响应生成
Kagi FastGPT :AI 快速生成带引文的答案(典型响应时间为 900 毫秒)
📄内容处理工具
Jina AI 阅读器:清晰地提取内容,并支持图片说明和 PDF 文件
Kagi Universal Summarizer :页面、视频和播客的内容摘要
Tavily Extract :从单个或多个网页中提取原始内容,并可配置提取深度(“基本”或“高级”)。返回合并内容和单个 URL 内容,以及包含字数统计和提取统计信息的元数据。
Firecrawl Scrape :使用增强的格式选项从单个 URL 中提取干净的、LLM 就绪的数据
Firecrawl Crawl :深度抓取网站上所有可访问的子页面,并设置深度限制
Firecrawl Map :快速从网站收集 URL,进行全面的站点映射
Firecrawl Extract :利用自然语言提示进行 AI 结构化数据提取
Firecrawl 操作:支持提取动态内容之前的页面交互(点击、滚动等)
🔄 增强工具
Kagi Enrichment API :来自专业索引的补充内容(Teclis、TinyGem)
Jina AI Grounding :针对网络知识的实时事实验证
Related MCP server: MCP2Tavily
灵活的 API 密钥要求
MCP Omnisearch 旨在与您现有的 API 密钥配合使用。您无需拥有所有提供商的密钥 - 服务器会自动检测哪些 API 密钥可用,并仅启用这些提供商的密钥。
例如:
如果您只有 Tavily 和 Perplexity API 密钥,则只有这些提供商可用
如果您没有 Kagi API 密钥,基于 Kagi 的服务将不可用,但所有其他提供商将正常运行
服务器将根据您配置的 API 密钥记录可用的提供商
这种灵活性使得只需一个或两个提供商即可轻松开始,并根据需要添加更多提供商。
配置
此服务器需要通过您的 MCP 客户端进行配置。以下是不同环境的示例:
克莱恩配置
将其添加到您的 Cline MCP 设置中:
带有 WSL 配置的 Claude 桌面
对于 WSL 环境,将其添加到您的 Claude Desktop 配置中:
环境变量
服务器会为每个提供商使用 API 密钥。您不需要所有提供商的密钥- 仅激活与您可用 API 密钥对应的提供商:
TAVILY_API_KEY:用于 Tavily 搜索PERPLEXITY_API_KEY:用于 Perplexity AIKAGI_API_KEY:用于 Kagi 服务(FastGPT、Summarizer、Enrichment)JINA_AI_API_KEY:用于 Jina AI 服务(Reader、Grounding)BRAVE_API_KEY:用于 Brave 搜索FIRECRAWL_API_KEY:用于 Firecrawl 服务(抓取、抓取、映射、提取、操作)
您可以先使用一两个 API 密钥,之后再根据需要添加更多密钥。服务器将在启动时记录可用的提供程序。
API
服务器实现按类别组织的 MCP 工具:
搜索工具
搜索_塔维利
使用 Tavily Search API 搜索网页。最适合需要可靠来源和引文的事实性查询。
参数:
query(字符串,必需):搜索查询
例子:
search_brave
注重隐私的网络搜索,对技术主题有很好的覆盖。
参数:
query(字符串,必需):搜索查询
例子:
搜索_kagi
高质量搜索结果,广告影响极小。最适合查找权威来源和研究资料。
参数:
query(字符串,必需):搜索查询language(字符串,可选):语言过滤器(例如“en”)no_cache(布尔值,可选):绕过缓存以获得最新结果
例子:
AI响应工具
ai_perplexity
通过实时网络搜索集成实现人工智能响应生成。
参数:
query(字符串,必需):AI 响应的问题或主题
例子:
ai_kagi_fastgpt
快速 AI 生成带有引文的答案。
参数:
query(字符串,必需):用于快速 AI 响应的问题
例子:
内容处理工具
process_jina_reader
将 URL 转换为带有图像字幕的干净、LLM 友好的文本。
参数:
url(字符串,必需):要处理的 URL
例子:
process_kagi_summarizer
从 URL 中总结内容。
参数:
url(字符串,必需):要汇总的 URL
例子:
process_tavily_extract
使用 Tavily Extract 从网页中提取原始内容。
参数:
url(string | string[],必需):用于从中提取内容的单个 URL 或 URL 数组extract_depth(字符串,可选):提取深度 - “基本”(默认)或“高级”
例子:
响应包括:
所有 URL 的组合内容
每个 URL 的单独原始内容
包含字数、成功提取和任何失败 URL 的元数据
firecrawl_scrape_process
使用增强的格式化选项从单个 URL 中提取干净的、LLM 就绪的数据。
参数:
url(string | string[],必需):用于从中提取内容的单个 URL 或 URL 数组extract_depth(字符串,可选):提取深度 - “基本”(默认)或“高级”
例子:
响应包括:
干净的 Markdown 格式内容
元数据包括标题、字数和提取统计数据
firecrawl_crawl_process
对网站上所有可访问的子页面进行深度抓取,并设置深度限制。
参数:
url(string | string[],必填):抓取的起始 URLextract_depth(字符串,可选):提取深度 - “基本”(默认)或“高级”(控制爬行深度和限制)
例子:
响应包括:
所有已抓取页面的合并内容
每个页面的单独内容
元数据包括标题、字数和抓取统计数据
firecrawl_map_process
快速从网站收集 URL,以进行全面的站点映射。
参数:
url(string | string[],必需):要映射的 URLextract_depth(字符串,可选):提取深度 - “基本”(默认)或“高级”(控制地图深度)
例子:
响应包括:
所有发现的 URL 列表
元数据包括网站标题和 URL 数量
firecrawl_extract_process
使用自然语言提示通过人工智能提取结构化数据。
参数:
url(string | string[],必需):从中提取结构化数据的 URLextract_depth(字符串,可选):提取深度 - “基本”(默认)或“高级”
例子:
响应包括:
从页面中提取的结构化数据
元数据包括标题、提取统计数据
firecrawl_actions_process
支持提取动态内容之前的页面交互(点击、滚动等)。
参数:
url(string | string[],必需):用于交互和提取内容的 URLextract_depth(字符串,可选):提取深度 - “基本”(默认)或“高级”(控制交互的复杂性)
例子:
响应包括:
执行交互后提取的内容
所执行操作的描述
页面截图(如有)
元数据包括标题和提取统计数据
增强工具
增强_kagi_enrichment
从专门的索引中获取补充内容。
参数:
query(字符串,必需):查询丰富内容
例子:
增强_jina_grounding
根据网络知识验证陈述。
参数:
statement(字符串,必需):要验证的语句
例子:
发展
设置
克隆存储库
安装依赖项:
构建项目:
以开发模式运行:
出版
更新 package.json 中的版本
构建项目:
发布到 npm:
故障排除
API 密钥和访问权限
每个提供商都需要自己的 API 密钥,并且可能有不同的访问要求:
Tavily :需要从其开发者门户获取 API 密钥
困惑:通过开发者程序访问 API
Kagi :某些功能仅限于商业(团队)计划用户使用
Jina AI :所有服务都需要 API 密钥
Brave :来自其开发者门户的 API 密钥
Firecrawl :需要从其开发者门户获取 API 密钥
速率限制
每个提供商都有各自的速率限制。服务器会妥善处理速率限制错误并返回相应的错误消息。
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
执照
MIT 许可证 - 有关详细信息,请参阅LICENSE文件。
致谢
构建于: