Skip to content

Canvas MCP Client is an open-source, self-hostable dashboard application built around an infinite, zoomable, and pannable canvas. It provides a unified interface for interacting with multiple MCP (Model Context Protocol) servers through a flexible, widget-based system.

License

Notifications You must be signed in to change notification settings

DerKodex/CanvasMCPClient

Β 
Β 

Canvas MCP Client

Canvas MCP Client LicensePythonNodeFastAPINext.jsFastMCP

A customizable infinite canvas dashboard with integrated Model Context Protocol (MCP) server support

Features β€’ Quick Start β€’ Documentation β€’ Contributing β€’ License


🎯 What is Canvas MCP Client?

Canvas MCP Client is an open-source, self-hostable dashboard application built around an infinite, zoomable, and pannable canvas. It provides a unified interface for interacting with multiple MCP (Model Context Protocol) servers through a flexible, widget-based system.

Why Canvas MCP Client?

  • 🎨 Infinite Canvas: Organize your workspace spatially with unlimited zoom and pan capabilities
  • 🧩 Modular Widgets: Use 12+ pre-built widgets or create your own custom components
  • πŸ› οΈ No-code Widget Builder: Use the widget builder to create your own widgets without coding
  • πŸ€– MCP Integration: Seamlessly connect to multiple MCP servers using the FastMCP library
  • πŸ”Œ AI-Powered: Configure multiple AI providers (OpenAI, Anthropic, Ollama, Google) for enhanced functionality
  • 🎭 Template System: Save and share widget and dashboard configurations
  • 🐳 Easy Deployment: One-command Docker setup or manual installation
  • πŸ”’ Privacy-First: All data stays on your infrastructure, no external dependencies

Perfect for AI power users, developers, content creators, and anyone who wants a customizable workspace for managing AI tools and services.

πŸŽ₯ Quick Demo

Canvas MCP Client Demo

Click to watch the Canvas MCP Client demo video

✨ Features

Core Functionality

  • 🎨 Infinite Canvas Interface

    • Smooth zooming and panning
    • Grid snap and alignment tools
    • Persistent viewport state
    • Responsive and optimized rendering
  • 🧩 Rich Widget System (12+ widgets)

    • πŸ“ Sticky Notes - Quick notes and reminders
    • βœ… To-Do Lists - Task management with checkboxes
    • πŸ’¬ AI Chat - Integrated LLM conversations
    • πŸ–ΌοΈ Image Display - Visual content display
    • πŸƒ Flash Cards - Learning and memorization
    • 🎬 Video Player - Media playback
    • πŸ“Š Kanban Board - Project management
    • πŸ“ˆ Spreadsheet - Data tables and organization
    • πŸ“„ Markdown Editor - Formatted documentation
    • 🌐 Webpage Preview - Embedded web content
    • 🌍 World Clock - Multiple timezone display
    • ☁️ Weather Widget - Live weather information
  • πŸ”Œ MCP Server Management

    • Configure multiple MCP server connections
    • Support for stdio, HTTP, and SSE transport protocols
    • Real-time connection status monitoring
    • Import/export server configurations
  • πŸ€– AI LLM Configuration

    • Multiple AI provider support (OpenAI, Anthropic, Ollama, Google)
    • Configurable model parameters
    • Secure credential storage
    • Custom API endpoints
  • πŸ“¦ Template System

    • Save widgets as reusable templates
    • Export/import dashboard configurations
    • Share templates with the community
    • Template library with preview
  • 🎨 Customization

    • Light and dark themes
    • Widget color and shape customization
    • Flexible layout options
    • Drag-and-drop interface
  • πŸ’Ύ Data Persistence

    • Automatic saving
    • Local SQLite storage (PostgreSQL ready)
    • Session recovery
    • Backup and restore capabilities

πŸš€ Quick Start

Prerequisites

  • Docker & Docker Compose (Recommended) OR
  • Node.js 18+ and Python 3.10+ (Manual setup)

Option 1: Docker (Recommended)

The fastest way to get started:

# Clone the repository
git clone https://github.com/n00bvn/CanvasMCPClient.git
cd CanvasMCPClient

# Start the application
docker-compose up -d

# Access the application
open http://localhost:3031

The application will be available at:

Option 2: Manual Setup

Click to expand manual setup instructions

Backend Setup

# Navigate to backend directory
cd backend

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Create data directory
mkdir -p data

# Set environment variables
export DATABASE_URL="sqlite:///./data/canvas_mcp.db"
export CORS_ORIGINS="http://localhost:3031,http://127.0.0.1:3031"
export SECRET_KEY="your-secret-key-here"

