Skip to main content
Glama
bswa006
by bswa006

check_security_compliance

Analyzes code for security vulnerabilities, focusing on issues like secrets, injection, XSS, authentication, cryptography, and validation to ensure compliance with best practices.

Instructions

Check code for security vulnerabilities and compliance

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
checkTypesNoTypes of security checks to perform
codeYesCode to check for security issues

Implementation Reference

  • Main handler function that performs comprehensive security checks on code, including hardcoded secrets, injections, XSS, auth issues, data exposure, and more. Returns SecurityCheckResult with violations and recommendations.
    export async function checkSecurityCompliance( code: string, sensitiveOperations?: string[] ): Promise<SecurityCheckResult> { const result: SecurityCheckResult = { secure: true, violations: [], recommendations: [], }; // Check for hardcoded secrets checkHardcodedSecrets(code, result); // Check for injection vulnerabilities checkInjectionVulnerabilities(code, result); // Check for XSS vulnerabilities checkXSSVulnerabilities(code, result); // Check authentication/authorization checkAuthIssues(code, result); // Check for sensitive data exposure checkDataExposure(code, result); // Check specific sensitive operations if provided if (sensitiveOperations) { checkSensitiveOperations(code, sensitiveOperations, result); } // Additional security checks checkGeneralSecurity(code, result); // Determine if code is secure result.secure = result.violations.filter(v => v.severity === 'critical' || v.severity === 'high' ).length === 0; return result; }
  • Tool registration and dispatch handler in the MCP server. Parses input arguments using Zod schema and calls the checkSecurityCompliance function.
    case 'check_security_compliance': { const params = z.object({ code: z.string(), sensitiveOperations: z.array(z.string()).optional(), }).parse(args); const result = await checkSecurityCompliance( params.code, params.sensitiveOperations ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
  • MCP tool definition including name, description, and input schema for listing and validation.
    name: 'check_security_compliance', description: 'Check code for security vulnerabilities and compliance', inputSchema: { type: 'object', properties: { code: { type: 'string', description: 'Code to check for security issues', }, checkTypes: { type: 'array', items: { type: 'string', enum: ['secrets', 'injection', 'xss', 'auth', 'crypto', 'validation'], }, description: 'Types of security checks to perform', }, }, required: ['code'], }, },
  • Helper function to detect hardcoded secrets like API keys, passwords, tokens using regex patterns.
    function checkHardcodedSecrets(code: string, result: SecurityCheckResult) { const secretPatterns = [ { pattern: /(?:api[_-]?key|apikey)\s*[:=]\s*["']([^"']+)["']/gi, message: 'Hardcoded API key detected', severity: 'critical' as const, }, { pattern: /(?:password|passwd|pwd)\s*[:=]\s*["']([^"']+)["']/gi, message: 'Hardcoded password detected', severity: 'critical' as const, }, { pattern: /(?:secret|token)\s*[:=]\s*["']([^"']+)["']/gi, message: 'Hardcoded secret/token detected', severity: 'critical' as const, }, { pattern: /(?:private[_-]?key)\s*[:=]\s*["']([^"']+)["']/gi, message: 'Hardcoded private key detected', severity: 'critical' as const, }, { pattern: /mongodb:\/\/[^/\s]+:[^@\s]+@/gi, message: 'Hardcoded database credentials in connection string', severity: 'critical' as const, }, ]; const lines = code.split('\n'); secretPatterns.forEach(({ pattern, message, severity }) => { let match; while ((match = pattern.exec(code)) !== null) { const lineNumber = code.substring(0, match.index).split('\n').length; // Skip if it's clearly a placeholder or example const value = match[1] || match[0]; if (value.includes('process.env') || value.includes('YOUR_') || value.includes('EXAMPLE_') || value === 'xxxxxxxx') { continue; } result.violations.push({ severity, type: 'hardcoded-secret', message, line: lineNumber, suggestion: 'Use environment variables: process.env.VARIABLE_NAME', }); } }); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bswa006/mcp-context-manager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server