一个提供多搜索引擎和AI工具统一访问接口的模型上下文协议(MCP)服务器。该服务器整合了Tavily、Perplexity、Kagi、Jina AI、Brave和Firecrawl的功能,通过单一接口提供全面的搜索、AI响应、内容处理和增强功能。
MCP Omnisearch通过操作符和参数提供强大的搜索能力:
// 使用Brave或Kagi的查询字符串操作符
{
"query": "filetype:pdf site:microsoft.com typescript guide"
}
// 使用Tavily的API参数
{
"query": "typescript guide",
"include_domains": ["microsoft.com"],
"exclude_domains": ["github.com"]
}

MCP Omnisearch设计为与您现有的API密钥配合使用。您不需要拥有所有提供商的密钥——服务器会自动检测可用的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 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 AIKAGI_API_KEY
:用于Kagi服务(FastGPT、摘要器、丰富API)JINA_AI_API_KEY
:用于Jina AI服务(阅读器、事实核查)BRAVE_API_KEY
:用于Brave搜索FIRECRAWL_API_KEY
:用于Firecrawl服务(抓取、爬虫、地图、提取、操作)您可以先使用一两个API密钥开始,然后根据需要添加更多。服务器会在启动时记录可用的提供商。
服务器实现了按类别组织的MCP工具:
使用Tavily搜索API进行网络搜索。最适合需要可靠来源和引用的实事性查询。
参数:
query
(字符串,必填):搜索查询示例:
{
"query": "量子计算的最新发展"
}

注重隐私的技术主题网络搜索。
参数:
query
(字符串,必填):搜索查询示例:
{
"query": "Rust编程语言特性"
}

广告影响最小化的高质量搜索结果。最适合查找权威来源和研究资料。
参数:
query
(字符串,必填):搜索查询language
(字符串,可选):语言过滤器(例如"en")no_cache
(布尔值,可选):绕过缓存获取新鲜结果示例:
{
"query": "机器学习的最新研究",
"language": "en"
}

结合实时网络搜索的AI响应生成。
参数:
query
(字符串,必填):AI响应的问题或主题示例:
{
"query": "解释REST和GraphQL之间的区别"
}

带引用的快速AI响应。
参数:
query
(字符串,必填):快速AI响应的问题示例:
{
"query": "TypeScript的主要特性是什么?"
}

将URL转换为清洁、适合LLM的文本,支持图片标注。
参数:
url
(字符串,必填):要处理的URL示例:
{
"url": "https://example.com/article"
}

总结URL内容。
参数:
url
(字符串,必填):要总结的URL示例:
{
"url": "https://example.com/long-article"
}

使用Tavily提取器从网页提取原始内容。
参数:
url
(字符串 | 字符串数组,必填):要提取内容的单个URL或URL数组extract_depth
(字符串,可选):提取深度 - '基础'(默认)或'高级'示例:
{
"url": [
"https://example.com/article1",
"https://example.com/article2"
],
"extract_depth": "advanced"
}

响应包含:
从单个URL提取清洁、适合LLM的数据,提供增强格式选项。
参数:
url
(字符串 | 字符串数组,必填):要提取内容的单个URL或URL数组extract_depth
(字符串,可选):提取深度 - '基础'(默认)或'高级'示例:
{
"url": "https://example.com/article",
"extract_depth": "basic"
}

响应包含:
深度爬取网站所有可访问子页面,可配置深度限制。
参数:
url
(字符串 | 字符串数组,必填):爬取的起始URLextract_depth
(字符串,可选):提取深度 - '基础'(默认)或'高级'(控制爬取深度和限制)示例:
{
"url": "https://example.com",
"extract_depth": "advanced"
}

响应包含:
快速收集网站URL用于全面站点映射。
参数:
url
(字符串 | 字符串数组,必填):要映射的URLextract_depth
(字符串,可选):提取深度 - '基础'(默认)或'高级'(控制地图深度)示例:
{
"url": "https://example.com",
"extract_depth": "basic"
}

响应包含:
使用自然语言提示通过AI进行结构化数据提取。
参数:
url
(字符串 | 字符串数组,必填):要提取结构化数据的URLextract_depth
(字符串,可选):提取深度 - '基础'(默认)或'高级'示例:
{
"url": "https://example.com",
"extract_depth": "basic"
}

响应包含:
支持在提取前进行页面交互(点击、滚动等)以获取动态内容。
参数:
url
(字符串 | 字符串数组,必填):要交互并提取内容的URLextract_depth
(字符串,可选):提取深度 - '基础'(默认)或'高级'(控制交互复杂性)示例:
{
"url": "https://news.ycombinator.com",
"extract_depth": "basic"
}

响应包含:
从专业索引获取补充内容。
参数:
query
(字符串,必填):丰富查询示例:
{
"query": "新兴网络技术"
}

验证陈述是否符合网络知识。
参数:
statement
(字符串,必填):要验证的陈述示例:
{
"statement": "TypeScript为JavaScript添加了静态类型"
}

pnpm install
pnpm run build
pnpm run dev
pnpm run build
pnpm publish
每个提供商需要自己的API密钥,可能有不同的访问要求:
每个提供商都有自己的速率限制。服务器会优雅地处理速率限制错误并返回适当的错误消息。
欢迎贡献!请随时提交Pull Request。
MIT许可证 - 详情请参阅LICENSE文件。
基于以下项目构建: