validate_all_security
Run comprehensive security tests on websites using Mozilla Observatory and SSL Labs to identify vulnerabilities and security issues.
Instructions
Run all security tests (Mozilla Observatory + SSL Labs).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email for SSL Labs | ||
| url | Yes | ||
| waitForSSL | No | Wait for SSL Labs to complete |
Implementation Reference
- src/orchestrator/run-all.ts:186-207 (handler)The core handler function for 'validate_all_security' tool. Orchestrates Mozilla Observatory and SSL Labs security scans, combines results with summary.export async function runAllSecurity( url: string, options: SecurityTestOptions ): Promise<AllSecurityResult> { // Run both security tools const mozillaResult = await analyzeMozillaObservatory(url); const sslResult = options.sslLabs.waitForComplete ? await analyzeSSLLabsComplete(url, options.sslLabs) : await analyzeSSLLabs(url, options.sslLabs); return { url, timestamp: new Date().toISOString(), mozilla_observatory: mozillaResult, ssl_labs: sslResult, summary: { mozilla_grade: mozillaResult.grade, ssl_grade: sslResult.grade, overall_success: mozillaResult.success && (sslResult.success || sslResult.status !== 'ERROR'), }, }; }
- index.ts:271-283 (registration)Tool registration in the MCP tools list, including name, description, and input schema.{ name: 'validate_all_security', description: 'Run all security tests (Mozilla Observatory + SSL Labs).', inputSchema: { type: 'object', properties: { url: { type: 'string' }, email: { type: 'string', description: 'Email for SSL Labs' }, waitForSSL: { type: 'boolean', description: 'Wait for SSL Labs to complete' }, }, required: ['url', 'email'], }, },
- index.ts:98-102 (schema)Zod schema for validating input arguments to the validate_all_security tool.const AllSecurityArgsSchema = z.object({ url: z.string().url(), email: z.string().email(), waitForSSL: z.boolean().optional(), });
- index.ts:423-432 (handler)MCP server dispatch handler that validates arguments and calls the runAllSecurity function.case 'validate_all_security': { const validatedArgs = AllSecurityArgsSchema.parse(args); const result = await runAllSecurity(validatedArgs.url, { sslLabs: { email: validatedArgs.email, waitForComplete: validatedArgs.waitForSSL, }, }); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; }