rapport-mcp
v1.6.1
Published
Model Context Protocol (MCP) server for Rapport - enables AI agents to create and modify visual canvases
Maintainers
Readme
Rapport MCP Server
Model Context Protocol (MCP) server for Rapport - enables AI agents like Claude to create and modify visual canvases.
Features
- 🎨 Canvas Manipulation - Read and modify SVG canvases
- 🔍 Element Queries - Find specific elements using CSS selectors
- 📝 Templates & Guides - Get comprehensive editing instructions
- 🛡️ Security Validation - Built-in XSS and script injection prevention
- 🔐 OAuth Authentication - Seamless browser-based login flow (works on remote servers!)
Installation
Option 1: Using Claude Code (Recommended)
# Install from npm
claude mcp add rapport-mcp
# Or use npx (no install required)
claude mcp add npx rapport-mcp
# Or for local development
claude mcp add npx /path/to/rapport-mcpOption 2: Global npm Install
npm install -g rapport-mcpOption 3: Use with npx (No Install)
# No installation needed - npx will run it on demand
npx rapport-mcp loginQuick Start
1. Authenticate
rapport-mcp loginThis will:
- Generate a secure session ID
- Open your browser to rapport.dev
- Log you in (or use existing session)
- Automatically detect when you've authenticated
- Save your auth tokens locally
- You're ready to go!
2. Configure Your AI Client
For Claude Code
Already done if you used claude mcp add! Otherwise:
claude mcp add rapport-mcpFor Claude Desktop
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
Option A: With global install
{
"mcpServers": {
"rapport": {
"command": "rapport-mcp",
"args": []
}
}
}Option B: With npx (no install needed)
{
"mcpServers": {
"rapport": {
"command": "npx",
"args": ["-y", "rapport-mcp"]
}
}
}Option C: Local development
{
"mcpServers": {
"rapport": {
"command": "npx",
"args": ["-y", "/path/to/rapport-mcp"]
}
}
}3. Restart Your AI Client
That's it! Claude can now interact with your Rapport canvases.
Available Tools
get_svg
Get the SVG document and metadata for your canvas.
{
"include_metadata": true // optional
}Note: Automatically uses your authenticated user account - no project ID needed!
get_canvas_template
Get a comprehensive guide for modifying your canvas. Use this first before making changes!
{}update_svg
Update your canvas with new SVG content. Includes automatic security validation.
{
"svg_document": "<svg>...</svg>",
"skip_validation": false // optional, NOT recommended
}query_elements
Find elements in your canvas using CSS selectors.
{
"selector": "rect[fill='blue']"
}CLI Commands
# Authenticate with Rapport
rapport-mcp login
# Check authentication status
rapport-mcp status
# Clear authentication
rapport-mcp logoutSecurity
- ✅ OAuth-based authentication with automatic polling (no manual token copying!)
- ✅ Works on remote servers without localhost dependencies
- ✅ Tokens stored securely in
~/.rapport-mcp/config.json - ✅ Session-based flow with automatic expiration
- ✅ Automatic XSS and script injection prevention
- ✅ Row Level Security (RLS) enforces project ownership
- ✅ Comprehensive SVG validation
How It Works
- User runs
rapport-mcp login - CLI generates a unique session ID
- Browser opens to rapport.dev for authentication
- After login, rapport.dev stores tokens server-side linked to session
- CLI automatically polls for authentication completion
- Once complete, tokens saved to
~/.rapport-mcp/config.json - MCP server uses tokens with Supabase RLS
- Only user's own projects are accessible
Remote Server Friendly: No localhost callback needed - works perfectly on remote servers via SSH!
Example Usage with Claude
"Get my canvas and add a blue rectangle in the center"
Claude will:
- Use
get_canvas_templateto understand the structure - Use
get_svgto fetch current canvas - Modify the SVG to add the rectangle
- Use
update_svgto save changes
Development
# Clone the repository
git clone https://github.com/MicahBly/rapport-mcp.git
cd rapport-mcp
# Install dependencies
npm install
# Build
npm run build
# Test locally
node dist/cli.js loginTroubleshooting
"Not authenticated" error
Run rapport-mcp login to authenticate.
"Project not found"
Make sure you're logged in with the correct account that owns the project.
"SVG validation failed"
The SVG contains unsafe content (scripts, event handlers). Check the error message for details.
OAuth authentication times out
The authentication flow times out after 5 minutes. If this happens:
- Make sure you can access rapport.dev from your browser
- Complete the authentication promptly after the browser opens
- Check your internet connection
- Try running
rapport-mcp loginagain
Links
License
MIT © Instant Unicorn
Contributing
Contributions welcome! Please feel free to submit a Pull Request.
