Skip to main content
Glama
anhhung04

DNSDumpster MCP Server

by anhhung04

DNSDumpster - MCP Server

A Model Context Protocol (MCP) server for interacting with the DNSDumpster API, enabling AI assistants to perform detailed DNS reconnaissance through natural language requests.

Features

  • Query domain DNS records through AI assistants

  • Retrieve detailed information about:

    • A records (with associated IP and ASN information)

    • CNAME records

    • MX records

    • TXT records

    • NS records

    • Banner information where available

  • Support for pagination (Plus accounts)

  • Rate limiting and caching

PyPI version

Related MCP server: domain-security-mcp-server

Installation

# Install from PyPI
uv pip install mcp-dnsdumpster

# Or from source
git clone https://github.com/yourusername/mcp-dnsdumpster.git
cd mcp-dnsdumpster
uv pip install -e .

Claude Desktop Configuration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %AppData%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "dnsdumpster": {
      "command": "uvx",
      "args": ["mcp-dnsdumpster"],
      "env": {
        "DNSDUMPSTER_API_KEY": "your_api_key_here"
      }
    }
  }
}

Usage

  1. Set your API key:

export DNSDUMPSTER_API_KEY=your_api_key_here
  1. Run the server:

# Using uvx (recommended)
uvx mcp-dnsdumpster

# Or if installed from source
uv run server.py

Example Prompts

  • "Show me all subdomains for example.com"

  • "What are the mail servers for microsoft.com?"

  • "Tell me about the DNS infrastructure for twitter.com"

Development

  • Python 3.10+

  • Uses uv for dependency management

  • Built with MCP SDK 1.4+

License

MIT

Available Tools

7 tools
get_a_recordsC

Get A records for a domain.

Args: domain: The domain name to query (e.g., example.com) ctx: Request context

Returns: Formatted string containing A records

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('Formatted string containing A records'), which adds some value, but lacks details on error handling, rate limits, authentication needs, or whether it's a read-only operation. This is a significant gap for a tool with no annotation coverage.

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 appropriately sized and front-loaded, with the core purpose stated first. The structured 'Args' and 'Returns' sections are efficient, though the inclusion of 'ctx: Request context' without explanation could be considered minor waste.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter) and the presence of an output schema, the description is minimally adequate. It covers the basic purpose and parameter example, but lacks behavioral context and usage guidelines, which are needed for full completeness despite the output schema handling return values.

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 0%, so the description must compensate. It provides an example for the 'domain' parameter ('e.g., example.com'), which adds meaning beyond the bare schema. However, it doesn't cover other potential aspects like format constraints or edge cases, keeping it at a baseline level.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('A records for a domain'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_cname_records' or 'query_domain', which would require a 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'get_cname_records' or 'query_domain'. The description only states what it does, not when it's appropriate, leaving the agent to infer usage from context.

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

get_cname_recordsC

Get CNAME records for a domain.

Args: domain: The domain name to query (e.g., example.com) ctx: Request context

Returns: Formatted string containing CNAME records

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions a return format ('Formatted string containing CNAME records'), which adds some behavioral context, but fails to disclose critical traits like whether this is a read-only operation, potential rate limits, authentication needs, or error conditions. For a tool with no annotation coverage, this leaves significant gaps.

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

Conciseness3/5

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

The description is front-loaded with the core purpose, but includes redundant sections ('Args:', 'Returns:') that repeat information partially covered elsewhere. The structure is clear but could be more streamlined by integrating details more efficiently without separate headings.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter) and the presence of an output schema, the description is somewhat complete but lacks depth. It covers the basic purpose and return format, yet misses usage guidelines and behavioral details, making it adequate but with clear gaps for effective agent 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?

The description adds minimal semantics beyond the input schema: it provides an example ('e.g., example.com') for the 'domain' parameter and notes the 'ctx' parameter (though 'ctx' is not in the schema, suggesting inconsistency). With 0% schema description coverage, the description partially compensates but doesn't fully explain parameter usage or constraints, aligning with the baseline expectation.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('CNAME records for a domain'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_a_records' or 'get_mx_records' beyond the record type, missing an opportunity to clarify scope distinctions.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'query_domain' or 'search_subdomains'. The description implies usage for CNAME records specifically, but lacks context about prerequisites, exclusions, or comparative use cases with sibling tools.

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

get_mx_recordsB

Get MX (mail) records for a domain.

