Skip to main content
Glama
OrtaMarco

domain-security-mcp-server

by OrtaMarco

DNS Lookup

dns_lookup
Read-onlyIdempotent

Resolve all common DNS record types (A, AAAA, CNAME, MX, NS, TXT, SOA) for any domain in a single query using public resolvers. Returns structured results in markdown or JSON to identify misconfigurations and security gaps.

Instructions

Resolve all common DNS record types (A, AAAA, CNAME, MX, NS, TXT, SOA) for a domain in one call, using public resolvers (Cloudflare/Google/Quad9).

Args:

  • domain (string): the domain to query, e.g. "example.com".

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

Returns: a map of record type -> list of records. Each record has { type, host, value, priority? }.

Examples:

  • "What are the MX records for stripe.com?" -> dns_lookup(domain="stripe.com")

  • Use ssl_certificate for TLS details, whois_lookup for registration data.

Errors: returns an error if the domain is malformed or has no resolvable records.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to query, 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
recordsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 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"
    • addedOutput schema / properties / records / additionalProperties / items / properties / extra / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / records / propertyNames
      Added value: +{
      +  "type": "string"
      +}
  2. First observedv1.0.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the bar is lower. The description adds that it uses public resolvers (Cloudflare/Google/Quad9), the return format (map of record type to list of records with fields), and error behavior, which are valuable disclosures beyond annotations.

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: starts with purpose, then Args, Returns, Examples, Errors. It is detailed but not bloated; every section adds value. The only minor issue is the mention of error handling which could be inferred, but it is useful.

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?

It covers all key aspects: what it does, parameters, return structure, examples, alternatives, and error behavior. With an output schema present, return format doesn't need to be exhaustive. Missing details like rate limits are irrelevant given readOnlyHint. The description is complete for correct invocation.

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 coverage is 100%, so the schema clearly documents both domain and response_format. The description adds context about the format values ('markdown' for human-readable, 'json' for full structured payload) but this mostly repeats schema. However, it does clarify that domain is for querying and includes an example, adding marginal value.

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 states the tool resolves all common DNS record types for a domain in one call. It lists specific record types and unique value proposition (all-in-one) that distinguishes it from siblings like mx_lookup or dnssec_check.

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 includes usage examples and explicitly mentions alternatives: 'Use ssl_certificate for TLS details, whois_lookup for registration data.' It does not explicitly state when not to use the tool, but the examples and alternatives provide clear context.

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