A customizable infinite canvas dashboard with integrated Model Context Protocol (MCP) server support
Features β’ Quick Start β’ Documentation β’ Contributing β’ License
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.
-
π¨ 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
- Docker & Docker Compose (Recommended) OR
- Node.js 18+ and Python 3.10+ (Manual setup)
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:3031The application will be available at:
- Frontend: http://localhost:3031
- Backend API: http://localhost:8081
- API Docs: http://localhost:8081/docs
Click to expand manual setup instructions
# 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# 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 devThe application will be available at http://localhost:3031
-
Configure MCP Servers (Optional)
- Click the "MCP Servers" button in the sidebar
- Add your MCP server configurations
- Test connections
-
Set Up AI Providers (Optional)
- Click "AI Config" in the sidebar
- Add API keys for your preferred providers (OpenAI, Anthropic, etc.)
- Configure default models
-
Create Your First Dashboard
- Click "New Dashboard" in the left panel
- Add widgets from the toolbar
- Drag, resize, and customize to your liking
-
Explore Features
- Try different widget types
- Save templates for reuse
- Export and share your dashboards
- Contributing Guide - How to contribute to the project
- Database Guide - Database schema and migrations
- Security Policy - Security guidelines and reporting
Canvas MCP Client is built with modern, proven technologies:
- 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
- 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
- Containerization: Docker & Docker Compose
- Web Server: Uvicorn (development) / Gunicorn (production)
- Reverse Proxy: Nginx (optional, for production)
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:
- Read our Contributing Guide
- Check out open issues
- Join the discussion in GitHub Discussions
Before submitting a PR:
# Auto-fix formatting issues
./lint-fix.sh
# Check all linting rules
./lint.shSee Linting Setup for detailed information.
Please read our Code of Conduct before contributing.
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
- 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.
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
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Project Wiki
- Discord community: Discord Community
- Follow us: @VisonaHQ | @thaw_tran
If you find Canvas MCP Client useful, please consider giving it a star! β
Made with β€οΈ by VISONA and the open source community