Skip to main content

blueprint-mcp-diagram-generation

Generate architecture diagrams, flowcharts, and system visualizations using Nano Banana Pro through Arcade MCP

Jump to install

Source facts

Repository
reason-machines/mcp-skills
Last source activity
May 17, 2026 at 19:30
Detected SKILL.md language
English
Stars
7
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
blueprint-mcp-diagram-generation
description
Generate architecture diagrams, flowcharts, and system visualizations using Nano Banana Pro through Arcade MCP
triggers
["create an architecture diagram","generate a system diagram","visualize this codebase structure","draw a flowchart for this process","make a sequence diagram","show me a data flow diagram","create a visual architecture overview","diagram the system design"]
# Blueprint MCP Diagram Generation > Skill by [ara.so](https://ara.so) — MCP Skills collection. Blueprint MCP enables AI agents to generate professional diagrams for understanding codebases, system architecture, data flows, and processes. It uses Nano Banana Pro's diagram generation capabilities through the Arcade MCP ecosystem. ## What It Does Blueprint MCP provides three core tools for diagram generation: - **start_diagram_job**: Initiates diagram generation, returns a job ID - **check_job_status**: Polls job completion status - **download_diagram**: Retrieves the generated diagram as base64-encoded PNG Works seamlessly with other Arcade MCP servers (GitHub, HubSpot, Google Drive, Slack) to extract data and visualize it as diagrams. ## Installation ### Prerequisites 1. **Arcade Account**: Sign up at https://arcade.dev 2. **Google AI Studio API Key**: Get from https://aistudio.google.com/ ### Setup Steps ```bash # Create and activate virtual environment python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # Install Arcade CLI pip install arcade-mcp # Login to Arcade arcade-mcp login # Store Google API key as secret arcade-mcp secret set GOOGLE_API_KEY="your_api_key_here" # Clone and deploy Blueprint MCP git clone https://github.com/ArcadeAI/blueprint-mcp.git cd blueprint-mcp arcade-mcp deploy ``` ### Configure Gateway 1. Go to https://api.arcade.dev/dashboard 2. Navigate to "Gateways" → "Create Gateway" 3. Add your deployed `architect_mcp` server 4. Copy the gateway URL ### Add to Your IDE **Cursor/Claude Desktop:** ```json { "mcpServers": { "arcade-gateway": { "url": "https://api.arcade.dev/gateway/YOUR_GATEWAY_ID" } } } ``` ## Core Workflow Blueprint MCP uses an asynchronous job-based workflow: ``` 1. start_diagram_job → returns job_id 2. wait ~30 seconds (Nano Banana Pro generates) 3. check_job_status → returns "Complete" when ready 4. download_diagram → returns base64 PNG data 5. decode and save to workspace ``` ## Tool Reference ### start_diagram_job Initiates diagram generation with a detailed prompt. **Parameters:** - `prompt` (string, required): Detailed description of the diagram to generate **Returns:** ```json { "job_id": "550e8400-e29b-41d4-a716-446655440000", "status": "pending" } ``` **Example:** ```python # Agent initiates diagram generation job = start_diagram_job( prompt="Create architecture diagram showing microservices: API Gateway connecting to Auth Service, Order Service, and Payment Service. Auth Service connects to User DB. Order Service connects to Order DB and Inventory Service. Payment Service connects to Payment DB and External Payment Provider. Use technical whiteboard style, muted colors, 16:9." ) # Returns: {"job_id": "abc-123", "status": "pending"} ``` ### check_job_status Polls the status of a diagram generation job. **Parameters:** - `job_id` (string, required): Job ID from start_diagram_job **Returns:** ```json { "job_id": "550e8400-e29b-41d4-a716-446655440000", "status": "Complete" } ``` **Possible statuses:** `"pending"`, `"processing"`, `"Complete"`, `"failed"` **Example:** ```python # Check job status after waiting status = check_job_status(job_id="abc-123") # Returns: {"job_id": "abc-123", "status": "Complete"} ``` ### download_diagram Downloads the completed diagram as base64-encoded PNG. **Parameters:** - `job_id` (string, required): Job ID from start_diagram_job **Returns:** ```json { "job_id": "550e8400-e29b-41d4-a716-446655440000", "image_base64": "iVBORw0KGgoAAAANSUhEUgAA..." } ``` **Example:** ```python # Download completed diagram result = download_diagram(job_id="abc-123") base64_data = result["image_base64"] # Decode and save (agent handles this) import base64 image_data = base64.b64decode(base64_data) with open("architecture_diagram.png", "wb") as f: f.write(image_data) ``` ## Effective Prompt Engineering ### Architecture Diagrams **Good prompt structure:** ``` Create [diagram type] with [number] layers/sections: - LAYER 1: [Component names and purpose] - LAYER 2: [Component names and purpose] - Show [specific connections] with labeled arrows - Use [style preference: technical/whiteboard/UML] - Colors: [muted/vibrant/monochrome] - Aspect ratio: 16:9 or 4:3 ``` **Example:** ```python prompt = """Create microservices architecture diagram with 3 layers: LAYER 1: Client Applications (Web App, Mobile App, Admin Dashboard) LAYER 2: API Gateway with rate limiting, routing to 4 microservices LAYER 3: Services (Auth Service → User DB, Product Service → Product DB, Order Service → Order DB + Message Queue, Payment Service → Payment Provider) Show HTTP/REST connections with labeled arrows (JWT tokens, API calls, webhooks) Use technical whiteboard style, muted blue/gray colors, monospace fonts, 16:9""" ``` ### Sequence Diagrams **Pattern:** ``` Create sequence diagram showing [flow name]: 1. [Actor] → [System]: [action/message] 2. [System] → [Component]: [action/message] 3. [Component] → [External]: [action/message] Return flow showing responses Include error handling path for [specific error] ``` **Example:** ```python prompt = """Create sequence diagram for OAuth 2.0 login flow: 1. User → Frontend: Click "Login with Google" 2. Frontend → Auth Service: Initiate OAuth 3. Auth Service → Google: Authorization request (redirect) 4. Google → User: Login consent screen 5. User → Google: Approve consent 6. Google → Auth Service: Authorization code (callback) 7. Auth Service → Google: Exchange code for tokens 8. Google → Auth Service: Access token + Refresh token 9. Auth Service → Frontend: JWT session token 10. Frontend → User: Logged in dashboard Show error path for token validation failure Technical style, clear labels, 16:9""" ``` ### Data Flow Diagrams **Pattern:** ``` Create data flow diagram for [process]: Sources: [list data sources] Transformations: [list processing steps] Destinations: [list outputs/storage] Show data format at each step (JSON, CSV, Parquet, etc.) Include data volume estimates if relevant ``` **Example:** ```python prompt = """Create ETL pipeline data flow diagram: SOURCES: Customer DB (PostgreSQL), Event Stream (Kafka), External API (REST) TRANSFORMATIONS: - Ingestion Layer: Data validation, deduplication - Processing Layer: PII masking, aggregation, enrichment - Analytics Layer: Metrics calculation, ML feature engineering DESTINATIONS: Data Warehouse (Snowflake), Analytics DB (ClickHouse), S3 Archive Show data formats (JSON→Parquet→Delta), batch sizes, error handling paths Technical style, muted colors, include retry logic, 16:9""" ``` ### Flowcharts **Pattern:** ``` Create flowchart for [process name]: Start: [initial state] Decision points: [list conditions with yes/no paths] Actions: [list processing steps] End states: [success/failure outcomes] Include [specific edge cases or error handling] ``` **Example:** ```python prompt = """Create payment processing flowchart: START: Customer submits order DECISION 1: Payment method? (Credit Card / PayPal / Crypto) - Credit Card → Validate card → Decision: Valid? - Yes → Charge card → Decision: Successful? - Yes → Create order → Send confirmation → END (Success) - No → Retry (max 3) → Decision: Retry successful? - Yes → Create order → END (Success) - No → Refund holds → END (Payment Failed) - No → Show error → END (Invalid Card) - PayPal → Redirect to PayPal → Similar flow - Crypto → Generate wallet address → Wait for confirmation Include timeout handling (15 min), fraud check step before charging Clear yes/no labels, muted colors, 16:9""" ``` ## Real-World Patterns ### Pattern 1: Analyze Codebase and Diagram ```python # Agent workflow combining file reading + diagram generation # Step 1: Analyze code structure files = list_directory("src/services/") # Returns: ["auth.py", "orders.py", "payments.py"] # Step 2: Read key files auth_code = read_file("src/services/auth.py") order_code = read_file("src/services/orders.py") # Step 3: Generate diagram based on code analysis job = start_diagram_job( prompt=f"""Create architecture diagram of the services layer: - AuthService: {extract_classes_and_methods(auth_code)} - OrderService: {extract_classes_and_methods(order_code)} Show dependencies, database connections, and API endpoints Use class diagram style with methods and properties listed Technical whiteboard, monospace fonts, 16:9""" ) # Step 4: Wait and download time.sleep(30) status = check_job_status(job_id=job["job_id"]) if status["status"] == "Complete": diagram = download_diagram(job_id=job["job_id"]) save_base64_image(diagram["image_base64"], "services_architecture.png") ``` ### Pattern 2: Multi-Tool Integration (HubSpot + Diagram) ```python # Requires HubSpot MCP server in same Arcade gateway # Step 1: Fetch data from HubSpot deal = hubspot_get_deal(deal_id="12345") # Returns: {"name": "Acme Corp Enterprise", "stage": "Proposal", ...} # Step 2: Create solution diagram job = start_diagram_job( prompt=f"""Create proposed solution architecture for {deal['name']}: CLIENT ENVIRONMENT: {deal['description']} PROPOSED SOLUTION: - Multi-region deployment (US-East, EU-West) - Load balancers → Application tier (3 instances) - Microservices: Auth, Data Processing, Analytics, Reporting - Databases: Primary PostgreSQL (replicated), Redis cache, S3 storage - Integration points: {deal['integration_requirements']} Show data flow, security zones (DMZ, internal, data), backup strategy Professional style suitable for client presentation, 16:9""" ) # Step 3: Process and attach to deal time.sleep(30) status = check_job_status(job_id=job["job_id"]) if status["status"] == "Complete": diagram = download_diagram(job_id=job["job_id"]) save_base64_image(diagram["image_base64"], "acme_solution_architecture.png") # Upload to HubSpot, Google Drive, etc. ``` ### Pattern 3: Documentation Pipeline ```python # Step 1: Read design doc design_doc = read_file("docs/system_design.md") # Step 2: Extract architectural decisions sections = parse_markdown(design_doc) # Returns: {"components": [...], "data_flow": [...], "deployment": [...]} # Step 3: Generate multiple diagram types diagrams_to_generate = [ ("architecture", "high-level component architecture"), ("deployment", "production deployment topology"), ("data_flow", "data pipeline from ingestion to analytics") ] for diagram_type, description in diagrams_to_generate: job = start_diagram_job( prompt=f"""Based on this design doc, create {description} diagram: {sections[diagram_type]} Use technical whiteboard style, muted colors, clear labels, 16:9""" ) # Store job_id for later processing jobs.append((diagram_type, job["job_id"])) # Step 4: Batch download all diagrams time.sleep(35) for diagram_type, job_id in jobs: status = check_job_status(job_id=job_id) if status["status"] == "Complete": result = download_diagram(job_id=job_id) save_base64_image( result["image_base64"], f"docs/images/{diagram_type}_diagram.png" ) ``` ## Configuration ### Timing Considerations - **Generation time**: ~30 seconds per diagram - **Recommended wait**: 30-35 seconds before first status check - **Polling interval**: Check every 5 seconds if not complete - **Timeout**: Consider job failed after 2 minutes ### Style Preferences Common style keywords for prompts: - **Technical whiteboard**: Clean, professional, engineering-focused - **UML standard**: Formal UML notation (class, sequence, component diagrams) - **Hand-drawn**: Sketch-like appearance - **Minimalist**: Simple boxes and arrows - **Detailed**: Include properties, methods, data types ### Color Schemes - **Muted**: `gray, light blue, purple, orange` (professional) - **Vibrant**: `bright blue, green, red, yellow` (presentations) - **Monochrome**: `black, white, gray` (printable) - **Brand colors**: Specify hex codes if needed ## Troubleshooting ### Job Never Completes **Symptom**: `check_job_status` returns `"pending"` indefinitely **Solutions:** ```python # Add timeout logic import time max_wait = 120 # 2 minutes start_time = time.time() while time.time() - start_time < max_wait: status = check_job_status(job_id=job_id) if status["status"] == "Complete": break
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub