Skip to main content
Glama
OrtaMarco

domain-security-mcp-server

by OrtaMarco

DNSSEC Check

dnssec_check
Read-onlyIdempotent

Check if a domain has valid DNSSEC protection by querying DS and DNSKEY records and verifying the resolver's authenticated data flag to confirm the chain of trust.

Instructions

Check whether a domain is protected by DNSSEC. Queries DS and DNSKEY records over DNS-over-HTTPS and reads the resolver's Authenticated Data (AD) flag to confirm the chain of trust validates.

Args:

  • domain (string): the domain to check.

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

Returns: { enabled, validated, ds_records, dnskey_records, findings[] }.

Example: "Is cloudflare.com DNSSEC-signed?" -> dnssec_check(domain="cloudflare.com").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check, e.g. 'example.com'.
response_formatNoOutput format: 'markdown' for a human-readable summary (default) or 'json' for the full structured payload.markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYes
enabledYes
findingsYes
validatedYes
ds_recordsYes
dnskey_recordsYes

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

A3.9/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior; the description adds genuine behavioral detail on top by explaining that it queries DS/DNSKEY records over DNS-over-HTTPS and inspects the resolver's AD flag to validate chain of trust. It is transparent about mechanism, though it does not discuss failure modes such as network errors or non-existent domains.

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

Conciseness4/5

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

The description is well structured and front-loaded: purpose first, then args, return shape, and an example. It is a bit long relative to its simple two-parameter surface, and the Args block repeats information already in the input schema, but every part is coherent and useful rather than rambling.

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

Completeness4/5

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

Given only two parameters, rich annotations, and a declared output schema, the description covers the necessary ground: what it does, how it works, what it returns, and how it should be called. Missing edge-case details like what happens for unsigned domains or resolver timeouts are minor in this context.

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?

Both parameters are already fully documented by the input schema (100% coverage), including domain length and response_format enum/default. The description restates the parameters in prose and adds an example, but does not materially extend the schema's semantic coverage.

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 clearly identifies what is checked — whether a domain is DNSSEC-protected — and distinguishes the tool from nearby DNS/mail siblings by naming the concrete mechanism (DS and DNSKEY records, AD flag via DNS-over-HTTPS). The example query reinforces the exact use case, leaving no ambiguity.

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

Usage Guidelines3/5

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

The description gives a clean implied usage context ('Check whether a domain is protected by DNSSEC') and a worked example, but it never says when *not* to use it or which sibling tools to prefer for alternative checks like SPF, DMARC, or plain DNS lookups. Usage guidance is therefore adequate but implicit rather than explicit.

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