# Open-WebSearch
[](https://www.modelscope.cn/mcp/servers/Aasee1/open-webSearch)
[](https://smithery.ai/server/@Aas-ee/open-websearch)



**🇨🇳 中文 | [🇺🇸 English](./README.md)**
`open-websearch` 现已同时提供 MCP server、CLI 和本地 daemon,也可以配合 skill 引导的 agent 工作流一起使用,用于联网搜索与内容抓取,无需 API 密钥。
\n\n# Open-WebSearch MCP Server..."
}
]
```
### fetchWebContent工具使用说明
用于直接抓取公开可访问的 HTTP(S) 链接内容,支持 Markdown 文件(`.md`)和普通网页。
```typescript
{
"url": string, // 公开可访问的 HTTP(S) URL
"maxChars": number // 可选:最大返回字符数(1000-200000,默认30000)
}
```
使用示例:
```typescript
use_mcp_tool({
server_name: "web-search",
tool_name: "fetchWebContent",
arguments: {
url: "https://raw.githubusercontent.com/Aas-ee/open-webSearch/main/README.md",
maxChars: 12000
}
})
```
返回示例:
```json
{
"url": "https://raw.githubusercontent.com/Aas-ee/open-webSearch/main/README.md",
"finalUrl": "https://raw.githubusercontent.com/Aas-ee/open-webSearch/main/README.md",
"contentType": "text/plain; charset=utf-8",
"title": "",
"truncated": false,
"content": "# Open-WebSearch MCP Server ..."
}
```
### fetchJuejinArticle工具使用说明
用于获取掘金文章的完整内容。
```typescript
{
"url": string // 掘金文章URL
}
```
使用示例:
```typescript
use_mcp_tool({
server_name: "web-search",
tool_name: "fetchJuejinArticle",
arguments: {
url: "https://juejin.cn/post/7520959840199360563"
}
})
```
支持的URL格式:
- `https://juejin.cn/post/{文章ID}`
返回示例:
```json
[
{
"content": "🚀 开源 AI 联网搜索工具:Open-WebSearch MCP 全新升级,支持多引擎 + 流式响应..."
}
]
```
## 使用限制
由于本工具通过爬取多引擎搜索结果实现,请注意以下重要限制:
1. **频率限制**:
- 短时间内搜索次数过多可能导致使用的引擎暂时屏蔽请求
- 建议:
- 保持合理的搜索频率
- 审慎使用limit参数
- 必要时可在搜索间设置延迟
2. **结果准确性**:
- 依赖对应引擎的HTML结构,可能随引擎改版失效
- 部分结果可能缺失描述等元数据
- 复杂搜索运算符可能无法按预期工作
3. **法律条款**:
- 本工具仅限个人使用
- 请遵守对应引擎的服务条款
- 建议根据实际使用场景实施适当的频率限制
4. **搜索引擎配置**:
- 可通过环境变量`DEFAULT_SEARCH_ENGINE`设置默认搜索引擎
- 支持的引擎有:bing, duckduckgo, exa, brave, baidu, csdn, juejin, startpage, sogou
- 当搜索特定网站内容时,会自动使用默认搜索引擎
5. **代理服务配置**:
- 当某些搜索引擎在特定地区不可用时,可配置HTTP代理
- 通过环境变量`USE_PROXY=true`启用代理
- 使用`PROXY_URL`配置代理服务器地址
## 贡献指南
欢迎提交问题报告和功能改进建议!
### 贡献者指南
如果您想要fork本仓库并发布自己的Docker镜像,需要进行以下配置:
#### GitHub Secrets配置
要启用自动Docker镜像构建和发布功能,请在您的GitHub仓库设置中添加以下secrets(Settings → 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*`)
- 手动触发workflow
2. **构建并推送到**:
- GitHub Container Registry (ghcr.io) - 始终启用
- 阿里云容器镜像服务 - 仅在配置ACR secrets时启用
3. **镜像标签**:
- `ghcr.io/您的用户名/open-web-search:latest`
- `您的ACR地址/您的镜像名:latest`(如果配置了ACR)
#### Fork和发布步骤:
1. **Fork仓库**到您的GitHub账户
2. **配置secrets**(如果需要ACR发布):
- 进入您fork的仓库的Settings → Secrets and variables → Actions
- 添加上面列出的ACR相关secrets
3. **推送更改**到`main`分支或创建版本标签
4. **GitHub Actions将自动构建并推送**您的Docker镜像
5. **使用您的镜像**,更新Docker命令:
```bash
docker run -d --name web-search -p 3000:3000 -e ENABLE_CORS=true -e CORS_ORIGIN=* ghcr.io/您的用户名/open-web-search:latest
```
#### 注意事项:
- 如果您不配置ACR secrets,工作流程将只发布到GitHub Container Registry
- 确保您的GitHub仓库已启用Actions功能
- 工作流程会使用您的GitHub用户名(转换为小写)作为GHCR镜像名称
## Star History
如果项目对你有帮助,请考虑给个⭐ Star!
[](https://www.star-history.com/#Aas-ee/open-webSearch&Date)