Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
SECURITY_IMPLEMENTATION_PLAN.md4.34 kB
# Security Implementation Plan - DollhouseMCP ## Phase A: Critical Security Infrastructure (Day 1) ### 1. Security Testing Framework **Issue**: #205 **Time**: 2-3 hours **Files to Create**: - `__tests__/security/framework/SecurityTestFramework.ts` - `__tests__/security/framework/RapidSecurityTesting.ts` - `__tests__/security/setup.ts` ### 2. Critical Security Tests **Time**: 2 hours **Test Files**: - `__tests__/security/tests/command-injection.test.ts` - `__tests__/security/tests/path-traversal.test.ts` - `__tests__/security/tests/yaml-deserialization.test.ts` ### 3. Package.json Updates ```json { "scripts": { "security:critical": "jest __tests__/security/critical --maxWorkers=4", "security:rapid": "npm run security:critical && npm audit", "security:all": "jest __tests__/security --coverage", "pre-commit": "npm run security:rapid" } } ``` ## Phase B: Critical Vulnerability Fixes (Day 1-2) ### 1. Command Injection Fix **Issue**: #199 **Files to Create**: - `src/security/commandValidator.ts` - `src/security/safeExec.ts` **Files to Update**: - `src/update/UpdateManager.ts` - `src/update/BackupManager.ts` - Any file using exec/execSync ### 2. Path Traversal Fix **Issue**: #200 **Files to Create**: - `src/security/pathValidator.ts` - `src/security/safeFileOperations.ts` **Files to Update**: - `src/index.ts` (all persona operations) - `src/persona/export-import/PersonaImporter.ts` - `src/persona/export-import/PersonaExporter.ts` ### 3. YAML Deserialization Fix **Issue**: #201 **Files to Create**: - `src/security/yamlValidator.ts` - `src/security/schemaValidators.ts` **Files to Update**: - PersonaLoader usage of gray-matter - ContentValidator integration ## Phase C: High Priority Security (Day 2-3) ### 1. Input Validation Framework **Issue**: #203 **Files to Create**: - `src/security/inputValidator.ts` - `src/security/validators/personaValidator.ts` - `src/security/validators/urlValidator.ts` ### 2. File Locking System **Issue**: #204 **Files to Create**: - `src/security/fileLockManager.ts` - `src/security/atomicFileOperations.ts` ### 3. Token Security **Issue**: #202 **Files to Create**: - `src/security/tokenManager.ts` - `src/security/credentialValidator.ts` ## Phase D: Security Utilities (Day 3) ### Central Security Module **File**: `src/security/index.ts` ```typescript export { CommandValidator } from './commandValidator'; export { PathValidator } from './pathValidator'; export { YamlValidator } from './yamlValidator'; export { InputValidator } from './inputValidator'; export { FileLockManager } from './fileLockManager'; export { TokenManager } from './tokenManager'; export { SecureErrorHandler } from './errorHandler'; export { RateLimiter } from './rateLimiter'; export { SessionManager } from './sessionManager'; ``` ## Implementation Order ### Day 1 (Critical): 1. ✅ Create issues (DONE) 2. Security test framework 3. Critical security tests 4. Command injection fix 5. Run tests, verify fixes ### Day 2 (High Priority): 1. Path traversal fix 2. YAML deserialization fix 3. Input validation framework 4. Update all MCP tools ### Day 3 (Integration): 1. File locking implementation 2. Token security 3. Central security module 4. Integration testing ### Day 4 (Medium Priority): 1. Error handler implementation 2. Enhanced rate limiting 3. Session management 4. Documentation ## Testing Strategy ### For Each Fix: 1. Write security test first (TDD) 2. Implement fix 3. Verify test passes 4. Add edge case tests 5. Performance test 6. Integration test ### Security Test Categories: - **Unit**: Individual validators - **Integration**: Full operation flow - **Penetration**: Attack scenarios - **Regression**: Previous vulnerabilities ## Success Criteria - [ ] All critical vulnerabilities have tests - [ ] Security tests run in <30 seconds - [ ] No security regressions - [ ] All user inputs validated - [ ] File operations are atomic - [ ] Tokens never logged - [ ] YAML parsing is safe ## Commands for Next Session ```bash # Start security work cd /Users/mick/Developer/MCP-Servers/DollhouseMCP git checkout -b security-implementation # Create security directories mkdir -p __tests__/security/framework mkdir -p __tests__/security/tests mkdir -p src/security/validators # Run tests as we implement npm run security:rapid ```

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