Astro + Starlight documentation site for mcwaddams MCP server. Features: - Diátaxis documentation structure (tutorials, how-to, reference, explanation) - Office Space theming (Milton Waddams, TPS Reports, red Swingline) - 29 documentation pages covering all 20 tools - TPS Reports section for test results - Flair gamification config (pieces of documentation flair) - Custom CSS with Office Space color scheme Structure: - Getting Started: backstory, installation, quickstart - Tutorials: first extraction, legacy formats, indexing, resources - How-To: tables, Excel analysis, markdown, pagination, URLs - Reference: all tools, universal/word/excel tools, MCP resources, formats - Explanation: architecture, mixins, fallbacks, resource system - TPS Reports: dashboard, coverage, torture tests - Community: credits, feedback, leaderboard
36 lines
957 B
Plaintext
36 lines
957 B
Plaintext
---
|
|
title: Why Mixins?
|
|
description: The architectural decision behind mcwaddams's modular structure.
|
|
---
|
|
|
|
import { Aside } from '@astrojs/starlight/components';
|
|
|
|
# Why Mixins?
|
|
|
|
> *"What would you say... you do here?"*
|
|
|
|
mcwaddams uses Python mixins to organize 20 tools into logical groups without creating multiple MCP servers.
|
|
|
|
## The Pattern
|
|
|
|
```python
|
|
class MCWaddamsServer(
|
|
UniversalMixin, # 7 cross-format tools
|
|
WordMixin, # 10 Word-specific tools
|
|
ExcelMixin, # 3 Excel-specific tools
|
|
):
|
|
pass
|
|
```
|
|
|
|
## Benefits
|
|
|
|
1. **Single server** — One MCP configuration, not three
|
|
2. **Shared utilities** — Validation, caching, format detection
|
|
3. **Clear boundaries** — Each mixin owns its tools
|
|
4. **Easy testing** — Test mixins in isolation
|
|
5. **Simple extension** — Add PowerPoint mixin without touching Word code
|
|
|
|
<Aside type="note">
|
|
See [Architecture](/explanation/architecture/) for the full design.
|
|
</Aside>
|