Token导航 LogoToken导航TokenDH.com
Easydns MCP logo
AI代理未说明官方级别未说明来源级核验

Easydns MCP

MCP Server

easyDNS MCP Server是一个安全加固的DNS管理服务器,允许AI代理通过安全的审计接口管理DNS记录、域名、邮件映射和名称服务器。

工具数

17

提示词数

0

GitHub Stars

2

资源数

0
TypeScriptClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

easydns

提供方

easydns

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

easyDNS MCP服务器

加强安保 模型上下文协议 服务器 easyDNS REST API。让AI代理通过安全、经过审核的界面管理DNS记录、域、邮件映射和名称服务器。

为Claude Code、Cowork、OpenClaw、ChatGPT代理或任何其他代理AI构建。包括非MCP代理的SKILL.md bash回退。

easyDNS MCP Server

为什么存在

DNS是基础设施。在不久的将来,我们认为人工智能代理和智能端点进行的DNS查询和区域修改将比人类更多。

此服务器将easyDNS API封装为:

  • 默认情况下为最低权限 --仅限沙盒,只读,开箱即用禁用所有写入
  • 平面工具 --每次操作一个工具(dns_record_delete,不 domain_manage(action: "delete")),这样代理主管就能准确地看到所请求的内容
  • 确认字符串 --破坏性操作需要明确 confirm 现场("DELETE", "RELOAD", "UPDATE_NS")
  • 域名分配列表/域名列表 --将操作锁定到特定域,保护关键域
  • 审计跟踪 --每个使用相关ID记录的工具调用,从不记录凭据
  • 政策执行 --RR类型验证、TTL上限、顶点CNAME拒绝、服务器端强制执行

快速开始

cd easydns-mcp
npm install
npm run build

# Set credentials
cp .env.example .env
# Edit .env with your EASYDNS_TOKEN and EASYDNS_API_KEY

# Run (sandbox read-only by default)
node dist/index.js

docs/QUICKSTART.md 查看完整的设置指南。

工具

阶段A——只读(始终可用)

工具说明
domain_list列出用户的所有域
domain_info获取域详细信息(到期、服务级别)
dns_records_list列出带ID的区域记录
dns_records_parsed以zonefile格式列出记录
dns_records_search按关键字搜索记录
zone_soa获取SOA序列号
nameservers_get获取分配的名称服务器
mailmaps_list列出电子邮件转发规则
registration_status获取重新锁定/续订状态
domain_check检查可用性和价格

B阶段——写入(需要 EASYDNS_ENABLE_WRITES=true)

工具确认吗?描述
dns_record_add--添加DNS记录
dns_record_modify--按ID修改记录
dns_record_delete"DELETE"按ID删除记录
zone_reload"RELOAD"部队区域再生
nameservers_update"UPDATE_NS"更新名称服务器
mailmaps_create--创建电子邮件转发
mailmaps_delete"DELETE"删除邮件映射

资源(只读参考数据)

URI描述
easydns://geo-regions地理感知记录的地理区域ID
easydns://service/{id}服务级别说明
easydns://subscription/{id}订阅阻止描述

配置

所有配置都是通过环境变量进行的。一切都默认为最安全的选项。

# Required
EASYDNS_TOKEN=              # API token
EASYDNS_API_KEY=            # API key

# Optional
EASYDNS_DOMAIN=             # Default domain

# Safety flags (all default to restrictive)
EASYDNS_SANDBOX=true        # Use sandbox API
EASYDNS_ENABLE_WRITES=false # Allow write operations
EASYDNS_ALLOW_PRODUCTION=false
EASYDNS_ALLOW_DOMAIN_DELETE=false
EASYDNS_ALLOW_USER_MUTATIONS=false

# Domain filtering
EASYDNS_ALLOWED_DOMAINS=    # Comma-separated allowlist (empty = all)
EASYDNS_PROTECTED_DOMAINS=  # Comma-separated denylist (never modify)

分阶段推出

阶段配置工作原理
A. SANDBOX=true, WRITES=false所有阅读工具
B SANDBOX=true, WRITES=true所有针对沙盒的工具
C SANDBOX=false, PRODUCTION=true, WRITES=false生产阅读
D SANDBOX=false, PRODUCTION=true, WRITES=true范围化生产写作

项目结构

easydns-mcp/
├── src/
│   ├── index.ts            # MCP server entry (stdio transport)
│   ├── auth.ts             # Credential loading
│   ├── client.ts           # HTTP client (fetch + Basic Auth)
│   ├── policy.ts           # Guardrails (allowlist, validation, confirmation)
│   ├── logger.ts           # Structured audit logging
│   ├── types.ts            # API response types
│   ├── schemas.ts          # Zod input schemas for all tools
│   ├── tools/              # One file per tool (17 tools)
│   └── resources/          # MCP resources (3 resources)
├── scripts/                # Hardened bash scripts
├── templates/              # Config templates
├── tests/                  # Policy, client, and security tests
├── docs/                   # QUICKSTART, EXAMPLES
├── SKILL.md                # Agent skill doc (bash fallback)
└── skill.json              # Skill metadata

Bash脚本

强化shell脚本 scripts/ 对于直接使用或非MCP试剂:

./scripts/list-records.sh example.com
./scripts/domain-info.sh example.com
./scripts/add-record.sh example.com A www 1.2.3.4 600
./scripts/delete-record.sh example.com 12345  # interactive confirm

所有脚本都使用 set -euo pipefail, umask 077,仅HTTPS,无重定向,通过标头进行身份验证(从不使用CLI参数)。

凭据管理

对于 沙箱/实验室使用,原始环境变量 .env 或者MCP配置很好。

对于 生产,不要在配置文件中放置机密。使用包装器脚本从系统密钥链或机密管理器中提取凭据:

#!/usr/bin/env bash
# scripts/prod-start.sh — production launcher
set -euo pipefail
export EASYDNS_TOKEN=$(security find-generic-password -s easydns-token -w)
export EASYDNS_API_KEY=$(security find-generic-password -s easydns-apikey -w)
export EASYDNS_SANDBOX=false
export EASYDNS_ALLOW_PRODUCTION=true
export EASYDNS_ENABLE_WRITES=true
export EASYDNS_PROTECTED_DOMAINS=critical-domain.com
exec node "$(dirname "$0")/../dist/index.js"

然后将Claude Desktop配置指向包装器,而不是内联机密:

{
  "mcpServers": {
    "easydns": {
      "command": "/path/to/easydns-mcp/scripts/prod-start.sh"
    }
  }
}

这适用于macOS钥匙串(security),1Password命令行界面(op read),或任何其他可以向stdout发送值的秘密存储。

安全模型

  • 仅从env加载凭据,从不记录或作为CLI参数传递
  • common.sh 是内部的-没有暴露通用API包装
  • 所有HTTP请求都使用 --proto =https, --max-redirs 0,30秒超时
  • 每次调用时,根据allowlist/denylist验证域操作
  • 根据easyDNS枚举验证的记录类型(22种类型)
  • TTL上限为300–86400秒
  • 区域顶点的CNAME被阻止(RFC 1034)
  • 破坏性操作需要精确的确认字符串

未暴露

这些端点存在于API中,但被故意排除在外:

  • 域名注册/删除(计费,灾难性)
  • 用户创建/更新(帐户突变)
  • 粘合记录(注册表级别)
  • 主要NS更改(委托关键)
  • 通用REST传递

许可证

麻省理工学院

目录标签

目录标签

TypeScriptClaudeAI代理DNS管理本地部署安全加固API封装域名服务

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

17

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP