ARCHITECTURE.mdā¢18.7 kB
# MCP Modus Architecture
Visual guide to how the MCP Modus server is structured and how it operates with the enhanced feature set.
## Package Structure
```
@julianoczkowski/mcp-modus (NPM Package)
ā
āā š¦ Compressed Size: ~80 KB
āā š Unpacked Size: ~350 KB
ā
āā Contents:
ā
āā š¦ dist/ (Compiled JavaScript)
ā āā index.js ................ 15.2 KB [Main MCP Server]
ā āā index.js.map ............ 12.1 KB [Source map]
ā āā index.d.ts .............. 1.2 KB [TypeScript types]
ā āā index.d.ts.map .......... 1.8 KB [Type source map]
ā
āā š docs/ (Component Documentation)
ā āā modus-wc-accordion.md
ā āā modus-wc-alert.md
ā āā modus-wc-button.md
ā āā ... (40 more files)
ā āā [43 total files] ........ ~170 KB
ā
āā šØ rules/ (Design Rules)
ā āā breakpoints.md
ā āā modus_colors.md
ā āā modus_icons.md
ā āā radius_stroke.md
ā āā spacing.md
ā āā typography.md ........... ~50 KB
ā
āā āļø setup/ (Setup Guides)
ā āā setup_html.md
ā āā setup_react.md
ā āā testing.md
ā āā theme_usage.md
ā āā universal_rules.md ...... ~35 KB
ā
āā š§ Support Files
ā āā package.json ............ 1.2 KB [Metadata]
ā āā README.md ............... 4.1 KB [Documentation]
ā āā download-docs.js ........ 2.8 KB [Doc updater]
ā
āā š¦ Dependencies (auto-installed)
āā @modelcontextprotocol/sdk ~1-2 MB [MCP Protocol]
```
## Installation Flow
```
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā User chooses installation method: ā
ā Option 1: npx -y @julianoczkowski/mcp-modus (recommended) ā
ā Option 2: npm install -g @julianoczkowski/mcp-modus ā
āāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Step 1: NPM Downloads Package ā
ā From: registry.npmjs.org ā
ā Size: ~80 KB (compressed) ā
āāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Step 2: Extract & Install Dependencies ā
ā Installing @modelcontextprotocol/sdk (~1-2 MB) ā
āāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Step 3: Run postinstall Script ā
ā Executes: node download-docs.js ā
ā Downloads fresh docs from 3 GitHub repositories: ā
ā - components_LLM_docs/ (43 files) ā
ā - rules_LLM_docs/ (6 files) ā
ā - setup_LLM_docs/ (5 files) ā
āāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā
Installation Complete ā
ā Total disk usage: ~4 MB ā
ā Ready for MCP integration ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
```
## Runtime Architecture
```
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā IDE (Cursor / VS Code / Claude Desktop) ā
ā ā
ā Spawns process: npx -y @julianoczkowski/mcp-modus ā
ā or mcp-modus (if globally installed) ā
ā ā ā
ā āā stdin (sends JSON-RPC requests) ā
ā āā stdout (receives JSON-RPC responses) ā
āāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā stdio communication
ā
āāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā MCP Modus Server Process ā
ā (Node.js Runtime) ā
ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā 1. Startup & Initialization ā ā
ā ā - Load @modelcontextprotocol/sdk ā ā
ā ā - Initialize Server instance ā ā
ā ā - Setup StdioServerTransport ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā ā
ā ā¼ ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā 2. Load All Documentation ā ā
ā ā - Read docs/ directory (43 component files) ā ā
ā ā - Read rules/ directory (6 design rule files) ā ā
ā ā - Read setup/ directory (5 setup guide files) ā ā
ā ā - Parse metadata and content ā ā
ā ā - Memory usage: ~255 KB (all docs) ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā ā
ā ā¼ ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā 3. Register 10 MCP Tools ā ā
ā ā ā ā
ā ā Component Tools (4): ā ā
ā ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā ā
ā ā ā search_components(query) ā ā ā
ā ā ā get_component_docs(component) ā ā ā
ā ā ā list_all_components() ā ā ā
ā ā ā find_by_attribute(attribute) ā ā ā
ā ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā ā
ā ā ā ā
ā ā Design Rules Tools (3): ā ā
ā ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā ā
ā ā ā get_design_rules(category) ā ā ā
ā ā ā search_design_rules(query) ā ā ā
ā ā ā list_design_categories() ā ā ā
ā ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā ā
ā ā ā ā
ā ā Setup & Development Tools (3): ā ā
ā ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā ā
ā ā ā get_setup_guide(type) ā ā ā
ā ā ā get_theme_usage() ā ā ā
ā ā ā get_development_rules() ā ā ā
ā ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā ā
ā ā¼ ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā 4. Listen Loop ā ā
ā ā - Wait for JSON-RPC requests on stdin ā ā
ā ā - Parse and route to appropriate handler ā ā
ā ā - Send responses via stdout ā ā
ā ā - Memory: ~35-60 MB total ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
```
## Data Flow
```
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā GitHub Repository ā
ā julianoczkowski/QAUI-Modus-Web-Components ā
ā ā
ā āā /components_LLM_docs/ (43 component files) ā
ā āā /rules_LLM_docs/ (6 design rule files) ā
ā āā /setup_LLM_docs/ (5 setup guide files) ā
āāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā download-docs.js
ā (during postinstall)
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā NPM Package Local Storage ā
ā @julianoczkowski/mcp-modus ā
ā ā
ā āā /docs/ (43 component files) ā
ā āā /rules/ (6 design rule files) ā
ā āā /setup/ (5 setup guide files) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā readFileSync() at startup
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Server Memory (3 Arrays) ā
ā ā
ā this.docs = [ /* 43 ComponentDoc objects */ ] ā
ā this.rules = [ /* 6 RuleDoc objects */ ] ā
ā this.setup = [ /* 5 SetupDoc objects */ ] ā
ā ā
ā Total: 54 documentation objects in memory ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā Tool calls (10 different tools)
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā MCP Response ā
ā ā IDE/Claude ā User sees formatted answer ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
```
## Tool Categories & Capabilities
### š Component Documentation Tools (4)
- `search_components(query)` - Searches across 43 components by name/keyword
- `get_component_docs(component)` - Returns complete docs for specific component
- `list_all_components()` - Lists all 43 components organized by category
- `find_by_attribute(attribute)` - Finds components with specific attributes
### šØ Design Rules Tools (3)
- `get_design_rules(category)` - Returns rules for colors, icons, spacing, typography, breakpoints, radius_stroke
- `search_design_rules(query)` - Searches across all design rules by keyword
- `list_design_categories()` - Lists all 6 design rule categories
### āļø Setup & Development Tools (3)
- `get_setup_guide(type)` - Returns setup guides for html, react, testing
- `get_theme_usage()` - Returns theme implementation guidelines
- `get_development_rules()` - Returns universal development best practices
## Performance Characteristics
| Operation | Time | Memory |
| ---------------------- | ------- | ---------- |
| Server startup | ~150ms | 0 ā 35 MB |
| Load all documentation | ~80ms | +255 KB |
| Tool registration | <1ms | Negligible |
| Search components | 5-15ms | Negligible |
| Get component docs | <1ms | Negligible |
| Search design rules | 8-20ms | Negligible |
| Get setup guides | <1ms | Negligible |
| List operations | 10-25ms | Negligible |
| Idle (waiting) | 0% CPU | 35-60 MB |
**Lightweight and efficient** - suitable for continuous background operation
## File System Footprint
**After Installation:**
- Package: ~350 KB (uncompressed)
- Dependencies: ~2 MB
- Downloaded docs: ~255 KB
- **Total: ~4 MB**
**When Running:**
- Disk: Same (no temp files)
- Memory: 35-60 MB
- Network: 0 (offline after install)
## Security Model
**MCP Server Process:**
- **Reads:** docs/, rules/, setup/ directories (bundled files only)
- **Writes:** None
- **Network:** None (at runtime)
- **File system:** Read-only access
**Communication:**
- **Transport:** stdio only (stdin/stdout)
- **Protocol:** JSON-RPC over stdio
- **Control:** IDE/Claude controls tool execution
**Security Features:**
- ā
No external network calls at runtime
- ā
No file writes
- ā
No system modifications
- ā
Pure read-only documentation server
## Summary
**What gets installed**: A comprehensive Node.js application (~4 MB total) containing:
- Enhanced MCP server implementation (15.2 KB JavaScript)
- 43 component documentation files (~170 KB)
- 6 design rule files (~50 KB)
- 5 setup guide files (~35 KB)
- MCP SDK dependency (~1-2 MB)
- Available as: `mcp-modus` command or `npx @julianoczkowski/mcp-modus`
**How it works**: Runs as a background process, communicates via stdin/stdout using JSON-RPC, serves comprehensive Modus documentation from bundled files in memory.
**Performance**: Minimal footprint, sub-25ms response times, works completely offline, supports 10 different tools across 3 categories.
**Coverage**: Complete Modus Web Components ecosystem including component APIs, design system guidelines, and project setup instructions.