# Start the backend
uvicorn main:app --reload --host 0.0.0.0 --port 8081

Frontend Setup

# Navigate to frontend directory (in a new terminal)
cd frontend

# Install dependencies
npm install

# Set environment variables
export NEXT_PUBLIC_API_URL="http://localhost:8081"

# Start the frontend
npm run dev

The application will be available at http://localhost:3031

First Steps

  1. Configure MCP Servers (Optional)

    • Click the "MCP Servers" button in the sidebar
    • Add your MCP server configurations
    • Test connections
  2. Set Up AI Providers (Optional)

    • Click "AI Config" in the sidebar
    • Add API keys for your preferred providers (OpenAI, Anthropic, etc.)
    • Configure default models
  3. Create Your First Dashboard

    • Click "New Dashboard" in the left panel
    • Add widgets from the toolbar
    • Drag, resize, and customize to your liking
  4. Explore Features

    • Try different widget types
    • Save templates for reuse
    • Export and share your dashboards

πŸ“š Documentation

πŸ—οΈ Architecture

Canvas MCP Client is built with modern, proven technologies:

Frontend

  • Framework: Next.js 15 with React 19
  • Language: TypeScript
  • Styling: Tailwind CSS
  • State Management: Redux Toolkit
  • UI Components: Custom components with Heroicons
  • Canvas Rendering: HTML5 Canvas with optimized performance

Backend

  • Framework: FastAPI (Python 3.10+)
  • Database: SQLite (development) / PostgreSQL (production ready)
  • ORM: SQLAlchemy with Alembic migrations
  • MCP Integration: FastMCP library
  • API Documentation: Auto-generated OpenAPI/Swagger docs

Infrastructure

  • Containerization: Docker & Docker Compose
  • Web Server: Uvicorn (development) / Gunicorn (production)
  • Reverse Proxy: Nginx (optional, for production)

🀝 Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or creating new widgets, your help is appreciated.

Ways to contribute:

  • πŸ› Report bugs and issues
  • πŸ’‘ Suggest new features or widgets
  • πŸ“ Improve documentation
  • πŸ”§ Submit pull requests
  • 🎨 Share widget and dashboard templates
  • ⭐ Star the repository and spread the word

Get started:

  1. Read our Contributing Guide
  2. Check out open issues
  3. Join the discussion in GitHub Discussions

Before submitting a PR:

# Auto-fix formatting issues
./lint-fix.sh

# Check all linting rules
./lint.sh

See Linting Setup for detailed information.

Please read our Code of Conduct before contributing.

πŸ›‘οΈ Security

Security is a top priority. If you discover a security vulnerability, please follow our Security Policy to report it responsibly.

Security Features:

  • Encrypted credential storage
  • Local-first data architecture
  • No telemetry or external data transmission
  • Secure MCP server connections
  • Regular dependency updates

πŸ—ΊοΈ Roadmap

  • Remote MCP servers with oAuth support
  • Integrate with OpenAI apps
  • Attach custom prompt to widgets
  • Support image and video generation AI models
  • Add more built-in widgets like Calendar, Music Player, Charts, etc.
  • Add more utitlities like Text, Shapes, etc.
  • Add custom data sources to widgets (webhook, REST API, etc.)
  • Canvas dashboard history and undo/redo
  • Enhance Widget Builder for more advanced widgets
  • Support web scraping and deep research capabilities
  • Mobile responsive design improvements
  • Enhanced AI integration capabilities
  • Performance optimizations for large dashboards
  • Import/export improvements
  • Real-time collaboration features
  • Accessibility enhancements (WCAG 2.1 compliance)

See the open issues for a full list of proposed features and known issues.

πŸ“Š Project Status

Canvas MCP Client is actively maintained and in stable development. We follow semantic versioning and maintain a CHANGELOG for all releases.

Current Version: 1.0.0 Status: Stable - Ready for self-hosting Last Updated: October 2025

πŸ™ Acknowledgments

  • Built with FastMCP for MCP server integration
  • Inspired by infinite canvas tools like Miro, Figma, and Obsidian Canvas
  • Icons by Heroicons
  • Community contributors and testers

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ’¬ Community & Support

⭐ Star History

If you find Canvas MCP Client useful, please consider giving it a star! ⭐


Made with ❀️ by VISONA and the open source community

⬆ back to top

About

Canvas MCP Client is an open-source, self-hostable dashboard application built around an infinite, zoomable, and pannable canvas. It provides a unified interface for interacting with multiple MCP (Model Context Protocol) servers through a flexible, widget-based system.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 60.1%
  • Python 37.7%
  • Shell 1.4%
  • CSS 0.5%
  • JavaScript 0.2%
  • Dockerfile 0.1%