Args: domain: The domain name to query (e.g., example.com) ctx: Request context

Returns: Formatted string containing MX records

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the return format ('Formatted string containing MX records'), but lacks details on error handling, rate limits, authentication needs, or whether this is a read-only operation. The description does not contradict annotations, but provides minimal behavioral context.

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 appropriately sized and front-loaded, with the purpose stated first. The 'Args' and 'Returns' sections are structured clearly, but the inclusion of 'ctx: Request context' (which is not in the schema) adds minor redundancy. Overall, it's efficient with minimal waste.

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

Completeness3/5

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

Given the tool's low complexity (one parameter) and the presence of an output schema, the description is somewhat complete but has gaps. It covers the basic purpose and parameter semantics, but lacks usage guidelines and sufficient behavioral transparency, especially with no annotations. The output schema reduces the need to explain return values in detail.

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

Parameters4/5

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

The description adds meaning beyond the input schema, which has 0% description coverage. It explains the 'domain' parameter with an example ('e.g., example.com') and clarifies that it's 'The domain name to query.' With only one parameter and no schema descriptions, this compensation is effective, though not exhaustive.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get MX (mail) records for a domain.' It specifies the verb ('Get') and resource ('MX records'), but does not explicitly differentiate it from sibling tools like get_a_records or get_ns_records, which perform similar queries for different DNS record types.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention sibling tools or contexts where MX records are specifically needed over other DNS records, leaving the agent to infer usage based on the tool name alone.

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

get_ns_recordsC

Get NS (nameserver) records for a domain.

Args: domain: The domain name to query (e.g., example.com) ctx: Request context

Returns: Formatted string containing NS records

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does (gets NS records) and the return format (a formatted string), but lacks critical details such as whether this is a read-only operation, potential rate limits, authentication needs, error handling, or how the formatted string is structured. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded, with the core purpose stated first. The additional sections (Args, Returns) are structured but slightly verbose for a single parameter; they could be more integrated. Overall, it's efficient with little waste, though minor improvements in flow are possible.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no annotations, but has an output schema), the description is somewhat complete but has gaps. The output schema existence means return values don't need explanation, but the description lacks context on behavioral aspects like error cases or performance. It's adequate for basic use but not fully comprehensive.

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?

The description adds some meaning beyond the input schema by explaining the 'domain' parameter with an example (e.g., example.com). However, with 0% schema description coverage and only 1 parameter, the description compensates minimally but adequately—it clarifies the parameter's purpose but doesn't detail constraints like domain format validation. The baseline is appropriate given the low parameter count.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('NS records for a domain'), making it immediately understandable. However, it doesn't explicitly distinguish this tool from its sibling tools (like get_a_records, get_mx_records), which all follow a similar pattern but query different DNS record types.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like query_domain (which might return multiple record types) and other specific record-type tools, there's no indication of whether this is preferred for NS records or when a broader query might be better. Usage is implied by the tool name but not explicitly stated.

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

get_txt_recordsC

Get TXT records for a domain.

Args: domain: The domain name to query (e.g., example.com) ctx: Request context

Returns: Formatted string containing TXT records

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that it returns a 'Formatted string containing TXT records,' which gives some output context, but lacks details on error handling, rate limits, authentication needs, or whether it's a read-only operation (implied by 'Get' but not explicit). For a tool with no annotations, this is insufficient.

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 structured with clear sections (Args, Returns) and is front-loaded with the core purpose. It's concise at three sentences, but the inclusion of 'ctx' (not in schema) adds unnecessary complexity. Overall, it's efficient with minor waste.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter) and the presence of an output schema (implied by 'Has output schema: true'), the description is somewhat complete. It covers the basic purpose and return format, but gaps remain in usage guidelines and behavioral transparency, especially with no annotations. It's adequate but has clear room for improvement.

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?

