DoH MCP Server

DoH MCP Server

Provides DNS over HTTPS (DoH) query capabilities for AI models by querying multiple public DoH servers in parallel and using a consensus algorithm to return the fastest and most reliable DNS resolution results.

Category
访问服务器

README

DoH MCP Server

基于 Cloudflare Workers 的 DNS over HTTPS (DoH) 服务器,集成 Model Context Protocol (MCP) 支持,为 AI 模型提供 DNS 查询功能。

🌟 功能特性

  • 并行 DNS 查询: 同时查询多个公共 DoH 服务器获取最快可靠的结果
  • 智能共识算法: 自动选择最具共识性的 DNS 解析结果
  • 完整 MCP 支持: 标准化的工具和资源接口
  • Web 可视化界面: 美观的前端查询面板,支持实时调试
  • 多种记录类型: 支持 A、AAAA、CNAME、MX、TXT、NS、PTR、SRV、SOA 记录
  • 调试功能: 详细的多服务器响应分析
  • REST API: 提供标准 HTTP API 接口
  • 高性能: 基于 Cloudflare Workers 的边缘计算
  • TypeScript 开发: 完整的类型安全和现代化架构

🚀 快速部署

一键部署

Deploy to Workers

命令行部署

npm create cloudflare@latest -- my-doh-server --template=https://github.com/Randark-JMT/doh-mcp

本地开发

# 克隆项目
git clone https://github.com/Randark-JMT/doh-mcp.git
cd MCPs/doh-worker

# 安装依赖
npm install

# 本地开发
npm run dev

# 部署到生产环境
npm run deploy

🔧 MCP 工具

1. dns_lookup

执行域名的 DNS 查询,返回最佳结果。

{
  domain: string,        // 要查询的域名
  type?: DNSRecordType,  // DNS 记录类型 (默认: "A")
  timeout?: number       // 超时时间,毫秒 (默认: 500)
}

示例用法:

  • dns_lookup({"domain": "google.com"})
  • dns_lookup({"domain": "example.com", "type": "MX"})
  • dns_lookup({"domain": "cloudflare.com", "type": "AAAA", "timeout": 1000})

2. dns_debug

获取多个 DoH 服务器的详细调试信息,用于故障排查。

{
  domain: string,        // 要调试的域名
  type?: DNSRecordType,  // DNS 记录类型 (默认: "A")
  timeout?: number       // 超时时间,毫秒 (默认: 2000)
}

示例用法:

  • dns_debug({"domain": "problematic-domain.com"})
  • dns_debug({"domain": "example.com", "type": "TXT", "timeout": 5000})

3. get_doh_servers

获取所有可用的 DoH 服务器列表。

{}  // 无需参数

4. dns_record_types

获取支持的 DNS 记录类型说明。

{}  // 无需参数

🌐 支持的 DoH 服务器

  • DNSPod: https://doh.pub/dns-query
  • Alidns: https://dns.alidns.com/dns-query
  • 360: https://doh.360.cn
  • Google: https://dns.google/dns-query
  • Cloudflare: https://cloudflare-dns.com/dns-query
  • Quad9: https://dns.quad9.net/dns-query
  • DNS.SB: https://doh.dns.sb/dns-query
  • OpenDNS: https://doh.opendns.com/dns-query
  • AdGuard: https://dns.adguard-dns.com/dns-query

📊 支持的 DNS 记录类型

类型 说明 用途
A IPv4 地址记录 域名到 IPv4 地址映射
AAAA IPv6 地址记录 域名到 IPv6 地址映射
CNAME 别名记录 域名别名
MX 邮件交换记录 邮件服务器配置
TXT 文本记录 SPF、DKIM、验证等
NS 名称服务器记录 域名服务器信息
PTR 反向 DNS 记录 IP 地址到域名映射
SRV 服务记录 服务发现
SOA 授权开始记录 域管理信息

🔌 连接方式

Cloudflare AI Playground

  1. 访问 https://playground.ai.cloudflare.com/
  2. 输入您的 MCP 服务器 URL: your-doh-server.your-account.workers.dev/sse
  3. 开始使用 DNS 查询工具!

Claude Desktop

在 Claude Desktop 设置中添加配置:

{
  "mcpServers": {
    "doh-server": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://your-doh-server.your-account.workers.dev/sse"
      ]
    }
  }
}

其他 MCP 客户端

支持标准 MCP 协议的任何客户端都可以连接:

  • SSE 端点: /sse
  • HTTP 端点: /mcp

🛠️ API 端点

Web 界面

  • GET / - 主页面(Web 查询界面)
  • GET /debug - 调试页面(同主页面)

MCP 协议端点

  • POST /sse - MCP SSE 连接
  • GET /sse - MCP SSE 初始化
  • POST /mcp - MCP HTTP 协议

REST API 端点

  • POST /api/dns/lookup - DNS 查询 API
  • POST /api/dns/debug - DNS 调试 API

传统端点

  • GET /dns-query - 传统 DoH 查询接口(兼容性)

REST API 使用示例

DNS 查询 API

curl -X POST https://your-worker.workers.dev/api/dns/lookup \
  -H "Content-Type: application/json" \
  -d '{"domain": "google.com", "type": "A", "timeout": 1000}'

DNS 调试 API

curl -X POST https://your-worker.workers.dev/api/dns/debug \
  -H "Content-Type: application/json" \
  -d '{"domain": "google.com", "type": "A", "timeout": 2000}'

🏗️ 架构特点

智能共识算法

  • 并行查询多个 DoH 服务器
  • 统计答案一致性
  • 选择共识度最高的结果
  • 优选响应时间最快的服务器

容错机制

  • 500ms 默认超时保护
  • 自动跳过失败的服务器
  • 详细的错误信息记录
  • 优雅的降级处理

现代化开发

  • TypeScript 完整类型支持
  • Biome 代码格式化和检查
  • Cloudflare Workers 边缘计算
  • 标准 MCP 协议实现

🔧 配置选项

超时时间建议

  • 快速查询: 100-500ms
  • 标准查询: 500-1000ms
  • 调试模式: 2000-5000ms
  • 网络不佳: 5000-10000ms

性能优化

  • 使用较短超时时间提高响应速度
  • 调试模式使用较长超时获取完整信息
  • 根据网络环境调整超时参数

📝 开发说明

项目结构

doh-worker/
├── src/
│   └── index.ts              # 主要业务逻辑
├── package.json              # 项目依赖
├── wrangler.jsonc           # Cloudflare Workers 配置
├── tsconfig.json            # TypeScript 配置
├── biome.json              # 代码格式化配置
├── worker-configuration.d.ts # 类型定义
└── README.md               # 项目文档

添加新的 DNS 工具

  1. DoHMCP 类的 init() 方法中添加新工具
  2. 使用 this.server.tool() 定义工具
  3. 使用 Zod 定义参数验证schema
  4. 实现异步处理函数

添加新的 DoH 服务器

  1. DOH_SERVERS 对象中添加新服务器
  2. 确保服务器支持标准 DoH 协议
  3. 测试服务器的可用性和响应时间

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🔗 相关链接

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选