Skip to main content
Glama

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(“短语”)中可用

示例用法

// Using Brave or Kagi with query string operators { "query": "filetype:pdf site:microsoft.com typescript guide" } // Using Tavily with API parameters { "query": "typescript guide", "include_domains": ["microsoft.com"], "exclude_domains": ["github.com"] }

提供商能力

  • 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 设置中:

{ "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", "FIRECRAWL_API_KEY": "your-firecrawl-key" }, "disabled": false, "autoApprove": [] } } }

带有 WSL 配置的 Claude 桌面

对于 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 FIRECRAWL_API_KEY=key6 node /path/to/mcp-omnisearch/dist/index.js" ] } } }

环境变量

服务器会为每个提供商使用 API 密钥。您不需要所有提供商的密钥- 仅激活与您可用 API 密钥对应的提供商:

  • TAVILY_API_KEY :用于 Tavily 搜索

  • PERPLEXITY_API_KEY :用于 Perplexity AI

  • KAGI_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 (字符串,必需):搜索查询

例子:

{ "query": "latest developments in quantum computing" }

search_brave

注重隐私的网络搜索,对技术主题有很好的覆盖。

参数:

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

例子:

{ "query": "rust programming language features" }

搜索_kagi

高质量搜索结果,广告影响极小。最适合查找权威来源和研究资料。

参数:

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

  • language (字符串,可选):语言过滤器(例如“en”)

  • no_cache (布尔值,可选):绕过缓存以获得最新结果

例子:

{ "query": "latest research in machine learning", "language": "en" }

AI响应工具

ai_perplexity

通过实时网络搜索集成实现人工智能响应生成。

参数:

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

例子:

{ "query": "Explain the differences between REST and GraphQL" }

ai_kagi_fastgpt

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

参数:

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

例子:

{ "query": "What are the main features of TypeScript?" }

内容处理工具

process_jina_reader

将 URL 转换为带有图像字幕的干净、LLM 友好的文本。

参数:

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

例子:

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

process_kagi_summarizer

从 URL 中总结内容。

参数:

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

例子:

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

process_tavily_extract

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

参数:

  • url (string | string[],必需):用于从中提取内容的单个 URL 或 URL 数组

  • extract_depth (字符串,可选):提取深度 - “基本”(默认)或“高级”

例子:

{ "url": [ "https://example.com/article1", "https://example.com/article2" ], "extract_depth": "advanced" }

响应包括:

  • 所有 URL 的组合内容

  • 每个 URL 的单独原始内容

  • 包含字数、成功提取和任何失败 URL 的元数据

firecrawl_scrape_process

使用增强的格式化选项从单个 URL 中提取干净的、LLM 就绪的数据。

参数:

  • url (string | string[],必需):用于从中提取内容的单个 URL 或 URL 数组

  • extract_depth (字符串,可选):提取深度 - “基本”(默认)或“高级”

例子:

{ "url": "https://example.com/article", "extract_depth": "basic" }

响应包括:

  • 干净的 Markdown 格式内容

  • 元数据包括标题、字数和提取统计数据

firecrawl_crawl_process

对网站上所有可访问的子页面进行深度抓取,并设置深度限制。

参数:

  • url (string | string[],必填):抓取的起始 URL

  • extract_depth (字符串,可选):提取深度 - “基本”(默认)或“高级”(控制爬行深度和限制)

例子:

{ "url": "https://example.com", "extract_depth": "advanced" }

响应包括:

  • 所有已抓取页面的合并内容

  • 每个页面的单独内容

  • 元数据包括标题、字数和抓取统计数据

firecrawl_map_process

快速从网站收集 URL,以进行全面的站点映射。

参数:

  • url (string | string[],必需):要映射的 URL

  • extract_depth (字符串,可选):提取深度 - “基本”(默认)或“高级”(控制地图深度)

例子:

{ "url": "https://example.com", "extract_depth": "basic" }

响应包括:

  • 所有发现的 URL 列表

  • 元数据包括网站标题和 URL 数量

firecrawl_extract_process

使用自然语言提示通过人工智能提取结构化数据。

参数:

  • url (string | string[],必需):从中提取结构化数据的 URL

  • extract_depth (字符串,可选):提取深度 - “基本”(默认)或“高级”

例子:

{ "url": "https://example.com", "extract_depth": "basic" }

响应包括:

  • 从页面中提取的结构化数据

  • 元数据包括标题、提取统计数据

firecrawl_actions_process

支持提取动态内容之前的页面交互(点击、滚动等)。

参数:

  • url (string | string[],必需):用于交互和提取内容的 URL

  • extract_depth (字符串,可选):提取深度 - “基本”(默认)或“高级”(控制交互的复杂性)

例子:

{ "url": "https://news.ycombinator.com", "extract_depth": "basic" }

响应包括:

  • 执行交互后提取的内容

  • 所执行操作的描述

  • 页面截图(如有)

  • 元数据包括标题和提取统计数据

增强工具

增强_kagi_enrichment

从专门的索引中获取补充内容。

参数:

  • query (字符串,必需):查询丰富内容

例子:

{ "query": "emerging web technologies" }

增强_jina_grounding

根据网络知识验证陈述。

参数:

  • statement (字符串,必需):要验证的语句

例子:

{ "statement": "TypeScript adds static typing to JavaScript" }

发展

设置

  1. 克隆存储库

  2. 安装依赖项:

pnpm install
  1. 构建项目:

pnpm run build
  1. 以开发模式运行:

pnpm run dev

出版

  1. 更新 package.json 中的版本

  2. 构建项目:

pnpm run build
  1. 发布到 npm:

pnpm publish

故障排除

API 密钥和访问权限

每个提供商都需要自己的 API 密钥,并且可能有不同的访问要求:

  • Tavily :需要从其开发者门户获取 API 密钥

  • 困惑:通过开发者程序访问 API

  • Kagi :某些功能仅限于商业(团队)计划用户使用

  • Jina AI :所有服务都需要 API 密钥

  • Brave :来自其开发者门户的 API 密钥

  • Firecrawl :需要从其开发者门户获取 API 密钥

速率限制

每个提供商都有各自的速率限制。服务器会妥善处理速率限制错误并返回相应的错误消息。

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

执照

MIT 许可证 - 有关详细信息,请参阅LICENSE文件。

致谢

构建于:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/spences10/mcp-omnisearch'

If you have feedback or need assistance with the MCP directory API, please join our Discord server