分布式全局搜索服务

DDGS MCP Server是一个为AI代理提供跨多搜索引擎的强大网络搜索能力的分布式全局搜索服务,支持文本、图片、视频、新闻和书籍等多种搜索类型。

  • by AlirezaF80
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AlirezaF80/ddgs-mcp-wrapper

使用说明

DDGS MCP 服务器

一个封装了(相关功能的)模型上下文协议(MCP)服务器 DDGS(Dux分布式全局搜索) 该库为AI代理提供了跨多个搜索引擎的强大网页搜索功能。

注: 整个代码库由Claude Sonnet 4.5生成。仓库所有者对使用此软件可能引发的任何问题、错误或故障不承担任何责任。使用前请自行承担风险。

特点/功能

搜索类型

  • 文本搜索在Bing、Brave、DuckDuckGo、Google、Mojeek、Yahoo、Wikipedia等网站上进行网页搜索
  • 图片搜索使用过滤器按大小、颜色、类型、布局和许可证搜索图片
  • 视频搜索使用分辨率、时长和许可证筛选器查找视频
  • 新闻搜索从多个来源搜索新闻文章
  • 书籍搜索在安娜的档案库中搜索书籍

高级功能

  • 多个搜索引擎在后端之间自动切换以确保可靠性
  • 搜索运算符支持文件类型、网站、标题中包含、URL中包含以及布尔运算符
  • 区域搜索支持国家语言组合(如us-en、uk-en、cn-zh等)
  • 代理支持HTTP/HTTPS/SOCKS5 代理,包括 Tor 浏览器集成
  • 灵活过滤安全搜索、时间限制和内容特定过滤器

安装

先决条件

  • Python 3.9 或更高版本
  • pip(在计算机领域,通常指Python的包管理工具,用于安装和管理Python软件包)

设置

  1. 克隆或导航到仓库:

    cd "d:\MCP Servers\ddgs-mcp-wrapper"
    
  2. 创建一个虚拟环境 (推荐):

    python -m venv venv
    .\venv\Scripts\Activate.ps1
    
  3. 安装依赖项:

    pip install -r requirements.txt
    

    或者直接安装:

    pip install mcp ddgs pydantic
    

使用方法

运行服务器

独立的;单机的

python server.py

使用MCP客户端配置

在您的MCP客户端配置中添加(例如,Claude Desktop、Cline等):

对于Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "ddgs-search": {
      "command": "python",
      "args": ["d:\\MCP Servers\\ddgs-mcp-wrapper\\server.py"],
      "env": {
        "DDGS_PROXY": ""
      }
    }
  }
}

为克莱恩(Cline) (.vscode/settings.json):

{
  "mcp.servers": {
    "ddgs-search": {
      "command": "python",
      "args": ["d:\\MCP Servers\\ddgs-mcp-wrapper\\server.py"]
    }
  }
}

与UV配合使用(替代方案)

如果你更喜欢使用 uv:

uvx --from mcp ddgs-mcp-server

可用工具

1. ddgs文本搜索

在网上搜索文本内容。

参数:

  • query (必填):带有可选运算符的搜索查询
  • region区域代码(默认:“us-en”)
  • safesearch“开启”、“适度”或“关闭”(默认:“适度”)
  • timelimit“d”(天),“w”(周),“m”(月),“y”(年)
  • max_results最大结果数(1-100,默认:10)
  • backend“auto”或以逗号分隔的后端(默认:“auto”)
  • proxy代理URL或“tb”用于Tor浏览器

示例:

{
  "query": "python machine learning filetype:pdf",
  "region": "us-en",
  "max_results": 20,
  "timelimit": "y"
}

2. ddgs图片搜索

使用筛选器搜索图片。

参数:

  • query (必填):图片搜索查询
  • region, safesearch, timelimit, max_results与文本搜索相同
  • size“小”、“中”、“大”、“壁纸”
  • color“颜色”,“单色”,“红色”,“橙色”,“黄色”,“绿色”,“蓝色”等。
  • type_image“照片”、“剪贴画”、“gif”、“透明”、“线条”
  • layout“方形”,“高”,“宽”
  • license_image“any”(任意)、“Public”(公开)、“Share”(分享)、“ShareCommercially”(商业性分享)、“Modify”(修改)、“ModifyCommercially”(商业性修改)

