Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
MarkdownReporter.tsโ€ข3.26 kB
/** * Markdown Reporter - Generates markdown reports for GitHub * Placeholder implementation - to be completed */ import type { SecurityReport, ScanResult, SecurityFinding } from '../types.js'; export class MarkdownReporter implements SecurityReport { private result: ScanResult; constructor(result: ScanResult) { this.result = result; } generate(): string { const lines: string[] = []; // Header lines.push('# Security Audit Report'); lines.push(''); lines.push(`Generated: ${new Date().toISOString()}`); lines.push(`Duration: ${this.result.duration}ms`); lines.push(''); // Summary lines.push('## Summary'); lines.push(''); lines.push(`- **Total Findings**: ${this.result.findings.length}`); lines.push(`- **Files Scanned**: ${this.result.scannedFiles}`); lines.push(''); // Findings by severity lines.push('### Findings by Severity'); lines.push(''); lines.push(`- ๐Ÿ”ด **Critical**: ${this.result.summary.bySeverity.critical}`); lines.push(`- ๐ŸŸ  **High**: ${this.result.summary.bySeverity.high}`); lines.push(`- ๐ŸŸก **Medium**: ${this.result.summary.bySeverity.medium}`); lines.push(`- ๐ŸŸข **Low**: ${this.result.summary.bySeverity.low}`); lines.push(`- โ„น๏ธ **Info**: ${this.result.summary.bySeverity.info}`); lines.push(''); // Detailed findings if (this.result.findings.length > 0) { lines.push('## Detailed Findings'); lines.push(''); // Group by severity const severityOrder: Array<import('../types.js').SeverityLevel> = ['critical', 'high', 'medium', 'low', 'info']; for (const severity of severityOrder) { const findings = this.result.findings.filter(f => f.severity === severity); if (findings.length === 0) continue; lines.push(`### ${severity.toUpperCase()} (${findings.length})`); lines.push(''); for (const finding of findings) { lines.push(`#### ${finding.ruleId}: ${finding.message}`); lines.push(''); lines.push(`- **File**: \`${finding.file}\``); if (finding.line) lines.push(`- **Line**: ${finding.line}`); if (finding.column) lines.push(`- **Column**: ${finding.column}`); if (finding.code) lines.push(`- **Code**: \`${finding.code.substring(0, 100)}${finding.code.length > 100 ? '...' : ''}\``); lines.push(`- **Confidence**: ${finding.confidence || 'medium'}`); if (finding.remediation) lines.push(`- **Remediation**: ${finding.remediation}`); lines.push(''); } } } // Recommendations lines.push('## Recommendations'); lines.push(''); lines.push('1. Address all critical and high severity issues immediately'); lines.push('2. Review medium severity issues and plan remediation'); lines.push('3. Consider adding suppressions for false positives'); lines.push('4. Run security audit regularly (e.g., in CI/CD pipeline)'); lines.push(''); return lines.join('\n'); } getSummary(): string { return `Found ${this.result.findings.length} security issues`; } getFindings(): SecurityFinding[] { return this.result.findings; } }

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/DollhouseMCP/DollhouseMCP'

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