# DollhouseMCP Architecture v1.6.10
This document describes the comprehensive architecture of DollhouseMCP v1.6.10, including core systems, design patterns, and architectural components that create a complete AI persona management ecosystem.
## Table of Contents
1. [System Overview](#system-overview)
2. [Core Architectural Components](#core-architectural-components)
3. [Design Patterns](#design-patterns)
4. [Data Flow Architecture](#data-flow-architecture)
5. [Security Architecture](#security-architecture)
6. [Performance Architecture](#performance-architecture)
7. [External Dependencies](#external-dependencies)
8. [System Boundaries](#system-boundaries)
9. [Scalability Design](#scalability-design)
## System Overview
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β End Users β
β (Claude Desktop, AI Apps) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β MCP Protocol
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Server (Core v1.6.10) β
β β’ Portfolio System (PortfolioManager) β
β β’ Unified Indexing (UnifiedIndexManager) β
β β’ Tool Registry (23+ tools) β
β β’ Element Management (BaseElement + Managers) β
β β’ Security Framework (Multi-layer) β
β β’ Caching System (LRUCache + Factory) β
β β’ Error Handling (Centralized) β
β β’ Build Information (Runtime) β
ββββββββ¬βββββββββββββββ¬βββββββββββββββββββ¬βββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Collection β β Catalog β β Experimental β
β (Public) β β (Private) β β (Private) β
β β β β β β
β β’ Personas β β β’ Premium β β β’ Future β
β β’ Templates β β Elements β β Features β
β β’ Skills β β β’ Enterprise β β β’ R&D β
β β’ Tools β β Features β β β’ Coming β
β β’ Agents β β β β Soon β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
```
## Core Architectural Components
### 1. Portfolio System Architecture
The Portfolio System manages all element types through a unified directory structure and provides comprehensive element lifecycle management.
```
Portfolio System
βββ PortfolioManager (Singleton)
β βββ Thread-safe initialization
β βββ Element directory management
β βββ Security validation integration
β βββ Default element provisioning
β
βββ UnifiedIndexManager (Three-tier Search)
β βββ Local portfolio indexing
β βββ GitHub repository indexing
β βββ Collection integration
β βββ Intelligent result merging
β βββ Version conflict resolution
β βββ Performance optimization
β
βββ GitHubPortfolioIndexer
β βββ Repository content scanning
β βββ Branch and tag handling
β βββ Rate limiting compliance
β βββ Incremental updates
β βββ Error recovery mechanisms
β
βββ PortfolioRepoManager
β βββ Repository lifecycle management
β βββ Git operations
β βββ Authentication handling
β βββ Synchronization control
β
βββ PortfolioElementAdapter
βββ Element type conversion
βββ Metadata normalization
βββ Validation orchestration
βββ Cross-system compatibility
```
**Key Features:**
- **Singleton Pattern**: Thread-safe PortfolioManager ensures single point of control
- **Three-tier Indexing**: Local, GitHub, and Collection indexing with intelligent merging
- **Version Management**: Automatic conflict detection and resolution
- **Security Integration**: All operations validated through security framework
### 2. Caching Architecture
High-performance caching system with memory awareness and automatic cleanup.
```
Caching System
βββ LRUCache<T> (Memory-aware)
β βββ Doubly-linked list implementation
β βββ O(1) get/set operations
β βββ Memory usage monitoring
β βββ TTL (Time-to-Live) support
β βββ Automatic eviction policies
β βββ Performance metrics collection
β
βββ CollectionIndexCache
β βββ Specialized for collection data
β βββ Intelligent cache invalidation
β βββ Batch operations support
β βββ Search result optimization
β
βββ CacheFactory (Factory Pattern)
β βββ Cache instance creation
β βββ Configuration management
β βββ Type-specific optimizations
β βββ Memory pool management
β
βββ Performance Monitoring
βββ Hit/miss ratio tracking
βββ Memory usage analysis
βββ Cache efficiency metrics
βββ Automated optimization suggestions
```
### 3. Error Handling Architecture
Centralized error handling with structured error categories and consistent user experience.
```
Error Handling System
βββ ErrorHandler (Service)
β βββ Error categorization
β βββ Stack trace preservation
β βββ User-friendly messaging
β βββ Logging integration
β βββ Recovery suggestions
β
βββ ErrorCategory (Enum)
β βββ USER_ERROR (Input validation)
β βββ SYSTEM_ERROR (Internal failures)
β βββ NETWORK_ERROR (API/connectivity)
β βββ AUTH_ERROR (Authentication)
β βββ VALIDATION_ERROR (Data validation)
β
βββ ApplicationError (Class)
β βββ Structured error information
β βββ Error code system
β βββ Additional context data
β βββ Original error preservation
β βββ Debugging metadata
β
βββ Error Codes System
βββ Hierarchical error codes
βββ Machine-readable identifiers
βββ Internationalization support
βββ Error recovery guidance
```
### 4. Build Information System
Runtime information collection and system diagnostics.
```
Build Information System
βββ BuildInfoService
β βββ Package metadata collection
β βββ Git information extraction
β βββ Runtime environment analysis
β βββ Docker detection
β βββ Performance metrics
β βββ System health monitoring
β
βββ Runtime Information
β βββ Node.js version and platform
β βββ Memory usage tracking
β βββ Process uptime monitoring
β βββ Environment variable analysis
β βββ Configuration state
β
βββ Integration Points
βββ MCP tool exposure
βββ Debug information access
βββ Health check endpoints
βββ Monitoring system integration
```
### 5. Element Serialization Architecture
Comprehensive element serialization with multiple output formats.
```
Element Serialization Flow
βββ BaseElement.serialize() β Markdown/YAML
β βββ YAML frontmatter generation
β βββ Markdown content formatting
β βββ Unicode validation
β βββ Security sanitization
β βββ Cross-platform compatibility
β
βββ BaseElement.serializeToJSON() β JSON
β βββ Structured data export
β βββ Type-safe serialization
β βββ Validation state preservation
β βββ Metadata enrichment
β βββ API-ready format
β
βββ Element Managers and Adapters
β βββ Type-specific serialization
β βββ Validation orchestration
β βββ Format conversion
β βββ Batch processing
β βββ Error handling
β
βββ Security Integration
βββ Content sanitization
βββ Unicode normalization
βββ Injection prevention
βββ Size limit enforcement
```
### 6. Security Architecture
Multi-layer security framework with comprehensive protection mechanisms.
```
Security Framework
βββ SecureYamlParser
β βββ Safe YAML deserialization
β βββ Schema validation
β βββ Type safety enforcement
β βββ Size limit controls
β βββ Injection attack prevention
β
βββ UnicodeValidator
β βββ Direction override detection
β βββ Mixed script analysis
β βββ Normalization processing
β βββ Character category validation
β βββ Security event logging
β
βββ SecurityMonitor
β βββ Event aggregation
β βββ Threat detection
β βββ Audit trail maintenance
β βββ Real-time monitoring
β βββ Alert generation
β
βββ FileLockManager
β βββ Concurrent access control
β βββ Deadlock prevention
β βββ Resource cleanup
β βββ Timeout handling
β βββ Cross-platform compatibility
β
βββ Input Validation
βββ Path traversal prevention
βββ Command injection protection
βββ Content length validation
βββ Regular expression safety
βββ Data type enforcement
```
## Design Patterns
### 1. Singleton Pattern
**Implementation:** PortfolioManager, ConfigManager
```typescript
export class PortfolioManager {
private static instance: PortfolioManager;
private static instanceLock = false;
private static initializationPromise: Promise<void> | null = null;
// Thread-safe instance creation with initialization lock
public static async getInstance(config?: PortfolioConfig): Promise<PortfolioManager> {
// Implementation ensures single instance across application lifecycle
}
}
```
**Benefits:**
- Thread-safe initialization
- Global state management
- Resource conservation
- Consistent configuration
### 2. Factory Pattern
**Implementation:** CacheFactory
```typescript
export class CacheFactory {
public static createIndexCache(): LRUCache<IndexEntry[]> {
return new LRUCache<IndexEntry[]>({
maxSize: 100,
maxMemoryMB: 10,
ttlMs: 5 * 60 * 1000 // 5 minutes
});
}
}
```
**Benefits:**
- Centralized cache configuration
- Type-specific optimizations
- Memory management
- Configuration consistency
### 3. Adapter Pattern
**Implementation:** PortfolioElementAdapter
```typescript
export class PortfolioElementAdapter {
public static async adaptToPortfolioElement(
elementData: any,
type: ElementType
): Promise<IElement> {
// Converts external element formats to internal representation
}
}
```
**Benefits:**
- Cross-system compatibility
- Format normalization
- Validation orchestration
- Type safety enforcement
### 4. Strategy Pattern
**Implementation:** Element Activation Strategies
Different activation strategies for various element types:
- Persona activation: Context injection
- Template activation: Content rendering
- Skill activation: Tool registration
- Agent activation: Decision engine initialization
## Data Flow Architecture
### Element Activation Flow
```
1. User Request
β
2. Portfolio Manager
βββ Element Discovery (UnifiedIndexManager)
βββ Local Search
βββ GitHub Search
βββ Collection Search
β
3. Element Retrieval
βββ Cache Check (LRUCache)
βββ Security Validation (SecurityMonitor)
βββ Download/Load
βββ Integrity Verification
β
4. Element Processing
βββ Parsing (SecureYamlParser)
βββ Validation (UnicodeValidator)
βββ Adapter Processing (PortfolioElementAdapter)
βββ Type-specific Manager
β
5. Activation
βββ Tool Registration (ToolRegistry)
βββ Context Injection
βββ State Management
βββ Error Handling (ErrorHandler)
β
6. Response
βββ User Confirmation
```
### Portfolio Synchronization Flow
```
1. Synchronization Trigger
β
2. Index Manager Coordination
βββ Local Index Update
βββ GitHub Repository Scan
βββ Collection Refresh
β
3. Conflict Resolution
βββ Version Comparison
βββ Timestamp Analysis
βββ Source Priority
βββ User Preference
β
4. Cache Management
βββ Invalidation
βββ Refresh
βββ Optimization
βββ Memory Cleanup
β
5. Notification
βββ Update Status
```
### Error Propagation Flow
```
1. Error Origin
β
2. Error Categorization (ErrorCategory)
β
3. Context Enrichment
βββ Stack Trace Preservation
βββ User Context Addition
βββ System State Capture
βββ Debug Information
β
4. Error Handler Processing
βββ Severity Assessment
βββ Recovery Strategies
βββ User Message Generation
βββ Logging Integration
β
5. Security Monitoring
βββ Threat Detection
βββ Event Logging
βββ Alert Generation
βββ Audit Trail
β
6. User Feedback
βββ Error Message + Recovery Suggestions
```
## System Boundaries
### Internal Systems
- **Portfolio Management**: Local element storage and indexing
- **Element Processing**: Parsing, validation, and activation
- **Security Framework**: Multi-layer protection systems
- **Caching System**: Performance optimization
- **Error Handling**: Centralized error management
- **Build Information**: Runtime diagnostics
### External Dependencies
- **GitHub API**: Repository access and authentication
- **NPM Registry**: Package distribution and updates
- **MCP Protocol**: AI platform integration
- **File System**: Local storage operations
- **Node.js Runtime**: Platform foundation
### API Boundaries
- **MCP Tools**: Exposed functionality to AI platforms
- **GitHub Integration**: Repository operations
- **OAuth Flow**: Authentication management
- **Configuration Management**: Settings persistence
- **Update System**: Automatic updates and patches
## Performance Considerations
### Memory Management
- **LRU Caching**: Automatic memory cleanup with configurable limits
- **Lazy Loading**: On-demand resource loading
- **Object Pooling**: Reuse of expensive objects
- **Garbage Collection Optimization**: Minimal object creation
### I/O Optimization
- **Batch Operations**: Grouped file system operations
- **Async Processing**: Non-blocking operations
- **Connection Pooling**: Reused network connections
- **Compression**: Efficient data transfer
### Search Performance
- **Three-tier Indexing**: Local, GitHub, and Collection optimization
- **Parallel Processing**: Concurrent search operations
- **Result Caching**: Cached search results
- **Smart Pagination**: Efficient large result handling
## Scalability Design
### Horizontal Scaling Considerations
- **Stateless Operations**: No session state dependencies
- **Cache Distribution**: Distributed caching capabilities
- **Load Balancing**: Multiple instance support
- **Database Agnostic**: File-based storage for simplicity
### Vertical Scaling Features
- **Memory Efficiency**: Optimized memory usage patterns
- **CPU Optimization**: Efficient algorithms and caching
- **I/O Minimization**: Reduced file system operations
- **Network Optimization**: Minimized API calls
### Future Architecture Enhancements
1. **Microservices Decomposition**: Service separation for large deployments
2. **Event-Driven Architecture**: Reactive system design
3. **Container Orchestration**: Kubernetes deployment support
4. **Cloud-Native Features**: Auto-scaling and service mesh integration
5. **Distributed Caching**: Redis/Memcached integration
6. **CDN Integration**: Global content delivery
7. **Real-time Synchronization**: WebSocket-based updates
## Repository Relationships
### 1. Core Platform
**mcp-server** is the heart of the system:
- Implements the MCP protocol
- Manages all element types (personas, templates, skills, tools, agents)
- Handles security, validation, and updates
- Provides the CLI and programmatic interfaces
### 2. Content Sources
#### Collection (Community Content)
- Public repository for community-contributed elements
- Free to use and contribute
- Integrated with mcp-server via GitHub API
- Elements validated before acceptance
#### Catalog (Premium Content)
- Private repository for premium elements
- Enterprise features and professional content
- Subscription-based access (coming soon)
- Enhanced security and support
#### Experimental (Innovation Lab)
- Private R&D repository
- Next-generation features under development
- Not accessible to public
- Testing ground for future enhancements
### 3. Developer Ecosystem
#### Developer Kit
- Templates for creating new elements
- Integration examples
- Testing utilities
- Documentation for external developers
## Contributing
See [CONTRIBUTING.md](../CONTRIBUTING.md) for detailed guidelines on:
- Code standards
- Testing requirements
- PR process
- Community guidelines
---
**Architecture Version**: v1.6.10
**Last Updated**: August 25, 2025
**Next Review**: September 2025
*This architecture is designed for scalability, security, and community growth while maintaining simplicity for end users and comprehensive functionality for AI platforms.*