首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
OpenWebSearch网络搜索MCP2026-05-303.3K分享添加福利群:解决AI开发者的「MCP实战痛点」
基于多引擎搜索结果的模型上下文协议(MCP)服务器,支持免费网络搜索,无需API密钥.支持 Bing,Baidu,DuckDuckGo,Brave,Exa,Github,Juejin,and CSDN
By Aasee
2026-05-303.3K
github
详情内容

Open-WebSearch MCP 服务器

ModelScope smithery badge Version License Issues

🇨🇳 中文 | 🇺🇸 English

一个基于多引擎搜索结果的模型上下文协议(MCP)服务器,支持无需API密钥的免费网络搜索。

功能

  • 使用多引擎结果进行网络搜索
    • bing
    • baidu
    • linux.do 暂时不支持
    • csdn
    • duckduckgo
    • exa
    • brave
    • juejin
  • 支持HTTP代理配置以访问受限资源
  • 无需API密钥或身份验证
  • 返回带有标题、URL和描述的结构化结果
  • 可配置每次搜索的结果数量
  • 可自定义默认搜索引擎
  • 支持获取单个文章内容
    • csdn
    • github(README文件)

待办事项

  • 支持 Bing(已支持)、DuckDuckGo(已支持)、Exa(已支持)、Brave(已支持)、Google和其他搜索引擎
  • 支持更多博客、论坛和社交平台
  • 优化文章内容提取,增加对更多站点的支持
  • 支持GitHub README获取(已支持)

安装指南

NPX 快速开始(推荐)

最快的方式开始使用:

# 基本用法
npx open-websearch@latest

# 带环境变量(Linux/macOS)
DEFAULT_SEARCH_ENGINE=duckduckgo ENABLE_CORS=true npx open-websearch@latest

# Windows PowerShell
$env:DEFAULT_SEARCH_ENGINE="duckduckgo"; $env:ENABLE_CORS="true"; npx open-websearch@latest

# 跨平台(需要 cross-env,用于本地开发)
npm install -g open-websearch
npx cross-env DEFAULT_SEARCH_ENGINE=duckduckgo ENABLE_CORS=true open-websearch

环境变量:

变量 默认值 选项 描述
ENABLE_CORS false true, false 启用CORS
CORS_ORIGIN * 任何有效的来源 CORS来源配置
DEFAULT_SEARCH_ENGINE bing bing, duckduckgo, exa, brave 默认搜索引擎
USE_PROXY false true, false 启用HTTP代理
PROXY_URL http://127.0.0.1:7890 任何有效的URL 代理服务器URL
PORT 3000 1-65535 服务器端口

常见配置:

# 为受限区域启用代理
USE_PROXY=true PROXY_URL=http://127.0.0.1:7890 npx open-websearch@latest

# 完整配置
DEFAULT_SEARCH_ENGINE=duckduckgo ENABLE_CORS=true USE_PROXY=true PROXY_URL=http://127.0.0.1:7890 PORT=8080 npx open-websearch@latest

本地安装

  1. 克隆或下载此仓库
  2. 安装依赖:
npm install
  1. 构建服务器:
npm run build
  1. 将服务器添加到您的MCP配置中:

Cherry Studio:

{
  "mcpServers": {
    "web-search": {
      "name": "Web Search MCP",
      "type": "streamableHttp",
      "description": "多引擎网络搜索与文章获取",
      "isActive": true,
      "baseUrl": "http://localhost:3000/mcp"
    }
  }
}

VSCode (Claude Dev Extension):

{
  "mcpServers": {
    "web-search": {
      "transport": {
        "type": "streamableHttp",
        "url": "http://localhost:3000/mcp"
      }
    },
    "web-search-sse": {
      "transport": {
        "type": "sse",
        "url": "http://localhost:3000/sse"
      }
    }
  }
}

Claude Desktop:

{
  "mcpServers": {
    "web-search": {
      "transport": {
        "type": "streamableHttp",
        "url": "http://localhost:3000/mcp"
      }
    },
    "web-search-sse": {
      "transport": {
        "type": "sse",
        "url": "http://localhost:3000/sse"
      }
    }
  }
}