3. ddgs视频搜索

搜索视频。

参数:

  • query (必填):视频搜索查询
  • region, safesearch, timelimit, max_results与文本搜索相同
  • resolution“高”或“标准”
  • duration“短”,“中”,“长”
  • license_videos“creativeCommon”,“youtube”

4. ddgs_news_search(可译为“ddgs新闻搜索”)

搜索新闻文章。

参数:

  • query (必填):新闻搜索查询
  • region, safesearch, timelimit, max_results与文本搜索相同
  • backend“auto”(自动)、“bing”(必应)、“duckduckgo”(搜狗,注:此处为直译,实际应指DuckDuckGo搜索引擎)、“yahoo”(雅虎)

5. ddgs书籍搜索

搜索书籍。

参数:

  • query (必填):书籍搜索查询(书名、作者、ISBN)
  • max_results最大结果数(1-100,默认:10)

搜索运算符

文本搜索支持高级操作符:

运算符 描述
cats dogs 关于猫或狗的结果
"exact phrase" 短语完全匹配
cats -dogs 结果中狗狗数量减少
cats +dogs 结果中显示更多狗狗
filetype:pdf 特定文件类型(pdf、doc、xls、ppt、html)
site:example.com 特定领域的结果
-site:example.com 排除特定域名
intitle:keyword 页面标题中的关键词
inurl:keyword URL中的关键词

代理配置

使用Tor浏览器

{
  "proxy": "tb"
}

或者设置环境变量:

$env:DDGS_PROXY = "socks5h://127.0.0.1:9150"

使用自定义代理

{
  "proxy": "http://user:pass@proxy.example.com:8080"
}

支持的协议: http://, https://, socks5://, socks5h://

发展

项目结构

ddgs-mcp-wrapper/
├── server.py           # Main MCP server implementation
├── pyproject.toml      # Project configuration
├── requirements.txt    # Python dependencies
├── README.md          # This file
└── .gitignore         # Git ignore rules

测试服务器

使用MCP客户端进行测试或使用MCP检查器:

npm install -g @modelcontextprotocol/inspector
mcp-inspector python server.py

调试

通过修改启用调试日志记录 server.py:

logging.basicConfig(level=logging.DEBUG)

人工智能代理的提示/技巧

  1. **使用 backend='auto'**自动处理后端临时不可用的情况
  2. 指定区域使用区域代码可提高搜索质量 ar-es, pl-pl, cn-zh
  3. 逐页遍历单次查询返回第一页的结果;如需更多结果,请进行迭代查询
  4. 使用搜索运算符组合运算符以获得精确结果(例如。, "machine learning" filetype:pdf site:.edu)
  5. 为被封锁地区提供的代理如果后端服务器在您所在的国家受到速率限制或被屏蔽,请使用代理

故障排除

常见问题

“模块未找到”错误:

pip install --upgrade mcp ddgs pydantic

速率限制:

  • 使用 backend='auto' 轮流使用引擎
  • 在请求之间添加延迟
  • 使用代理或Tor浏览器

导入错误:

# Verify installation
pip list | Select-String -Pattern "mcp|ddgs|pydantic"

连接超时:

  • 增加超时时间 get_ddgs_instance() 打电话
  • 检查代理配置
  • 尝试不同的后端

许可证

MIT 许可证 - 欢迎在您的项目中自由使用。

做出贡献

欢迎投稿!请:

  1. 为仓库创建分支
  2. 创建一个特性分支
  3. 提交一个拉取请求

资源

免责声明

代码生成: 这个整个项目是由Claude Sonnet 4.5 AI生成的。仓库所有者对因使用此软件而产生的任何问题、错误或后果不承担任何责任。

用法: 此服务器仅供教育和研究用途。请遵守搜索引擎的服务条款和速率限制。使用即表示您自行承担风险。