ARCHITECTURE.mdโข18.3 kB
# 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.*