get_domain_info
Retrieve domain information such as DNS records, WHOIS data, SSL certificates, and technology stack for SEO and web analysis purposes.
Instructions
Get domain info including DNS records, WHOIS data, SSL certificates, and technology stack
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to check |
Implementation Reference
- index.js:102-115 (registration)Registration of the 'get_domain_info' tool in the ListToolsRequestSchema handler, including name, description, and input schema.{ name: 'get_domain_info', description: 'Get domain info including DNS records, WHOIS data, SSL certificates, and technology stack', inputSchema: { type: 'object', properties: { domain: { type: 'string', description: 'The domain to check', }, }, required: ['domain'], }, },
- index.js:105-114 (schema)Input schema definition for the 'get_domain_info' tool requiring a 'domain' string.inputSchema: { type: 'object', properties: { domain: { type: 'string', description: 'The domain to check', }, }, required: ['domain'], },
- index.js:623-624 (handler)Handler implementation in handleToolCall switch statement; delegates to makeRequest API helper with endpoint '/api/v1/domain_infos'.case 'get_domain_info': return await this.makeRequest('/api/v1/domain_infos', 'GET', args, null, token);
- index.js:565-613 (helper)Generic helper method 'makeRequest' used by the get_domain_info handler to perform authenticated API calls to FetchSERP endpoints.async makeRequest(endpoint, method = 'GET', params = {}, body = null, token = null) { const fetchserpToken = token || process.env.FETCHSERP_API_TOKEN; if (!fetchserpToken) { throw new McpError( ErrorCode.InvalidRequest, 'FETCHSERP_API_TOKEN is required' ); } const url = new URL(`${API_BASE_URL}${endpoint}`); // Add query parameters for GET requests if (method === 'GET' && Object.keys(params).length > 0) { Object.entries(params).forEach(([key, value]) => { if (value !== undefined && value !== null) { if (Array.isArray(value)) { value.forEach(v => url.searchParams.append(`${key}[]`, v)); } else { url.searchParams.append(key, value.toString()); } } }); } const fetchOptions = { method, headers: { 'Authorization': `Bearer ${fetchserpToken}`, 'Content-Type': 'application/json', }, }; if (body && method !== 'GET') { fetchOptions.body = JSON.stringify(body); } const response = await fetch(url.toString(), fetchOptions); if (!response.ok) { const errorText = await response.text(); throw new McpError( ErrorCode.InternalError, `API request failed: ${response.status} ${response.statusText} - ${errorText}` ); } return await response.json(); }