The description adds minimal semantics beyond the input schema. It explains the 'domain' parameter with an example ('e.g., example.com'), which is helpful since schema description coverage is 0%. However, it doesn't clarify the 'ctx' parameter mentioned in the description but not in the schema, creating confusion. With 1 parameter and low schema coverage, this is a baseline score.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get TXT records for a domain.' It specifies the verb ('Get') and resource ('TXT records'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like get_a_records or get_cname_records, which follow the same pattern for different DNS record types.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention sibling tools like query_domain (which might be more general) or when TXT records specifically are needed (e.g., for SPF, DKIM, or other text-based DNS entries). This leaves the agent without context for tool selection.

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

query_domainA

Query DNSDumpster for all DNS records related to a domain.

Args: domain: The domain name to query (e.g., example.com) ctx: Request context

Returns: JSON string containing all DNS records

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the data source (DNSDumpster) and return format (JSON string), but lacks details on rate limits, authentication needs, error handling, or whether this is a read-only operation. For a tool with no annotations, this leaves significant behavioral gaps.

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 front-loaded with the core purpose, followed by structured sections for Args and Returns. It is efficient but includes an extra 'ctx' parameter in the description that is not in the schema, slightly reducing clarity.

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 the tool has an output schema (though not shown), the description need not detail return values. It covers the purpose and parameter basics, but with no annotations and incomplete parameter coverage, it could benefit from more behavioral context to be fully complete.

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 0%, but the description adds value by explaining the 'domain' parameter with an example (e.g., example.com). However, it does not cover constraints like valid domain formats or the 'ctx' parameter mentioned in the description but not in the schema, leaving some ambiguity.

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 specific action ('Query DNSDumpster') and target resource ('all DNS records related to a domain'), distinguishing it from sibling tools that fetch specific record types (e.g., get_a_records, get_mx_records) rather than comprehensive results.

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 implies usage for retrieving all DNS records, but does not explicitly state when to use this tool versus the sibling tools that fetch specific record types (e.g., get_a_records for only A records). It provides clear context but lacks explicit alternatives or exclusions.

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

search_subdomainsC

Search for subdomains of a given domain.

Args: domain: The parent domain name to query (e.g., example.com) ctx: Request context page: Page number for pagination (Plus accounts only)

Returns: Formatted string containing subdomains found

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions pagination is for 'Plus accounts only,' which adds some context about access restrictions. However, it doesn't describe rate limits, authentication needs, error handling, or what happens when no subdomains are found. For a search tool with no annotation coverage, this leaves significant behavioral gaps.

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 with clear sections (Args, Returns) and uses bullet-like formatting. It's front-loaded with the core purpose. However, the 'ctx: Request context' parameter is mentioned in Args but not in the input schema, creating minor redundancy. Overall, it's efficient with minimal waste.

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

Completeness3/5

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

Given 2 parameters, 0% schema coverage, no annotations, and an output schema exists (implied by 'Returns'), the description is moderately complete. It explains parameters and return format at a basic level, but lacks details on behavioral aspects like error cases or performance. The output schema handles return values, so the description doesn't need to elaborate there, but other gaps keep it from being fully complete.

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 0%, so the description must compensate. It explains the 'domain' parameter as 'The parent domain name to query' with an example, and 'page' as 'Page number for pagination (Plus accounts only).' This adds meaning beyond the bare schema, but doesn't fully cover semantics like domain format validation or pagination behavior details. With 2 parameters and partial explanation, a baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Search for subdomains of a given domain.' This specifies the verb ('search') and resource ('subdomains'), making it easy to understand what the tool does. However, it doesn't explicitly distinguish this from sibling tools like 'query_domain' or the various DNS record lookup tools, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'query_domain' and various DNS record lookups, there's no indication of whether this tool is for discovery, enumeration, or how it differs from other domain-related queries. The mention of 'Plus accounts only' for pagination is a technical constraint, not usage guidance.

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

TDQS

A3.6/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific DNS record types or broader queries. The first five tools each handle a different record type (A, CNAME, MX, NS, TXT), while query_domain retrieves all records and search_subdomains focuses on subdomain discovery. There is no functional overlap between tools.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case naming. The pattern is perfectly uniform: get_<record_type>_records for specific queries, query_domain for comprehensive retrieval, and search_subdomains for subdomain discovery. No deviations or mixed conventions exist.

Tool Count5/5

With 7 tools, this server is well-scoped for DNS reconnaissance. The count covers all major DNS record types plus comprehensive and subdomain queries, making each tool essential without redundancy. This aligns perfectly with typical DNS investigation needs.

Completeness5/5

The toolset provides complete coverage for DNS domain investigation. It includes all common record types (A, CNAME, MX, NS, TXT), a comprehensive query tool, and subdomain search functionality. There are no obvious gaps for the server's stated purpose of DNS data retrieval.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/anhhung04/mcp-dnsdumpster'

If you have feedback or need assistance with the MCP directory API, please join our Discord server