ASCII Art & Unicode Diagrams MCP Server
Lushy Pattern 2 implementation for text-based visual generation with zero rendering dependencies.
Features
✅ Pure Text Output - No image generation, instant results
✅ Categorical Composition - Functor-based aesthetic parameters
✅ Rich Visual Vocabulary - Unicode box drawing, ASCII shading, layout systems
✅ Deterministic - Same parameters = same output
✅ Universal Compatibility - Works in terminal, markdown, artifacts, documentation
Quick Start
# Install
pip install -e .
# Run locally
python server.py
# Deploy to FastMCP Cloud
fastmcp deploy
Tools
create_ascii_box
Create bordered boxes with optional shading.
create_ascii_box(
width=50,
height=15,
title="System Status",
line_style='double', # light|heavy|double|rounded
shading_palette='blocks', # ascii_standard|blocks|dots|density|braille
shading_direction='radial', # horizontal|vertical|radial|diagonal
contrast=0.8
)
Output:
╔══════════════ System Status ══════════════╗
║███████████████████ ░░░░▒▒▒▓▓██████║
║████████████▓▓▓▓▓▓▓ ░░░░▒▒▒▓▓██████║
║███████▓▓▓▓▓▓▓▒▒▒▒▒ ░░░░▒▒▒▓▓██████║
║████▓▓▓▓▓▒▒▒▒▒▒▒░░░ ░░░░▒▒▒▓▓██████║
╚═══════════════════════════════════════════╝
create_ascii_table
Create data tables with borders.
create_ascii_table(
headers=["Task", "Status", "Progress"],
rows=[
["Deploy API", "Complete", "100%"],
["Run Tests", "Running", "65%"],
["Write Docs", "Pending", "0%"]
],
line_style='heavy'
)
Output:
┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃ Task ┃ Status ┃ Progress ┃
┣━━━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━┫
┃ Deploy API ┃ Complete ┃ 100% ┃
┃ Run Tests ┃ Running ┃ 65% ┃
┃ Write Docs ┃ Pending ┃ 0% ┃
┗━━━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┛
list_ascii_styles
Get all available styles with intentionality.
Functors
Box Drawing
- Line styles: light (minimal), heavy (bold), double (formal), rounded (friendly)
- Symmetry: bilateral, radial, asymmetric
- Intentionality: Visual weight affects emphasis and hierarchy
ASCII Shading
- Palettes: ascii_standard (classic), blocks (smooth), dots (geometric), density (detailed), braille (fine)
- Contrast: 0.0-1.0 controls dramatic vs subtle
- Direction: horizontal, vertical, radial, diagonal
- Intentionality: Different palettes create different textural qualities
Layout Composition
- Canvas size: 20-120 width, 5-50 height
- Alignment: horizontal (left/center/right), vertical (top/middle/bottom)
- Patterns: single_box, nested_boxes, grid, table
- Intentionality: Size and alignment affect viewing distance and emphasis
Use Cases
📊 CLI Tools - Beautiful terminal output
📝 Documentation - Markdown-compatible diagrams
💬 Chat Interfaces - Rich text formatting
📈 Data Visualization - ASCII charts and graphs
🎨 Art & Design - Generative text art
Architecture
Lushy Pattern 2:
Layer 1: Categorical Structure (functors in YAML)
↓
Layer 2: Intentionality (why aesthetics work)
↓
Layer 3: Rendering (deterministic text output)
Zero Dependencies:
- No image libraries
- No external rendering
- Pure Python + Unicode
- Instant output
Examples
Status Dashboard
create_ascii_box(
width=60, height=12,
title="🚀 Deployment Status",
line_style='double',
shading_palette='blocks',
contrast=0.3
)
Build Progress
create_ascii_table(
headers=["Stage", "Time", "Status"],
rows=[
["Compile", "12.3s", "✓"],
["Test", "45.1s", "✓"],
["Deploy", "8.2s", "⏳"]
],
line_style='light'
)
Log Separator
create_ascii_box(
width=80, height=3,
line_style='heavy',
shading_palette='ascii_standard',
shading_direction='horizontal'
)
Deployment
# Deploy to FastMCP Cloud
fastmcp deploy
# Use with Claude Desktop
# Add to claude_desktop_config.json:
{
"mcpServers": {
"ascii-art": {
"url": "https://ascii-art-mcp.fastmcp.app"
}
}
}
Next: SVG Generator
Phase 2 will add SVG generation with the same functor composition system for:
- Scalable vector graphics
- Geometric shapes and charts
- Browser/artifact rendering
- Export to files
License
MIT