domain-manager-mcp
Provides tools for managing Cloudflare DNS records, including listing, querying, creating, updating, upserting, and deleting DNS records within an allowed zone, with dry-run and safety safeguards.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@domain-manager-mcplist all A records for iveseenu.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
domain-manager
domain-manager 是用于管理 iveseenu.com Cloudflare DNS 的安全命令行工具。它不是常驻服务,不管理域名注册商、Nameserver、DNSSEC、Cloudflare Zone 设置、SSL/TLS、WAF、Workers 或 API Token。
工具只允许操作 iveseenu.com 及其子域名,并在本地再次执行白名单和敏感记录保护,即使 Cloudflare Token 被意外授予其他 Zone 权限也不会突破该限制。
启动方式
项目不依赖第三方 Python 包。在项目根目录执行:
./domain-manager --help如果已将项目目录加入 PATH,也可以直接使用 domain-manager --help。
Related MCP server: cloudflare-api-mcp
配置
工具从环境变量读取 Cloudflare 凭据;不要将 Token 写入源码、README、Git 或普通配置文件。
export CLOUDFLARE_API_TOKEN='...'
export CLOUDFLARE_ZONE_ID='...' # 可选;未提供时会查询 Active Zone 并缓存结果
export ALLOWED_ZONE='iveseenu.com' # 可选,默认值即为 iveseenu.com可参考 .env.example。.env 已被 Git 忽略,但工具不会自动读取 .env 文件,需要由运行环境安全地注入变量。
名称与默认值
简短名称会自动补全 Zone:
test变为test.iveseenu.com。已是
iveseenu.com子域的完整名称不会重复拼接。默认
ttl为300秒,使用--ttl auto时交给 Cloudflare 管理。默认
proxied为false(DNS only)。只有显式--proxied true才会启用 Cloudflare Proxy;代理记录的 TTL 由 Cloudflare 自动管理。创建、更新与 upsert 仅支持
A、AAAA、CNAME、TXT。
查询记录
列出全部记录:
./domain-manager list
./domain-manager list --output json按类型或名称过滤:
./domain-manager list --type A --output json
./domain-manager list --name codex --output json查询指定名称:
./domain-manager get codex --output json
./domain-manager get codex.iveseenu.com --type A --output jsonDry Run
所有写操作都支持 --dry-run。该模式只查询现状并输出计划,不会向 Cloudflare 发送创建、更新或删除请求。建议 Agent 和人工操作都先执行一次 Dry Run。
./domain-manager create \
--type A --name domain-manager-test --content 192.0.2.10 \
--ttl 300 --proxied false --dry-run --output json
./domain-manager upsert \
--type A --name domain-manager-test --content 192.0.2.10 \
--dry-run --output json192.0.2.10 是文档保留测试地址;移除 --dry-run 前应确认该地址和记录名称确实可用。
创建记录
./domain-manager create \
--type A --name app --content 203.0.113.10 \
--ttl 300 --proxied false --dry-run若同类型、同名称的记录已存在,create 会拒绝请求。请改用 update 或 upsert。
更新记录
update 必须精确匹配一条记录。执行时会先查询旧值,更新后再次查询验证新值。
./domain-manager update \
--type A --name app --content 203.0.113.11 \
--ttl 300 --proxied false --dry-run --output json幂等写入(推荐)
upsert 是 Agent 最适合使用的接口:记录不存在则创建,存在但内容或配置不同则更新,完全相同则返回 NOOP,不产生写操作。
./domain-manager upsert \
--type A --name app --content 203.0.113.10 \
--ttl 300 --proxied false --dry-run --output json删除记录
删除默认被拒绝,必须同时显式提供 --confirm-delete。删除前会查询并保存旧记录信息,删除后会再次查询确认记录已不存在。
./domain-manager delete \
--type A --name app --confirm-delete --dry-run --output json仅在确认 Dry Run 的目标正确后,才移除 --dry-run 执行真实删除。
安全限制
不允许操作任何其他 Zone。
根域
iveseenu.com的更新和删除默认拒绝,只有显式--allow-root才可继续。MX、NS、SOA、CAA禁止创建、更新和删除。_domainconnect.*禁止更新和删除。_acme-challenge.*、_dmarc.*、selector*._domainkey.*等敏感验证/邮件记录,需要显式--allow-sensitive。删除必须使用
--confirm-delete,写入前建议始终使用--dry-run。
输出格式
默认输出为便于人工阅读的表格。Agent 应使用 --output json;JSON 模式的 stdout 只包含 JSON。
成功更新示例:
{
"success": true,
"action": "UPDATE",
"changed": true,
"record": {
"id": "...",
"type": "A",
"name": "app.iveseenu.com",
"content": "203.0.113.10",
"ttl": 300,
"proxied": false
},
"error": null
}完全相同的 upsert 返回 action: "NOOP" 且 changed: false。失败时返回 success: false 和不含 Token 的 error 对象。
审计日志
每次真实写操作会记录时间、操作、Zone、记录 ID/类型/名称、旧值、新值和结果。日志优先写入:
/var/log/domain-manager/audit.log没有该目录写权限时,使用:
./logs/audit.log审计日志不会记录 CLOUDFLARE_API_TOKEN 或 Authorization Header。
MCP:供 Codex、Hermes 等 Agent 调用
MCP Server 使用标准输入输出(stdio)JSON-RPC 传输,不是 HTTP 服务。启动命令为:
./domain-manager-mcp在 Codex、Hermes 或其他 MCP Client 的 Server 配置中,将 command 设置为该启动器的绝对路径:
/mnt/d/codes/projects/scripts/domain-manage/domain-manager-mcp不要把 Token 写进 MCP 配置文件、工具参数、Prompt、Git 或日志。应由启动 MCP Client 的受控环境注入 CLOUDFLARE_API_TOKEN。对于支持 Secret File / Secret Mount 的运行环境,可改用 CLOUDFLARE_API_TOKEN_FILE:该文件必须是普通文件且权限为 0600,内容仅为 Token。
install -m 600 /dev/null /run/user/$(id -u)/cloudflare-token
# 通过你的 Secret Manager 或安全终端写入 Token;不要使用 shell history 保存它。
export CLOUDFLARE_API_TOKEN_FILE=/run/user/$(id -u)/cloudflare-token
./domain-manager-mcpMCP 工具列表如下。所有工具结果都返回统一 JSON 结构;MCP transport 的 stdout 只输出 JSON-RPC 消息。
MCP 工具 | 用途 |
| 列出记录,可选 |
| 查询指定 |
| 创建 |
| 精确匹配一条记录后更新,并进行后置验证。 |
| 不存在则创建,不同则更新,相同则 |
| 删除记录;必须传入 |
写工具参数与 CLI 对应:type、name、content、ttl、proxied、dry_run、allow_root、allow_sensitive。delete_dns 还要求 confirm_delete: true。工具参数中不接受 Token。
Agent 首先应使用 dry_run: true,确认返回的目标记录后才发起真实写入。delete_dns 即使在 Dry Run 下也必须显式设置 confirm_delete: true。
测试
运行本地单元测试:
python3 -m unittest discover -v测试使用模拟 Cloudflare Client,不会读取 Token 或修改真实 DNS。
Available Tools
6 toolscreate_dnsB
Create one A, AAAA, CNAME, or TXT record. Prefer dry_run first.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | ||
| name | Yes | Short name or iveseenu.com FQDN. | |
| type | Yes | DNS record type. | |
| content | Yes | Record value. | |
| dry_run | No | Plan only. Never sends a DNS write request. | |
| proxied | No | Cloudflare proxy. Defaults to DNS only. | |
| allow_root | No | ||
| allow_sensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the safety and side-effect disclosure burden. It states the record-creation action and recommends dry-run, but doesn't explain whether existing records are replaced, whether special permissions/zone ownership are needed, how proxied/root/sensitive flags affect the write, or what response is returned. This is thin for a mutating DNS tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core operation and closing with a safety preference. There is no filler, and the single most important execution hint ('Prefer dry_run first') is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutating tool with no output schema and no annotations, this description is too sparse to be self-sufficient. It omits selection criteria versus upsert/update, effect of dry_run, handling of root/sensitive records, and return behavior, so the agent must infer or inspect the schema heavily.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 63%, leaving ttl, allow_root, and allow_sensitive undocumented in the schema, and the tool description does not fill those gaps. It repeats the record types already in the type enum and adds only the word 'one,' which is minor value beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb and object: 'Create one A, AAAA, CNAME, or TXT record.' This clearly identifies the operation and resource, and 'one' scopes it to a single record. It does not explicitly contrast with update_dns or upsert_dns, but the create verb is unambiguous enough for basic selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'Prefer dry_run first,' which tells the agent to plan before writing but not when to choose create_dns over update_dns or upsert_dns. The intended context (new record creation) is implied by the name and phrase, but no explicit when/when-not or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dnsA
Delete exactly one DNS record. confirm_delete must be true; prefer dry_run first.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | ||
| dry_run | No | ||
| allow_root | No | ||
| confirm_delete | Yes | ||
| allow_sensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well by disclosing the destructive nature, requiring confirm_delete, and recommending dry_run as a safety step. It does not describe what dry_run actually does or the permanence of deletion, but the core behavioral safeguards are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core action is front-loaded and the safety requirements follow immediately. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It omits the meaning of allow_root and allow_sensitive, the role of name and type, and what happens when dry_run is true or when no matching record exists. These gaps could lead an agent to misuse the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only adds meaning for confirm_delete and dry_run, while name, type, allow_root, and allow_sensitive remain unexplained. These are critical for correct invocation, especially the safety-related flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Delete exactly one DNS record') with a clear resource and an explicit scope ('exactly one'). This distinguishes it from create, update, upsert, and list operations without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear operational guidance: confirm_delete must be true and dry_run should be preferred first. It does not explicitly name alternative tools or conditions for using them, but the delete operation is naturally distinct from its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dnsA
Get DNS records for one allowlisted name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does disclose the 'allowlisted' constraint and implies a read-only operation via 'Get', but it does not explain what happens for non-allowlisted names, permission requirements, or response behavior. The description gives a basic picture but leaves meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler. It is appropriately sized for a simple get operation and front-loads the core action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description should provide more context. It omits the meaning of the 'type' parameter, the nature of the 'allowlisted' constraint, and what a successful response looks like. The description is not complete enough for reliable invocation without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives meaning to the 'name' parameter ('one allowlisted name'), but the 'type' parameter is entirely unexplained. This is insufficient for an agent to know what values are valid or how 'type' affects the request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get'), resource ('DNS records'), and scope ('one allowlisted name'). This differentiates it well from sibling tools like list_dns (which presumably returns all records) and the create/update/delete mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one allowlisted name' implies this is for a single, specific name rather than listing all, but it does not explicitly state when to prefer this over list_dns or mention any alternatives. Usage context is implied rather than clearly specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dnsA
List allowlisted Cloudflare DNS records, optionally filtered by type or name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It does reveal that the tool lists records (a read operation) and that only 'allowlisted' records are included, which is a meaningful scoping detail. However, it omits information about pagination, result format, or what 'allowlisted' specifically entails, leaving some behavior unknown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and resource, then mentions the optional filters with no wasted words. Every word contributes useful information, making this a model of concise writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with two optional parameters and no output schema, the description covers the essential requirements: what it lists and the available filters. It could mention pagination or return format, but these are minor omissions given the low complexity and the clarity already provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does by identifying 'name' and 'type' as optional filters, giving them a purpose beyond the bare schema. It does not specify allowed values, matching behavior, or format details, but for two simple parameters this partial explanation is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('allowlisted Cloudflare DNS records'), which clearly identifies the tool's function. It also notes optional filtering by type or name. However, it does not explicitly differentiate itself from siblings like get_dns, leaving the distinction between listing and retrieving to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a list of DNS records rather than a single record or performing mutations, but it offers no explicit guidance on when to choose this tool over get_dns or the other siblings. No exclusions or alternative conditions are stated, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dnsA
Update exactly one A, AAAA, CNAME, or TXT record and verify it afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | ||
| name | Yes | Short name or iveseenu.com FQDN. | |
| type | Yes | DNS record type. | |
| content | Yes | Record value. | |
| dry_run | No | Plan only. Never sends a DNS write request. | |
| proxied | No | Cloudflare proxy. Defaults to DNS only. | |
| allow_root | No | ||
| allow_sensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must disclose behavior. It usefully reveals that the tool operates on exactly one record and verifies after updating, which is beyond what the name implies. However, it does not disclose side effects, overwrite semantics, permissions, or failure behavior, leaving important operational traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the action, resource, scope, and the verify-after behavior with no filler. Every phrase earns its place; the description is as short as it can be while still conveying the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with 8 parameters, no annotations, and no output schema, this description is under-specified. The agent is left without guidance on how the target record is identified, what dry_run/proxied/allow_root/allow_sensitive affect, or what a successful update returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps to the record types in the schema's enum but adds no meaning for ttl, allow_root, allow_sensitive, or the auto TTL choice. With parameter schema coverage at 63%, the uncovered flags remain unexplained by the description, so it does not materially compensate for the gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Update'), a specific resource ('A, AAAA, CNAME, or TXT record'), and a scoping constraint ('exactly one'), which clearly differentiates it from sibling tools like create_dns, upsert_dns, or delete_dns. It is immediately obvious what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Update exactly one...' implies this is for modifying a single existing record, but the description never explicitly contrasts it with create_dns (new records), upsert_dns (create-or-update), or delete_dns (removal). Usage context is implied rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert_dnsA
Idempotently create, update, or return NOOP for one DNS record. Prefer dry_run first.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | ||
| name | Yes | Short name or iveseenu.com FQDN. | |
| type | Yes | DNS record type. | |
| content | Yes | Record value. | |
| dry_run | No | Plan only. Never sends a DNS write request. | |
| proxied | No | Cloudflare proxy. Defaults to DNS only. | |
| allow_root | No | ||
| allow_sensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it delivers meaningfully: 'idempotently' discloses repeat-call safety, 'create, update, or return NOOP' discloses the complete outcome set, and 'Prefer dry_run first' prescribes a safe workflow. It stops short of disclosing return behavior or side effects on existing records.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences totaling about 15 words, with the core behavior front-loaded in the first sentence and operational guidance in the second. Every word carries information; there is no filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the tool's essential contract — idempotent single-record upsert with a dry-run-first workflow — which is the context most likely to prevent mis-invocation. However, for an 8-parameter mutation tool with no annotations and no output schema, it leaves the agent uninformed about return values, the meaning of the allow_root/allow_sensitive gates, and the Cloudflare context implied by the proxied parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description is entirely silent on all 8 parameters, and schema description coverage is only 63%. The three undocumented parameters — ttl, allow_root, and allow_sensitive — receive no explanation anywhere, leaving the security-relevant gate flags and the unusual ttl 'auto' option opaque to the agent. The description does nothing to compensate for this coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explains the non-obvious 'upsert' semantics explicitly: 'Idempotently create, update, or return NOOP for one DNS record.' It specifies the resource (DNS record), scope (one record), and the full outcome set. This inherently differentiates it from the create_dns and update_dns siblings, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Prefer dry_run first' is a concrete, actionable usage directive that tells the agent to plan before writing. The idempotent create/update/NOOP semantics imply when this tool is preferable to create_dns or update_dns, but the description never explicitly states when to use this tool versus those alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
create_dns - First observed
delete_dns - First observed
get_dns - First observed
list_dns - First observed
update_dns - First observed
upsert_dns
TDQS
The verbs clearly separate list/get/create/update/upsert/delete, and descriptions clarify each tool's scope. Minor overlap exists between list_dns with a name filter and get_dns, and create_dns vs upsert_dns could be confused by an agent not reading carefully, but the intended boundaries are discernible.
All tools follow a consistent verb_dns pattern: list, get, create, update, upsert, delete. This makes the tool surface highly predictable and easy to reason about.
Six tools cover the core DNS record lifecycle without unnecessary bulk. The count is well-scoped for a focused domain-manager server.
The set provides full CRUD plus idempotent upsert and post-update verification, which covers the primary workflow. However, descriptions repeatedly instruct agents to prefer dry_run first, but no dry_run tool is exposed, leaving a notable referenced capability missing.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live DNS lookups for agents: A/MX/TXT/SPF/CNAME/PTR with TTLs and DNSSEC, via Google Public DNS.
Look up DNS information for any domain to troubleshoot issues and gather insights. Get fast, relia…
29 pay-per-call DNS, SEO, SSL, security, and dev tools for AI agents. x402, no API key.
Scan, fix and verify DNS: SPF, DMARC, DKIM, propagation, DNS health, expiry. Validated fixes.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Cloudflare resources through natural language, including DNS records, zone management, Workers KV storage, cache purging, and analytics. Supports comprehensive Cloudflare operations with secure API token authentication.132MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Cloudflare REST API for managing DNS records, zones, and other Cloudflare resources.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Cloudflare DNS zones and records, including listing, creating, updating, and deleting DNS records through natural language.6MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Cloudflare DNS records, including listing zones and records, and creating, updating, or deleting DNS records.48MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WangJiyuanYo/cloudflare-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server