
Omnisearch
🔍 一个模型上下文协议(MCP)服务器,提供对多种搜索引擎(Tavily、Brave、Kagi)、AI工具(Perplexity、FastGPT)和内容处理服务(Jina AI、Kagi)的统一访问。通过单一接口整合搜索、AI响应、内容处理与增强功能。
mcp-omnisearch
一个提供统一访问多搜索服务与AI工具的模型上下文协议(MCP)服务器。该服务器整合了Tavily、Perplexity、Kagi、Jina AI、Brave和Firecrawl的能力,通过单一接口提供全面搜索、AI响应、内容处理与增强功能。
功能特性
🔍 搜索工具
- Tavily搜索:针对事实性信息优化,提供强大引用支持。支持通过API参数进行域名过滤(include_domains/exclude_domains)。
- Brave搜索:注重隐私保护的搜索服务,涵盖优质技术内容。原生支持搜索运算符(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支持(before:, after:)
- 精确短语匹配:Brave和Kagi支持("短语")
使用示例
typescript
// 在Brave或Kagi中使用查询字符串运算符
{
"query": "filetype:pdf site:microsoft.com typescript指南"
}
// 在Tavily中使用API参数
{
"query": "typescript指南",
"include_domains": ["microsoft.com"],
"exclude_domains": ["github.com"]
}
提供商能力
- Brave搜索:完整原生运算符支持
- Kagi搜索:完整运算符支持
- Tavily搜索:通过API参数实现域名过滤
🤖 AI响应工具
- Perplexity AI:结合实时网络搜索与GPT-4 Omni和Claude 3的高级响应生成
- Kagi FastGPT:带引用的快速AI生成回答(典型响应时间900ms)
📄 内容处理工具
- Jina AI阅读器:支持图像标注和PDF的纯净内容提取
- Kagi通用摘要器:针对网页、视频和播客的内容摘要
- Tavily提取:从单页或多网页提取原始内容,可配置提取深度('basic'或'advanced')。返回合并内容与单独URL内容,含字数统计和提取统计的元数据
- Firecrawl抓取:从单URL提取经过清洗、适合LLM的数据,提供增强格式化选项
- Firecrawl爬取:对网站所有可访问子页面进行深度爬取,可配置深度限制
- Firecrawl映射:从网站快速收集URL实现全面站点映射
- Firecrawl提取:使用自然语言提示进行结构化数据AI提取
- Firecrawl操作:支持页面交互(点击、滚动等)后进行动态内容提取
🔄 增强工具
- Kagi增强API:来自专业索引(Teclis,TinyGem)的补充内容
- Jina AI锚定:基于网络知识的实时事实核查
灵活的API密钥要求
MCP Omnisearch设计为仅需您现有的API密钥即可工作。您无需拥有所有提供商的密钥——服务器会自动检测可用的API密钥并仅启用对应提供商。
例如:
- 若您只有Tavily和Perplexity的API密钥,则仅这些提供商可用
- 若无Kagi API密钥,基于Kagi的服务将不可用,但其他提供商正常工作
- 服务器将根据配置的API密钥记录可用提供商
这种灵活性使您可以轻松从一两个提供商开始,后续按需添加更多。
配置
本服务器需要通过MCP客户端进行配置。以下是不同环境的配置示例:
Cline配置
在Cline MCP设置中添加:
json
{
"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": []
}
}
}
Claude Desktop的WSL配置
对于WSL环境,在Claude Desktop配置中添加:
json
{
"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 AIKAGI_API_KEY
:Kagi服务(FastGPT,摘要器,增强)JINA_AI_API_KEY
:Jina AI服务(阅读器,锚定)BRAVE_API_KEY
:Brave搜索FIRECRAWL_API_KEY
:Firecrawl服务(抓取,爬取,映射,提取,操作)
您可先配置一两个API密钥,后续按需添加更多。服务器启动时将记录可用提供商。
API
服务器实现按类别组织的MCP工具:
搜索工具
search_tavily
使用Tavily搜索API进行网络搜索。最适合需要可靠来源和引用的事实查询。
参数:
query
(字符串,必需):搜索查询
示例:
json
{
"query": "量子计算最新进展"
}
search_brave
注重隐私的网络搜索,涵盖优质技术内容。
参数:
query
(字符串,必需):搜索查询
示例:
json
{
"query": "Rust编程语言特性"
}
search_kagi
高质量搜索结果,广告影响最小化。最适合查找权威来源和研究资料。
参数:
query
(字符串,必需):搜索查询language
(字符串,可选):语言过滤器(如"en")no_cache
(布尔值,可选):绕过缓存获取最新结果
示例:
json
{
"query": "机器学习最新研究",
"language": "en"
}
AI响应工具
ai_perplexity
集成实时网络搜索的AI驱动响应生成。
参数:
query
(字符串,必需):AI响应的提问或主题
示例:
json
{
"query": "解释REST与GraphQL的区别"
}
ai_kagi_fastgpt
带引用的快速AI生成回答。
参数:
query
(字符串,必需):快速AI响应的提问
示例:
json
{
"query": "TypeScript的主要特性是什么?"
}
内容处理工具
process_jina_reader
将URL转换为适合LLM的纯净文本,支持图像标注。
参数:
url
(字符串,必需):要处理的URL
示例:
json
{
"url": "https://example.com/article"
}
process_kagi_summarizer
对URL内容进行摘要。
参数:
url
(字符串,必需):要摘要的URL
示例:
json
{
"url": "https://example.com/long-article"
}
process_tavily_extract
使用Tavily Extract从网页提取原始内容。
参数:
url
(字符串 | 字符串数组,必需):要提取内容的单个URL或URL数组extract_depth
(字符串,可选):提取深度 - 'basic'(默认)或'advanced'
示例:
json
{
"url": [
"https://example.com/article1",
"https://example.com/article2"
],
"extract_depth": "advanced"
}
响应包含:
- 所有URL的合并内容
- 每个URL的单独原始内容
- 含字数统计、成功提取和失败URL的元数据
firecrawl_scrape_process
从单URL提取经过清洗、适合LLM的数据,提供增强格式化选项。
参数:
url
(字符串 | 字符串数组,必需):要提取内容的单个URL或URL数组extract_depth
(字符串,可选):提取深度 - 'basic'(默认)或'advanced'
示例:
json
{
"url": "https://example.com/article",
"extract_depth": "basic"
}
响应包含:
- 经过清洗的Markdown格式内容
- 含标题、字数统计和提取统计的元数据
firecrawl_crawl_process
对网站所有可访问子页面进行深度爬取,可配置深度限制。
参数:
url
(字符串 | 字符串数组,必需):爬取起始URLextract_depth
(字符串,可选):提取深度 - 'basic'(默认)或'advanced'(控制爬取深度和限制)
示例:
json
{
"url": "https://example.com",
"extract_depth": "advanced"
}
响应包含:
- 所有爬取页面的合并内容
- 每个页面的单独内容
- 含标题、字数统计和爬取统计的元数据
firecrawl_map_process
从网站快速收集URL实现全面站点映射。
参数:
url
(字符串 | 字符串数组,必需):要映射的URLextract_depth
(字符串,可选):提取深度 - 'basic'(默认)或'advanced'(控制映射深度)
示例:
json
{
"url": "https://example.com",
"extract_depth": "basic"
}
响应包含:
- 所有发现URL的列表
- 含站点标题和URL数量的元数据
firecrawl_extract_process
使用自然语言提示进行结构化数据AI提取。
参数:
url
(字符串 | 字符串数组,必需):要提取结构化数据的URLextract_depth
(字符串,可选):提取深度 - 'basic'(默认)或'advanced'
示例:
json
{
"url": "https://example.com",
"extract_depth": "basic"
}
响应包含:
- 从页面提取的结构化数据
- 含标题和提取统计的元数据
firecrawl_actions_process
支持页面交互(点击、滚动等)后进行动态内容提取。
参数:
url
(字符串 | 字符串数组,必需):要交互并提取内容的URLextract_depth
(字符串,可选):提取深度 - 'basic'(默认)或'advanced'(控制交互复杂度)
示例:
json
{
"url": "https://news.ycombinator.com",
"extract_depth": "basic"
}
响应包含:
- 交互后提取的内容
- 执行操作的描述
- 页面截图(如可用)
- 含标题和提取统计的元数据
增强工具
enhance_kagi_enrichment
从专业索引获取补充内容。
参数:
query
(字符串,必需):增强查询
示例:
json
{
"query": "新兴网络技术"
}
enhance_jina_grounding
根据网络知识验证陈述。
参数:
statement
(字符串,必需):要验证的陈述
示例:
json
{
"statement": "TypeScript为JavaScript添加静态类型"
}
开发
设置
- 克隆仓库
- 安装依赖:
bash
pnpm install
- 构建项目:
bash
pnpm run build
- 开发模式运行:
bash
pnpm run dev
发布
- 更新package.json中的版本号
- 构建项目:
bash
pnpm run build
- 发布到npm:
bash
pnpm publish
故障排查
API密钥与访问
每个提供商需要自己的API密钥并有不同访问要求:
- Tavily:需要开发者门户的API密钥
- Perplexity:通过开发者计划获取API访问
- Kagi:部分功能仅限商业(团队)计划用户
- Jina AI:所有服务均需API密钥
- Brave:开发者门户的API密钥
- Firecrawl:开发者门户的API密钥
速率限制
每个提供商有自己的速率限制。服务器将优雅处理速率限制错误并返回适当错误信息。
贡献
欢迎贡献!请随时提交Pull Request。
许可证
MIT许可证 - 详见LICENSE文件。
致谢
基于以下构建:

Agent8
Agent8 的 MCP 服务器
Aio Mcp
🚀 集成 AI 搜索、RAG 和多服务整合(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,助力 AI 增强的开发工作流。源自 https://github.com/nguyenvanduocit/all-in-one-model-context-protocol
Datagov Server
一个用于访问 Data.gov 数据的 MCP 服务器,提供与政府数据集交互的工具和资源。
Datahub
DataHub (https://datahubproject.io) 的官方 MCP 服务器,集成了 MCP 协议 (https://modelcontextprotocol.io/introduction)。