mcpField
M
MCP DuckDuckResearch

MCP DuckDuckResearch

本地服务
github.com/bkataru-workshop搜索与检索186 周前更新

关于 MCP DuckDuckResearch

MCP DuckDuckResearch 是一个面向需要网页检索与内容采集的 MCP 服务,结合 DuckDuckGo 搜索、网页转 Markdown 和截图功能。它还提供安全搜索选项,并处理内容校验及反爬限制。

主要功能

  1. 01使用 DuckDuckGo 搜索网页
  2. 02提取网页内容并转换为 Markdown
  3. 03截取网页并优化图像尺寸
  4. 04配置安全搜索级别
  5. 05处理反爬检测与内容校验

适用场景

  1. 01搜索主题并获取网页结果
  2. 02将网页内容提取为 Markdown
  3. 03为网页采集流程保存截图

MCP 相关

该 MCP 服务向客户端提供 DuckDuckGo 搜索、网页内容提取和截图工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP DuckDuckResearch

一个 MCP(Model Context Protocol)服务,结合了 DuckDuckGo 搜索功能、网页内容提取和截图功能。该服务弥合了搜索信息与以编程方式访问网页内容之间的差距。

功能

  • 🔍 DuckDuckGo 搜索:使用 DuckDuckGo 搜索引擎搜索网络
  • 📄 内容提取:访问网页并将其内容提取为 Markdown
  • 📸 截图:为网页截图,并自动优化尺寸
  • ⚡ 可靠的错误处理:内置防止机器人检测和内容验证的机制
  • 🔒 安全搜索选项:可配置安全搜索级别,以筛选合适的内容

安装

# Clone the repository
git clone https://github.com/yourusername/mcp-duckduckresearch.git
cd mcp-duckduckresearch

# Install dependencies
npm install

# Build the project
npm run build

在 Cline 和 Roo Code 中使用

在 Cline 中安装
  1. 首先按照上述安装步骤构建项目

  2. 在 Cline 设置中配置 MCP 服务:

    编辑 Cline MCP 设置文件: %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json

    添加以下配置:

    {
      "mcpServers": {
        "duckduckmcp": {
          "command": "node",
          "args": ["path/to/mcp-duckduckresearch/build/index.js"],
          "disabled": false,
          "alwaysAllow": []
        }
      }
    }
    

    将 path/to/mcp-duckduckresearch 替换为克隆此代码库的实际路径。

可用工具

配置完成后,Roo Code 中将提供以下工具:

1. search_duckduckgo

使用 DuckDuckGo 搜索网络。在 Roo Code 中的用法示例:

<use_mcp_tool>
<server_name>duckduckmcp</server_name>
<tool_name>search_duckduckgo</tool_name>
<arguments>
{
  "query": "typescript best practices",
  "options": {
    "region": "zh-cn",
    "safeSearch": "MODERATE",
    "numResults": 10
  }
}
</arguments>
</use_mcp_tool>
2. visit_page

访问网页并将其内容提取为 Markdown:

<use_mcp_tool>
<server_name>duckduckmcp</server_name>
<tool_name>visit_page</tool_name>
<arguments>
{
  "url": "https://example.com",
  "takeScreenshot": false
}
</arguments>
</use_mcp_tool>
3. take_screenshot

为当前加载的页面截图:

<use_mcp_tool>
<server_name>duckduckmcp</server_name>
<tool_name>take_screenshot</tool_name>
<arguments>
{}
</arguments>
</use_mcp_tool>
Roo Code 中的工作流示例

以下是搜索信息并访问搜索结果的完整示例:

  1. 首先,搜索信息:
<use_mcp_tool>
<server_name>duckduckmcp</server_name>
<tool_name>search_duckduckgo</tool_name>
<arguments>
{
  "query": "TypeScript best practices",
  "options": {
    "numResults": 10,
    "safeSearch": "MODERATE"
  }
}
</arguments>
</use_mcp_tool>
  1. 然后,访问其中一条搜索结果:
<use_mcp_tool>
<server_name>duckduckmcp</server_name>
<tool_name>visit_page</tool_name>
<arguments>
{
  "url": "https://example.com/typescript-practices",
  "takeScreenshot": true
}
</arguments>
</use_mcp_tool>

服务会自动处理:

  • 浏览器初始化和清理
  • 内容提取并转换为 Markdown
  • 截图和优化
  • 错误处理和重试

开发

前置条件
  • Node.js(v18 或更高版本)
  • npm
  • 可运行 Chrome/Chromium 的系统(用于 Playwright)
设置开发环境
# Install dependencies
npm install

# Start in development mode
npm run dev

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Format code
npm run format

# Lint code
npm run lint
项目结构
mcp-duckduckresearch/
├── src/
│   ├── browser.ts     # Browser management and content extraction
│   ├── search.ts      # DuckDuckGo search implementation
│   ├── types.ts       # Type definitions and schemas
│   ├── utils.ts       # Utility functions
│   └── index.ts       # Main server implementation
├── tests/
│   ├── unit/          # Unit tests
│   └── integration/   # Integration tests
└── package.json       # Project configuration

测试

项目使用 Vitest 进行测试。测试分为:

  • 单元测试:测试单个组件和函数
  • 集成测试:测试完整工作流
  • 测试覆盖率:目标为 >80% 的覆盖率

运行测试:

# Run all tests
npm test

# Run with coverage
npm run test:coverage

贡献

  1. Fork 此代码库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add some amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。