# 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.