Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
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.*

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