Skip to main content
Glama
OrtaMarco

domain-security-mcp-server

by OrtaMarco

DNS Propagation Check

dns_propagation
Read-onlyIdempotent

Compare DNS records across global resolvers to verify whether a domain change has propagated.

Instructions

Compare a domain's DNS records across multiple public resolvers worldwide (Cloudflare, Google, Quad9, OpenDNS, AdGuard) to see whether a change has propagated.

Args:

  • domain (string): the domain to check.

  • type ('A'|'AAAA'|'CNAME'|'MX'|'NS'|'TXT'): record type (default 'A').

  • response_format ('markdown' | 'json'): output format (default 'markdown').

Returns: { type, consistent, resolvers[{name, server, values[], error}] }.

Example: "Has the A record for example.com propagated?" -> dns_propagation(domain="example.com").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoRecord type (default 'A').A
domainYesDomain to check.
response_formatNoOutput format: 'markdown' for a human-readable summary (default) or 'json' for the full structured payload.markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYes
domainYes
resolversYes
consistentYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.2.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / domain / maxLength
      Added value: +253
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv1.0.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behaviorabb. The description adds valuable behavioral context beyond that: it queries multiple named public resolvers, aggregates responses, and returns a consistency verdict plus per-resolver values/errors. This is more than a bare mutation/read label.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured and front-loaded with the key action, followed by a compact Args list, a return shape, and a concrete example. No sentence is wasted, and the example is practical for an agent deciding how to invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, idempotent lookup tool with one required parameter spelled out in the schema.not, the description is complete: it explains the global multi-resolver behavior, lists all parameters with defaults, and shows the response shape. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already defines domain, type, and response_format with enums, defaults, and descriptions. The description repeats these details and adds a useful example mapping a natural-language question to arguments, but it does not add meaningful semantic information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair: 'Compare a domain's DNS records across multiple public resolvers worldwide.' It lists concrete resolvers and names the goal ('to see whether a change has propagated'), which clearly differentiates it from siblings like dns_lookup or mx_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: whenever a change's propagation status across resolvers is in question. It does not explicitly name alternative tools or state when not to use it, so it stops short of a full 5, but the intended use case is unmistakable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.