Skip to main content
Glama

dynu-mcp

用于 Dynu 的 MCP 服务器——Dynu 是一家提供动态 DNS、域名注册、电子邮件托管和云计算(VPS)服务的提供商。它将完整的公共 Dynu REST API v2 暴露为 MCP 工具。

概述

  • 无状态 HTTP 服务。绝不持久化任何凭据——每个请求通过请求头提供自己的 API 密钥,该密钥仅在该单个请求的生命周期内使用。

  • 支持并发请求;每个请求的凭据隔离通过 Python contextvars 实现,而不是使用全局/共享客户端实例。

  • 入口点:POST /mcp(MCP 协议)和 GET /health(健康检查)。

  • 默认端口:8080(可通过 MCP_HTTP_PORT 配置)。

Related MCP server: dynadot-mcp

范围

30 个工具,从最初覆盖 Dynu 完整 OpenAPI 3.0 规范的 117 个工具构建中精简而来。此 MCP 运行所在平台会将每个已启用的供应商 MCP 的工具聚合到一次 Gemini/Vertex 模型调用中,该调用最多支持 512 个函数声明——在注册了 50 多个供应商 MCP 的情况下,每个 MCP 都需要保持精简。保留的工具涵盖相同的 6 个类别:dns(8 个——MSPbots 实际的 GET /dns 端点以及核心记录/服务 CRUD)、email(7 个——服务列表/详情、账户创建/读取/更新/删除)、compute(4 个——实例列表/详情/启动/停止)、domain(2 个——列表/详情)、monitor(7 个,完整类别)、ping(2 个,完整类别)。完全移除:域名注册管理(粘合记录、名称服务器、自动续费、锁定/解锁)、电子邮件的黑名单/白名单/别名/分发列表/DKIM 管理,以及计算服务的备份/快照/VNC/重装操作——请参阅 已知缺口。MSPbots 本身只调用 1 个端点(GET /dns),该端点已保留。

身份验证

Dynu 使用单个静态 API 密钥进行身份验证(可在 Dynu 控制面板的 API 凭据区域找到)。MSPbots 自身的集成约定将该密钥作为 API-Key 请求头的原始值发送,此服务器会原样转发。

HEADER 授权参数说明

Header

类型

是否必填

默认值

枚举值

字段描述

Example

X-Dynu-Api-Key

string

Dynu 静态 API Key,原样转发为上游 API-Key 请求头

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

缺少该请求头将返回 401

{
  "error": "Missing credentials",
  "message": "This server requires the X-Dynu-Api-Key header",
  "required_headers": ["X-Dynu-Api-Key"],
  "optional_headers": []
}

环境变量

Variable

类型

是否必填

默认值

说明

MCP_HTTP_PORT

int

8080

HTTP 监听端口

MCP_HTTP_HOST

string

0.0.0.0

HTTP 监听地址

DYNU_BASE_URL

string

https://api.dynu.com/v2

Dynu API 基础 URL

MCP 端点

  • POST /mcp — MCP 协议(可流式 HTTP 传输)

  • GET /health — 健康检查,返回 {"status": "ok"}(纯本地存活探针,不依赖 Dynu API)

工具列表

工具名称源自供应商 OpenAPI 规范中每个操作自身的摘要(例如“Get a list of domains for DNS service” → dynu_get_list_domains_dns_service);唯一的重名冲突(GET /pingPOST /ping 共享相同的摘要)通过 _get/_post 后缀来消除歧义。POST 操作的 body 参数作为通用 dict 接受——有关每个资源的确切字段名称/类型,请参阅供应商 OpenAPI 规范的 Models 部分(链接如下)。

Category

Tool

功能

方法+路径

参数

dns

dynu_add_new_dns_record_dns_service

为 DNS 服务添加新的 DNS 记录。

POST /dns/{id}/record

id(必填), body(必填,dict)

dns

dynu_add_new_dns_service

添加新的 DNS 服务。

POST /dns

body(必填,dict)

dns

dynu_get_details_dns_record_dns_service

获取 DNS 服务的 DNS 记录详情。

GET /dns/{id}/record/{dnsRecordId}

id(必填), dns_record_id(必填)

dns

dynu_get_details_domain_dns_service

获取 DNS 服务的域名详情。

GET /dns/{id}

id(必填)

dns

dynu_get_list_dns_records_dns_service

获取 DNS 服务的 DNS 记录列表。

GET /dns/{id}/record

id(必填)

dns

dynu_get_list_domains_dns_service

获取 DNS 服务的域名列表。

GET /dns

dns

dynu_remove_dns_record_dns_service

从 DNS 服务中移除 DNS 记录。

DELETE /dns/{id}/record/{dnsRecordId}

id(必填), dns_record_id(必填)

dns

dynu_update_existing_dns_record_dns_service

更新 DNS 服务中现有的 DNS 记录。

POST /dns/{id}/record/{dnsRecordId}

id(必填), dns_record_id(必填), body(必填,dict)

domain

dynu_get_details_domain_registration_domain

获取域名注册域名的详情。

GET /domain/{id}

id(必填)

domain

dynu_get_list_domains_domain_registration_service

获取域名注册服务的域名列表。

GET /domain

email

dynu_add_new_email_account_email_service