Docker 部署

使用Docker Compose快速部署:

docker-compose up -d

或直接使用Docker:

docker run -d --name web-search -p 3000:3000 -e ENABLE_CORS=true -e CORS_ORIGIN=* ghcr.io/aas-ee/open-web-search:latest

环境变量配置:

变量 默认值 选项 描述
ENABLE_CORS false true, false 启用CORS
CORS_ORIGIN * 任何有效的来源 CORS来源配置
DEFAULT_SEARCH_ENGINE bing bing, duckduckgo, exa, brave 默认搜索引擎
USE_PROXY false true, false 启用HTTP代理
PROXY_URL http://127.0.0.1:7890 任何有效的URL 代理服务器URL
PORT 3000 1-65535 服务器端口

然后在您的MCP客户端中配置:

{
  "mcpServers": {
    "web-search": {
      "name": "Web Search MCP",
      "type": "streamableHttp",
      "description": "多引擎网络搜索与文章获取",
      "isActive": true,
      "baseUrl": "http://localhost:3000/mcp"
    },
    "web-search-sse": {
      "transport": {
        "name": "Web Search MCP",
        "type": "sse",
        "description": "多引擎网络搜索与文章获取",
        "isActive": true,
        "url": "http://localhost:3000/sse"
      }
    }
  }
}

使用指南

服务器提供四种工具:searchfetchLinuxDoArticlefetchCsdnArticlefetchGithubReadme

search 工具使用

{
  "query": string,        // 搜索查询
  "limit": number,        // 可选:返回结果数量(默认:10)
  "engines": string[]     // 可选:使用的引擎(bing,baidu,linuxdo,csdn,duckduckgo,exa,brave,juejin)默认 bing
}

使用示例:

use_mcp_tool({
  server_name: "web-search",
  tool_name: "search",
  arguments: {
    query: "搜索内容",
    limit: 3,  // 可选参数
    engines: ["bing", "csdn", "duckduckgo", "exa", "brave", "juejin"] // 可选参数,支持多引擎组合搜索
  }
})

响应示例:

[
  {
    "title": "示例搜索结果",
    "url": "https://example.com",
    "description": "搜索结果描述文本...",
    "source": "来源",
    "engine": "使用的引擎"
  }
]

fetchCsdnArticle 工具使用

用于获取CSDN博客文章的完整内容。

{
  "url": string    // 使用搜索工具从CSDN搜索结果中获取的URL
}

使用示例:

use_mcp_tool({
  server_name: "web-search",
  tool_name: "fetchCsdnArticle",
  arguments: {
    url: "https://blog.csdn.net/xxx/article/details/xxx"
  }
})

响应示例:

[
  {
    "content": "示例搜索结果"
  }
]

fetchLinuxDoArticle 工具使用

用于获取Linux.do论坛文章的完整内容。

{
  "url": string    // 使用搜索工具从linuxdo搜索结果中获取的URL
}

使用示例:

use_mcp_tool({
  server_name: "web-search",
  tool_name: "fetchLinuxDoArticle",
  arguments: {
    url: "https://xxxx.json"
  }
})

响应示例:

[
  {
    "content": "示例搜索结果"
  }
]

fetchGithubReadme 工具使用

用于获取GitHub仓库的README内容。

{
  "url": string    // GitHub仓库URL(支持HTTPS、SSH格式)
}

使用示例:

use_mcp_tool({
  server_name: "web-search",
  tool_name: "fetchGithubReadme",
  arguments: {
    url: "https://github.com/Aas-ee/open-webSearch"
  }
})

支持的URL格式:

  • HTTPS: https://github.com/owner/repo
  • HTTPS with .git: https://github.com/owner/repo.git
  • SSH: git@github.com:owner/repo.git
  • 带参数的URL: https://github.com/owner/repo?tab=readme

响应示例:

[
  {
    "content": "<div align=\"center\">\n\n# Open-WebSearch MCP 服务器..."
  }
]

fetchJuejinArticle 工具使用

用于获取掘金文章的完整内容。

{
  "url": string    // 从搜索结果中获取的掘金文章URL
}

