🚀 Open-WebSearch MCP Server
Open-WebSearch MCP Server是一個基於多引擎搜索結果的模型上下文協議(MCP)服務器,支持無需API密鑰的免費網絡搜索,為用戶提供便捷、高效的網絡信息獲取途徑。
🚀 快速開始
你可以通過本地安裝或者Docker部署兩種方式啟動Open-WebSearch MCP Server。
✨ 主要特性
- 多引擎網絡搜索:支持使用多個搜索引擎進行網絡搜索,包括bing、baidu、csdn、duckduckgo、exa、brave等,為你提供更全面的搜索結果。
- HTTP代理配置:支持配置HTTP代理,方便在特定區域訪問受限資源。
- 免API密鑰:無需API密鑰或身份驗證,即可使用搜索服務。
- 結構化結果返回:返回包含標題、URL和描述的結構化搜索結果,便於查看和使用。
- 結果數量可配置:支持自定義每次搜索返回的結果數量。
- 默認搜索引擎可定製:可以根據需求設置默認的搜索引擎。
- 文章內容獲取:支持獲取CSDN博客文章的完整內容。
📦 安裝指南
本地安裝
- 克隆或下載本倉庫。
- 安裝依賴:
npm install
- 構建服務器:
npm run build
- 將服務器添加到你的MCP配置中:
Cherry Studio:
{
"mcpServers": {
"web-search": {
"name": "Web Search MCP",
"type": "streamableHttp",
"description": "Multi-engine web search with article fetching",
"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=true
CORS_ORIGIN=*
DEFAULT_SEARCH_ENGINE=duckduckgo
USE_PROXY=true
PROXY_URL=http://your-proxy-server:port
PORT=8080
然後在你的MCP客戶端中進行配置:
{
"mcpServers": {
"web-search": {
"name": "Web Search MCP",
"type": "streamableHttp",
"description": "Multi-engine web search with article fetching",
"isActive": true,
"baseUrl": "http://localhost:3000/mcp"
},
"web-search-sse": {
"transport": {
"name": "Web Search MCP",
"type": "sse",
"description": "Multi-engine web search with article fetching",
"isActive": true,
"url": "http://localhost:3000/sse"
}
}
}
}
💻 使用示例
基礎用法
search
工具使用
{
"query": string,
"limit": number,
"engines": string[]
}
使用示例:
use_mcp_tool({
server_name: "web-search",
tool_name: "search",
arguments: {
query: "search content",
limit: 3,
engines: ["bing", "csdn", "duckduckgo", "exa", "brave"]
}
})
響應示例:
[
{
"title": "Example Search Result",
"url": "https://example.com",
"description": "Description text of the search result...",
"source": "Source",
"engine": "Engine used"
}
]
fetchCsdnArticle
工具使用
用於獲取CSDN博客文章的完整內容。
{
"url": string
}
使用示例:
use_mcp_tool({
server_name: "web-search",
tool_name: "fetchCsdnArticle",
arguments: {
url: "https://blog.csdn.net/xxx/article/details/xxx"
}
})
響應示例:
[
{
"content": "Example search result"
}
]
fetchLinuxDoArticle
工具使用
用於獲取Linux.do論壇文章的完整內容。
{
"url": string
}
使用示例:
use_mcp_tool({
server_name: "web-search",
tool_name: "fetchLinuxDoArticle",
arguments: {
url: "https://xxxx.json"
}
})
響應示例:
[
{
"content": "Example search result"
}
]
📚 詳細文檔
使用限制
由於本工具通過抓取多引擎搜索結果來工作,請注意以下重要限制:
- 速率限制:
- 短時間內進行過多搜索可能會導致所使用的搜索引擎暫時阻止請求。
- 建議:
- 保持合理的搜索頻率。
- 謹慎使用
limit
參數。
- 必要時在搜索之間添加延遲。
- 結果準確性:
- 搜索結果的準確性取決於相應搜索引擎的HTML結構,當搜索引擎更新時可能會失敗。
- 部分結果可能缺少描述等元數據。
- 複雜的搜索運算符可能無法按預期工作。
- 法律條款:
- 本工具僅供個人使用。
- 請遵守相應搜索引擎的服務條款。
- 根據實際使用情況實施適當的速率限制。
- 搜索引擎配置:
- 可以通過
DEFAULT_SEARCH_ENGINE
環境變量設置默認搜索引擎。
- 支持的搜索引擎:bing、duckduckgo、exa、brave。
- 搜索特定網站時使用默認搜索引擎。
- 代理配置:
- 當某些搜索引擎在特定區域不可用時,可以配置HTTP代理。
- 使用環境變量
USE_PROXY=true
啟用代理。
- 使用
PROXY_URL
配置代理服務器地址。
貢獻指南
歡迎提交問題報告和功能改進建議!
貢獻者指南
如果你想分叉本倉庫併發布自己的Docker鏡像,需要進行以下配置:
GitHub Secrets配置
為了啟用自動Docker鏡像構建和發佈,請在你的GitHub倉庫設置(Settings → Secrets and variables → Actions)中添加以下密鑰:
必需密鑰:
GITHUB_TOKEN
:由GitHub自動提供(無需設置)
可選密鑰(適用於阿里雲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
),它會自動執行以下操作:
- 觸發條件:
- 推送到
main
分支。
- 推送版本標籤(
v*
)。
- 手動觸發工作流。
- 構建並推送到:
- GitHub Container Registry(ghcr.io) - 始終啟用。
- 阿里雲容器鏡像服務 - 僅在配置了ACR密鑰時啟用。
- 鏡像標籤:
ghcr.io/your-username/open-web-search:latest
your-acr-address/your-image-name:latest
(如果配置了ACR)
分叉和發佈步驟
- 分叉倉庫:將本倉庫分叉到你的GitHub賬戶。
- 配置密鑰(如果你需要發佈到ACR):
- 進入你分叉倉庫的設置(Settings → Secrets and variables → Actions)。
- 添加上述與ACR相關的密鑰。
- 推送更改:將更改推送到
main
分支或創建版本標籤。
- 自動構建和推送:GitHub Actions將自動構建並推送你的Docker鏡像。
- 使用鏡像:更新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密鑰,工作流將僅發佈到GitHub Container Registry。
- 確保你的GitHub倉庫已啟用Actions。
- 工作流將使用你的GitHub用戶名(轉換為小寫)作為GHCR鏡像名稱。
⭐ Star歷史
如果你覺得這個項目有幫助,請考慮給它一個 ⭐ Star!

項目狀態徽章
語言切換
中文