securitytrails_subdomains
Discover subdomains for any domain using SecurityTrails data to enhance security research and reconnaissance.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to find subdomains in SecurityTrails |
Implementation Reference
- src/tools/securitytrails.ts:23-48 (handler)The getSubdomains method implementation in the SecurityTrailsApiClient class, which performs the actual API call to retrieve subdomains.
async getSubdomains(domain: string): Promise<SecurityTrailsResult> { const apiKey = configManager.get("SECURITYTRAILS_API_KEY"); if (!apiKey) { throw new McpError( ErrorCode.InvalidRequest, "SECURITYTRAILS_API_KEY is not configured" ); } try { const data = await this.fetch<any>(`domain/${domain}/subdomains`, { method: "GET", headers: { APIKEY: apiKey, }, }); return SecurityTrailsResultSchema.parse(data); } catch (error) { if (error instanceof McpError) throw error; throw new McpError( ErrorCode.InternalError, `SecurityTrails error: ${(error as Error).message}` ); } } - src/index.ts:293-301 (registration)The MCP tool registration for 'securitytrails_subdomains' in src/index.ts.
server.tool( "securitytrails_subdomains", { domain: z.string().describe("Domain to find subdomains in SecurityTrails") }, async ({ domain }) => { const result = await stClient.getSubdomains(domain); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; } - src/tools/securitytrails.ts:6-11 (schema)The Zod schema for validating the output of the SecurityTrails API request.
export const SecurityTrailsResultSchema = z.object({ endpoint: z.string().optional(), subdomains: z.array(z.string()).optional(), current_dns: z.any().optional(), history: z.any().optional(), });