Token导航 LogoToken导航

MCP Server · 搜索检索

Chatmooc Duckduckgo MCP Server

基于Model Context Protocol (MCP)的DuckDuckGo搜索服务,提供网页搜索与网页内容抓取功能,适用于Claude Desktop、Claude Code或其他MCP客户端。

stdio官方级别未说明来源级核验工具 2
搜索PythonClaudeClaude Desktop

快速开始

作者 / 组织
Leonx01
提供方
Leonx01
运行时
Docker

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Chatmooc Duckduckgo MCP Server 属于搜索检索类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

搜索检索

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

docker run -d -p 8000:8000 \

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

ChatMooc DuckDuckGo Search MCP Server

项目简介

这是一个基于 Model Context Protocol (MCP) 的 DuckDuckGo 搜索服务,提供 网页搜索 与 网页内容抓取 两个工具,并内置速率限制与安全过滤配置。项目使用 FastMCP 框架构建,适用于 Claude Desktop、Claude Code 或其他 MCP 客户端。

本仓库基于 nickclyde/duckduckgo-mcp-server 派生,增加了 LangGraph Client 适配以及 HTTP 传输支持的示例与说明。

Docker 部署(推荐)

docker compose up --build -d

# 或使用原生 Docker
docker build -t duckduckgo-mcp-server .
docker run -d -p 8000:8000 \
  -e DDG_SAFE_SEARCH=MODERATE \
  -e DDG_REGION= \
  duckduckgo-mcp-server

HTTP 端点:http://localhost:8000/mcp

功能特性

  • DuckDuckGo 网页搜索(解析 HTML 结果)
  • 网页正文抓取(移除脚本/样式/导航等非正文元素)
  • 速率限制:搜索 30 次/分钟,抓取 20 次/分钟
  • SafeSearch 与地区/语言配置
  • 适配 LangGraph 客户端(支持 stdio 与 HTTP 连接)

架构概览

核心实现位于 src/duckduckgo_mcp_server/server.py:

  • DuckDuckGoSearcher:向 https://html.duckduckgo.com/html 发送 POST 请求并解析结果
  • WebContentFetcher:抓取网页并提取纯文本内容(默认最大 8000 字符)
  • RateLimiter:滑动窗口限流

对外暴露两个 MCP 工具:search 与 fetch_content。

快速开始

uvx duckduckgo-mcp-server

安装

uv pip install duckduckgo-mcp-server

使用方式

Claude Desktop

配置文件路径:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

基础配置:

{
    "mcpServers": {
        "ddg-search": {
            "command": "uvx",
            "args": ["duckduckgo-mcp-server"]
        }
    }
}

带 SafeSearch 和地区配置:

{
    "mcpServers": {
        "ddg-search": {
            "command": "uvx",
            "args": ["duckduckgo-mcp-server"],
            "env": {
                "DDG_SAFE_SEARCH": "STRICT",
                "DDG_REGION": "cn-zh"
            }
        }
    }
}

修改配置后请重启 Claude Desktop。

Claude Code

claude mcp add ddg-search uvx duckduckgo-mcp-server

传输方式(Transport)

默认使用 stdio。如需 HTTP 传输,可选择 SSE 或 Streamable HTTP。

# SSE
uvx duckduckgo-mcp-server --transport sse

# Streamable HTTP(适合 Docker/远程)
uvx duckduckgo-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000

HTTP 端点为:http://localhost:8000/mcp。

LangGraph Client 适配

通过 langchain-mcp-adapters 的 MultiServerMCPClient 即可接入 LangGraph。

注意命名差异:

  • 服务端 CLI 传输参数:--transport streamable-http
  • 客户端 transport 键:streamable_http

stdio 示例

from langchain_mcp_adapters.client import MultiServerMCPClient

client = MultiServerMCPClient(
    connections={
        "duckduckgo": {
            "command": "uvx",
            "args": ["duckduckgo-mcp-server"],
            "transport": "stdio",
        }
    }
)

HTTP 示例

from langchain_mcp_adapters.client import MultiServerMCPClient

client = MultiServerMCPClient(
    connections={
        "duckduckgo": {
            "transport": "streamable_http",
            "url": "http://localhost:8000/mcp",
        }
    }
)

可参考示例文件:

  • tests/example_langgraph_direct.py
  • tests/example_langgraph_http.py
  • tests/test_langgraph_integration.py

MCP 工具说明

1) search

async def search(query: str, max_results: int = 10, region: str = "") -> str

参数说明:

  • query:搜索关键词
  • max_results:最多返回结果数(默认 10,建议 1-20)
  • region:地区/语言代码(可覆盖默认值)

返回值为格式化文本,包含标题、链接与摘要。

2) fetch_content

async def fetch_content(url: str, start_index: int = 0, max_length: int = 8000) -> str

参数说明:

  • url:网页 URL(需以 http/https 开头)
  • start_index:内容起始字符位置(分页使用)
  • max_length:最大返回字符数(默认 8000)

返回值为清洗后的正文文本,并附带分页元信息。

配置项(启动时读取)

  • DDG_SAFE_SEARCH:STRICT / MODERATE(默认)/ OFF
  • DDG_REGION:默认地区/语言代码,例如 us-en、cn-zh、jp-ja、wt-wt

开发与测试

# 安装依赖
uv sync

# 本地运行
uv run duckduckgo-mcp-server

# MCP Inspector
mcp dev src/duckduckgo_mcp_server/server.py

# 全部测试
uv run python -m pytest src/duckduckgo_mcp_server/ -v

# 单元测试
uv run python -m pytest src/duckduckgo_mcp_server/test_server.py -v

# E2E 测试
uv run python -m pytest src/duckduckgo_mcp_server/test_e2e.py -v

# LangGraph 集成测试(需要 OPENAI_API_KEY)
python tests/test_langgraph_integration.py

常见问题

  • LangGraph 代理测试需要设置 OPENAI_API_KEY,否则只会运行工具加载测试。
  • 如果使用 HTTP 传输,请确保服务端以 streamable-http 启动,并访问 /mcp 端点。

致谢

  • nickclyde/duckduckgo-mcp-server 原始项目
  • DuckDuckGo 搜索服务
  • MCP 与 FastMCP 框架
  • httpx、beautifulsoup4 等关键依赖
  • LangGraph 与 langchain-mcp-adapters

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

网页搜索Python本地部署网页内容抓取速率限制MCP协议LangGraph适配

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Chatmooc Duckduckgo MCP Server

MCP World · 本页

2stdio有1 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Chatmooc Duckduckgo MCP Server 怎么安装?

公开资料给出的安装命令是 docker run -d -p 8000:8000 \,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Chatmooc Duckduckgo MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

Chatmooc Duckduckgo MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Chatmooc Duckduckgo MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Chatmooc Duckduckgo MCP Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP