Skip to main content
Glama
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.*

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

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