vs_dns_check
Resolve DNS records for any domain including A, AAAA, MX, NS, TXT, CNAME. No authentication required.
Instructions
Resolve DNS records (A, AAAA, MX, NS, TXT, CNAME) for a domain using Visual Sentinel's public DNS lookup tool. No authentication required.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to resolve, e.g. example.com (without protocol). | |
| recordType | No | Optional: limit to one record type. One of: A, AAAA, MX, NS, TXT, CNAME, SOA. Default: all. |
Implementation Reference
- src/tools.ts:82-90 (handler)The handler function for vs_dns_check. It calls the Visual Sentinel public API at GET /api/tools/dns-check with the required 'domain' and optional 'recordType' query parameters. No authentication required.
handler: async (args, client) => client.request('GET', '/api/tools/dns-check', { auth: false, query: { domain: requireString(args, 'domain'), recordType: pickString(args, 'recordType'), }, }), }, - src/tools.ts:69-80 (schema)Input schema for vs_dns_check. Defines 'domain' (required string) and 'recordType' (optional string, one of A/AAAA/MX/NS/TXT/CNAME/SOA).
inputSchema: { type: 'object', properties: { domain: { ...STR, description: 'Domain to resolve, e.g. example.com (without protocol).' }, recordType: { ...STR, description: 'Optional: limit to one record type. One of: A, AAAA, MX, NS, TXT, CNAME, SOA. Default: all.', }, }, required: ['domain'], additionalProperties: false, }, - src/tools.ts:65-90 (registration)The vs_dns_check tool is registered as one of the tools in the TOOLS array. It is a public tool (requiresAuth: false). The TOOLS array is exported and imported by index.ts, where it is registered with the MCP SDK via ListToolsRequestSchema and CallToolRequestSchema handlers.
{ name: 'vs_dns_check', description: 'Resolve DNS records (A, AAAA, MX, NS, TXT, CNAME) for a domain using Visual Sentinel\'s public DNS lookup tool. No authentication required.', inputSchema: { type: 'object', properties: { domain: { ...STR, description: 'Domain to resolve, e.g. example.com (without protocol).' }, recordType: { ...STR, description: 'Optional: limit to one record type. One of: A, AAAA, MX, NS, TXT, CNAME, SOA. Default: all.', }, }, required: ['domain'], additionalProperties: false, }, requiresAuth: false, handler: async (args, client) => client.request('GET', '/api/tools/dns-check', { auth: false, query: { domain: requireString(args, 'domain'), recordType: pickString(args, 'recordType'), }, }), }, - src/tools.ts:42-46 (helper)Helper function that validates and returns a required string argument from the tool's input args. Used to extract 'domain' in vs_dns_check.
function requireString(args: Record<string, unknown>, key: string): string { const v = pickString(args, key); if (!v) throw new Error(`Argument "${key}" (string) is required.`); return v; } - src/tools.ts:32-35 (helper)Helper function that safely extracts an optional string argument from the tool's input args. Used to extract 'recordType' in vs_dns_check.
function pickString(args: Record<string, unknown>, key: string): string | undefined { const v = args[key]; return typeof v === 'string' && v.length > 0 ? v : undefined; }