使用示例:

use_mcp_tool({
  server_name: "web-search",
  tool_name: "fetchJuejinArticle",
  arguments: {
    url: "https://juejin.cn/post/7520959840199360563"
  }
})

支持的URL格式:

  • https://juejin.cn/post/{文章ID}

响应示例:

[
  {
    "content": "🚀 开源 AI 联网搜索工具:Open-WebSearch MCP 全新升级,支持多引擎 + 流式响应..."
  }
]

使用限制

由于此工具通过抓取多引擎搜索结果工作,请注意以下重要限制:

  1. 速率限制

    • 短时间内进行过多搜索可能导致使用的引擎暂时屏蔽请求
    • 建议:
      • 保持合理的搜索频率
      • 合理使用limit参数
      • 必要时在搜索之间添加延迟
  2. 结果准确性

    • 取决于相应引擎的HTML结构,引擎更新时可能失效
    • 部分结果可能缺少描述等元数据
    • 复杂的搜索操作符可能无法按预期工作
  3. 法律条款

    • 此工具仅供个人使用
    • 请遵守相应引擎的服务条款
    • 根据实际使用情况实施适当的速率限制
  4. 搜索引擎配置

    • 默认搜索引擎可通过 DEFAULT_SEARCH_ENGINE 环境变量设置
    • 支持的引擎:bing, duckduckgo, exa, brave
    • 搜索特定网站时使用默认引擎
  5. 代理配置:

    • 当某些搜索引擎在特定区域不可用时,可以配置HTTP代理
    • 使用环境变量 USE_PROXY=true 启用代理
    • 使用 PROXY_URL 配置代理服务器地址

贡献

欢迎提交问题报告和功能改进建议!

贡献者指南

如果你想分叉此仓库并发布自己的Docker镜像,需要进行以下配置:

GitHub Secrets 配置

为了启用自动Docker镜像构建和发布,请在您的GitHub仓库设置中添加以下secrets(设置 → Secrets and variables → Actions):

必需的Secrets:

  • GITHUB_TOKEN: 由GitHub自动提供(无需设置)

可选的Secrets(用于阿里云ACR):

  • ACR_REGISTRY: 您的阿里云容器镜像服务URL(例如,registry.cn-hangzhou.aliyuncs.com
  • ACR_USERNAME: 您的阿里云ACR用户名
  • ACR_PASSWORD: 您的阿里云ACR密码
  • ACR_IMAGE_NAME: 您在ACR中的镜像名称(例如,your-namespace/open-web-search

CI/CD 工作流

仓库包含一个GitHub Actions工作流(.github/workflows/docker.yml),它会自动:

  1. 触发条件:

    • 推送至 main 分支
    • 推送版本标签(v*
    • 手动触发工作流
  2. 构建并推送至:

    • GitHub容器镜像服务(ghcr.io) - 始终启用
    • 阿里云容器镜像服务 - 仅在配置了ACR secrets时启用
  3. 镜像标签:

    • ghcr.io/your-username/open-web-search:latest
    • your-acr-address/your-image-name:latest(如果配置了ACR)

分叉并发布步骤:

  1. 分叉仓库 到您的GitHub账户
  2. 配置secrets(如果您需要ACR发布):
    • 转到您分叉的仓库中的设置 → Secrets and variables → Actions
    • 添加上述列出的ACR相关secrets
  3. 推送更改main 分支或创建版本标签
  4. GitHub Actions 将自动构建并推送 您的Docker镜像
  5. 使用您的镜像,更新Docker命令:
    docker run -d --name web-search -p 3000:3000 -e ENABLE_CORS=true -e CORS_ORIGIN=* ghcr.io/your-username/open-web-search:latest
    

注意事项:

  • 如果您不配置ACR secrets,工作流将仅发布至GitHub容器镜像服务
  • 确保您的GitHub仓库已启用Actions
  • 工作流将使用您的GitHub用户名(转换为小写)作为GHCR镜像名称

Star 历史

如果您觉得这个项目有帮助,请考虑给它一个 ⭐ Star!

Star History Chart

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档