DuckDuck Go MCP 服务器
A 类 示范背景协议(MCP) 为 AI 助手提供 DuckDuckGo 搜索功能的服务器.
归属: 此项目为叉 日相/达克杜克-姆克普服务器,最初由 日间。这个分叉增加了英语本地化、新闻搜索、区域支持、时间过滤和现代工具.
特征
- 网络搜索 - 以特定区域和时间过滤结果搜索网络
- 新闻搜索 - 搜索有来源和日期信息的最近新闻报道
- 切换优化 - 低VRAM LLMs的可配置结果限制、片段截取和格式化
- 安全搜索 内容过滤(严格、中度、关闭)
- 地区支助 - 不同国家的地方化成果
- 时间过滤 - 按日、周、月、年筛选结果
- 限制费率 - 防止滥用的固定费率限额
- 可配置日志 - 调试、信息、警告、错误或无
安装
先决条件
- 节点.js 18.0.0(与节点24测试)
- 无
安装并构建
npm install
npm run build
可用工具
duckduckgo_web_search
使用 DuckDuckGo 进行网络搜索.
| 参数 | 类型 | 需求 | 默认 | 说明 |
|---|---|---|---|---|
query | 字符串 | 对 | - 说吧 | 搜索查询(最多400个字符) |
limit | 编号 | 没有 | DDG MA RESULTS (英语) | 超越默认结果限制(1-20) |
count | 编号 | 没有 | DDG MA RESULTS (英语) | [折旧:使用 limit成果数目 |
safeSearch | 字符串 | 没有 | "温和" | 过滤器: “收缩”、“中度”或“关闭” |
region | 字符串 | 没有 | "wt-wt" (英语) | 区域代码(如"us-en","uk-en","de-de"等) |
time | 字符串 | 没有 | "所有" (众) | 时间范围:"日","周","月","年","都" |
示例
{
"query": "TypeScript best practices",
"count": 5,
"region": "us-en",
"time": "month"
}
duckduckgo_news_search
搜取近期新闻文章.
| 参数 | 类型 | 需求 | 默认 | 说明 |
|---|---|---|---|---|
query | 字符串 | 对 | - 说吧 | 新闻搜索查询(最多400个字符) |
limit | 编号 | 没有 | DDG MA RESULTS (英语) | 超越默认结果限制(1-20) |
count | 编号 | 没有 | DDG MA RESULTS (英语) | [折旧:使用 limit成果数目 |
safeSearch | 字符串 | 没有 | "温和" | 过滤器: “收缩”、“中度”或“关闭” |
time | 字符串 | 没有 | "所有" (众) | 时间范围:"日","周","月","年","都" |
示例
{
"query": "artificial intelligence",
"count": 10,
"time": "week"
}
支助地区
| 代码 | 地区 |
|---|---|
wt-wt | 全世界 |
us-en | 美国 |
uk-en | 联合王国 |
ca-en | 加拿大(英语) |
au-en | 澳大利亚 |
de-de | 德国 |
fr-fr | 法国 |
es-es | 页:1 |
it-it | 意大利 |
jp-jp | 日本 |
br-pt | 联合国 |
mx-es | 墨西哥 |
in-en | 印度 |
区域代码 xx-xx 格式也可以工作.
配置
环境变量
Token 优化(用于低VRAM LLMs)
| 变量 | 默认 | 说明 |
|---|---|---|
DDG_MAX_RESULTS | 3个 | 返回结果的默认数 |
DDG_MAX_SNIPPET_LENGTH | 150个 | 每个片段最大字符( 用. ) |
DDG_ENABLE_FULL_CONTENT | 虚假 | 设定为“ true ” 以禁用校正 |
DDG_STRIP_EMOJI | 虚假 | 设定为“ true ” 从标题/ 文本中删除 |
DDG_OUTPUT_FORMAT | "强烈" | 选项:“强烈”、“json”、“最小” |
限制费率
| 变量 | 默认 | 说明 |
|---|---|---|
RATE_LIMIT_PER_SECOND | 1个 | 每秒最大请求数 |
RATE_LIMIT_PER_MONTH | 15000个 | 每月最多请求数 |
日志
| 变量 | 默认 | 说明 |
|---|---|---|
LOG_LEVEL | 信息( i) | 日志级别:调试、信息、警告、错误、无 |
实例
# Token-optimized for low VRAM (12GB RTX 5070)
DDG_MAX_RESULTS=3 DDG_MAX_SNIPPET_LENGTH=150 npm run start
# Full content for high-VRAM systems
DDG_MAX_RESULTS=10 DDG_MAX_SNIPPET_LENGTH=500 DDG_ENABLE_FULL_CONTENT=true npm run start
# Debug logging
LOG_LEVEL=debug npm run start
一体化
克劳德桌面
添加到您的 Claude 桌面配置 :
马可斯: ~/Library/Application Support/Claude/claude_desktop_config.json
窗口 : %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"duckduckgo": {
"command": "npx",
"args": ["-y", "@ericthered926/duckduckgo-mcp-server"]
}
}
}
MCPO(开放网络信息)
对于 方案干事 一体化:
{
"mcpServers": {
"duckduckgo": {
"command": "npx",
"args": ["-y", "@ericthered926/duckduckgo-mcp-server"],
"env": {
"DDG_MAX_RESULTS": "3",
"DDG_MAX_SNIPPET_LENGTH": "150",
"DDG_ENABLE_FULL_CONTENT": "false"
}
}
}
}
地方发展
{
"mcpServers": {
"duckduckgo": {
"command": "node",
"args": ["/path/to/duckduckgo-mcp-server/build/index.js"],
"env": {
"LOG_LEVEL": "debug"
}
}
}
}
发展
脚本
| 命令 | 说明 |
|---|---|
npm run build | 编译类型脚本 |
npm run start | 运行服务器 |
npm run dev | 开发的监视模式 |
npm run lint | 运行 ESLint + Pretier 检查 |
npm run lint:fix | 自动补丁问题 |
npm run format | Pretier 格式代码 |
npm run test | 运行测试 |
npm run typecheck | 只检查脚本类型 |
调试
使用 MCP 检查员数字 :
npx @modelcontextprotocol/inspector node build/index.js
项目结构
duckduckgo-mcp-server/
├── src/
│ └── index.ts # Main server (web + news search)
├── test/
│ └── server.test.js # Smoke tests
├── build/ # Compiled output
├── .husky/ # Pre-commit hooks
├── eslint.config.js # ESLint 9.x flat config
├── tsconfig.json # Strict TypeScript config
├── .prettierrc # Prettier formatting
├── .editorconfig # Editor settings
└── .nvmrc # Node version (24)
费率限制
默认利率限制是保守的,以避免被 DuckDuckGo 封锁:
- 每秒1个请求 - 防止限制费率
- 每月15 000项请求 - 合理的月上限
需要时通过环境变量调整.
解决问题
服务器不会启动
- 检查 Node.js 版本 :
node --version(应该18岁) - 重建:
npm run build - 检查构建输出中的类型脚本出错
费率限制出错
- 等待限制窗口重置( 每秒1秒, 或者调整限制)
- 检查多个实例是否共享同一计数器
未返回结果
- 尝试不同的查询或删除时间过滤器
- 检查SafeSearch是否屏蔽结果
- DuckDuckGo 对于非常具体的查询可能不会返回结果
调试日志
启用调试日志以查看详细请求信息 :
LOG_LEVEL=debug npm run start
贷项
这个项目是一个叉子 日相/达克杜克-姆克普服务器,最初由 日间。 。 。 .
叉子里有什么新东西
- 调试优化 - 低VRAM LLMs的可配置结果限制和片段截取
- 强烈输出格式 - 单行结果,以尽量减少象征性使用
- URL 清理 - 条状物跟踪参数(Utm-X、滑行、滑行等)
limit参数 - 在需要更多上下文时, LLM 能够覆盖默认- 英语本地化( 所有评论和输出)
- 新闻搜索工具
duckduckgo_news_search(中文(简体) ) - 对地方成果的区域/地方支助
- 时间范围过滤
- 通过配置日志
LOG_LEVEL - 现代 ESLint 9.x 平面配置
- 初步格式化
- Husky 预承诺钩
- 综合测试套件
- 严格类型脚本配置
许可证
麻省理工学院-见 自由主义 详细情况.