为电子邮件服务添加新的电子邮件账户。

POST /email/{id}/account

id(必填), body(必填,dict)

email

dynu_get_details_email_account

获取电子邮件账户的详情。

GET /email/{id}/account/{accountId}

id(必填), account_id(必填)

email

dynu_get_details_email_service

获取电子邮件服务的详情。

GET /email/{id}

id(必填)

email

dynu_get_list_email_accounts_email_service

获取电子邮件服务的电子邮件账户列表。

GET /email/{id}/account

id(必填)

email

dynu_get_list_email_services

获取电子邮件服务列表。

GET /email

email

dynu_remove_email_account_email_service

从电子邮件服务中移除电子邮件账户。

DELETE /email/{id}/account/{accountId}

id(必填), account_id(必填)

email

dynu_update_existing_email_account_email_service

更新电子邮件服务中现有的电子邮件账户。

POST /email/{id}/account/{accountId}

id(必填), account_id(必填), body(必填,dict)

compute

dynu_get_instance

获取实例。

GET /compute/instance/{id}

id(必填)

compute

dynu_get_list_instances

获取实例列表。

GET /compute/instance

compute

dynu_start_instance

启动实例。

GET /compute/instance/{id}/start

id(必填)

compute

dynu_stop_suspend_instance

停止(挂起)实例。

GET /compute/instance/{id}/stop

id(必填)

monitor

dynu_add_new_monitor

添加新的监控器。

POST /monitor

body(必填,dict)

monitor

dynu_delete_monitor

删除监控器。

DELETE /monitor/{id}

id(必填)

monitor

dynu_get_details_monitor

获取监控器详情。

GET /monitor/{id}

id(必填)

monitor

dynu_get_list_monitors

获取监控器列表。

GET /monitor

monitor

dynu_limits_associated_monitoring

与监控相关的限制。

GET /monitor/limit

monitor

dynu_pause_monitor

暂停监控器。

GET /monitor/{id}/pause

id(必填)

monitor

dynu_unpause_monitor

恢复监控器。

GET /monitor/{id}/unpause

id(必填)

ping

dynu_ping_api_server_obtain_pong_response_get

Ping API 服务器以获取 pong 响应。

GET /ping

message(必填)

ping

dynu_ping_api_server_obtain_pong_response_post

Ping API 服务器以获取 pong 响应。

POST /ping

body(必填,dict)

测试示例

# Health check
curl -s http://localhost:8080/health

# Call a tool via the MCP protocol (streamable HTTP) — requires an
# initialize handshake first per the MCP spec; abbreviated example below
# shows the tool-call request body only:
curl -s -X POST http://localhost:8080/mcp   -H "X-Dynu-Api-Key: <your-dynu-api-key>"   -H "Content-Type: application/json"   -H "Accept: application/json, text/event-stream"   -H "mcp-session-id: <session-id-from-initialize>"   -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "dynu_get_list_domains_dns_service",
      "arguments": {}
    }
  }'

已实时验证(2026-07-29):dynu_get_list_domains_dns_service(与 MSPbots 自身调用的端点相同,零参数)已通过此运行中的服务器使用真实 API 密钥进行端到端调用,并返回了该账户的真实 DNS 域名记录。

API 参考

已知缺口

  • 经用户明确决定,工具从 117 个精简至 30 个:此 MCP 所运行的后端平台会将所有已启用的供应商 MCP 工具聚合到一次 Gemini/Vertex 模型调用中,而该调用最多支持 512 个函数声明——在注册了 50 多个供应商 MCP 的情况下,每个都必须保持精简。保留:MSPbots 真实的 GET /dns 端点、核心 DNS 记录/服务 CRUD(8 个)、核心邮件服务/账户 CRUD(7 个)、基础计算实例列表/详情/启动/停止(4 个)、域名列表/详情(2 个),以及完整的 Monitor/Ping(9 个)。完全移除:域名注册商管理(glue 记录、nameservers、自动续费、锁定/解锁/取消)、邮件的黑名单/白名单/别名/通讯组列表/DKIM 管理,以及计算的备份/快照/VNC/重装/密码修改操作。如有真实用例需要,这些均可按请求重新添加。

  • 即使经过精简,计算和 DNS 写入操作的风险仍然较高——dynu_start_instance/dynu_stop_suspend_instance 作用于真实的 VPS 实例。请将这些操作视为破坏性/不可逆操作,并在调用前与人工确认。

  • body 参数是未类型化的(dict,而非完整建模——OpenAPI 规范的 Models 部分定义了每个资源的确切 schema(例如 DNS.dnsRecordA),但将所有这些都重现为类型化的 Python 参数超出了范围。调用方应根据所链接的规范来构造 body 字典。

  • 只有 dynu_get_list_domains_dns_service(MSPbots 自己的端点)使用真实账户数据进行了在线验证。其余 29 个工具在结构上是正确的(schema 已验证、MCP 协议 tools/list 已确认、精简后工具数量已重新核实),但未逐一进行冒烟测试——其中几个是写入/破坏性操作,会创建、修改或删除真实的 DNS 记录、邮件账户或 VPS 实例,因此未在实时测试账户上执行。

Related MCP Connectors

Related MCP Servers