Skip to main content
Glama

recon.dns

Resolve DNS records for domains to identify potential security vulnerabilities during reconnaissance phases of bug bounty hunting.

Instructions

Resolve DNS records for a domain or subdomain

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to resolve
recordTypeNoDNS record type (A, AAAA, CNAME, MX, TXT)A

Implementation Reference

  • Handler function that checks for 'dig' command availability, runs 'dig +short domain recordType' to resolve DNS records, parses the output, and returns formatted results.
    async ({ domain, recordType = 'A' }: any): Promise<ToolResult> => {
      try {
        const exists = await checkCommandExists('dig');
        if (!exists) {
          return formatToolResult(false, null, 'dig command not found');
        }
    
        const result = await runCommand('dig', ['+short', domain, recordType]);
        const records = result.stdout
          .split('\n')
          .filter((s) => s.trim().length > 0);
    
        return formatToolResult(true, {
          domain,
          recordType,
          records,
          raw: result.stdout,
        });
      } catch (error: any) {
        return formatToolResult(false, null, error.message);
      }
    }
  • Input schema defining 'domain' as required string and optional 'recordType' (default 'A').
    {
      description: 'Resolve DNS records for a domain or subdomain',
      inputSchema: {
        type: 'object',
        properties: {
          domain: { type: 'string', description: 'Domain to resolve' },
          recordType: {
            type: 'string',
            description: 'DNS record type (A, AAAA, CNAME, MX, TXT)',
            default: 'A',
          },
        },
        required: ['domain'],
      },
  • Registers the 'recon.dns' tool on the MCP server with its schema and handler function.
    server.tool(
      'recon.dns',
      {
        description: 'Resolve DNS records for a domain or subdomain',
        inputSchema: {
          type: 'object',
          properties: {
            domain: { type: 'string', description: 'Domain to resolve' },
            recordType: {
              type: 'string',
              description: 'DNS record type (A, AAAA, CNAME, MX, TXT)',
              default: 'A',
            },
          },
          required: ['domain'],
        },
      },
      async ({ domain, recordType = 'A' }: any): Promise<ToolResult> => {
        try {
          const exists = await checkCommandExists('dig');
          if (!exists) {
            return formatToolResult(false, null, 'dig command not found');
          }
    
          const result = await runCommand('dig', ['+short', domain, recordType]);
          const records = result.stdout
            .split('\n')
            .filter((s) => s.trim().length > 0);
    
          return formatToolResult(true, {
            domain,
            recordType,
            records,
            raw: result.stdout,
          });
        } catch (error: any) {
          return formatToolResult(false, null, error.message);
        }
      }
    );

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/telmon95/VulneraMCP'

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