url_tech_stack
Detect the technology stack of a website by analyzing its URL to identify frameworks, libraries, and infrastructure components for security research and intelligence gathering.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to detect technology stack for |
Implementation Reference
- src/tools/tech.ts:12-46 (handler)The implementation of the 'detect' method which identifies the technology stack from a URL.
async detect(url: string): Promise<any> { try { const response = await fetch(url); const headers = Object.fromEntries(response.headers.entries()); const html = await response.text(); const techs = new Set<string>(); // Check Headers if (headers["server"]) { if (headers["server"].includes("cloudflare")) techs.add("Cloudflare"); if (headers["server"].includes("nginx")) techs.add("Nginx"); if (headers["server"].includes("apache")) techs.add("Apache"); } if (headers["x-powered-by"]) techs.add(headers["x-powered-by"]); if (headers["x-nextjs-cache"]) techs.add("Next.js"); // Check HTML patterns if (html.includes("wp-content")) techs.add("WordPress"); if (html.includes("_next/static")) techs.add("Next.js"); if (html.includes("react")) techs.add("React"); if (html.includes("vue")) techs.add("Vue.js"); if (html.includes("google-analytics")) techs.add("Google Analytics"); if (html.includes("tailwind")) techs.add("Tailwind CSS"); if (html.includes("bootstrap")) techs.add("Bootstrap"); return { url, technologies: Array.from(techs), headers: headers }; } catch (error) { throw new McpError(ErrorCode.InternalError, `Tech Detector error: ${(error as Error).message}`); } } - src/index.ts:512-521 (registration)Registration of the 'url_tech_stack' tool using the 'techClient'.
server.tool( "url_tech_stack", { url: z.string().url().describe("URL to detect technology stack for") }, async ({ url }) => { const result = await techClient.detect(url); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; } );