npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

rapport-mcp

v1.6.1

Published

Model Context Protocol (MCP) server for Rapport - enables AI agents to create and modify visual canvases

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-mcp

Option 2: Global npm Install

npm install -g rapport-mcp

Option 3: Use with npx (No Install)

# No installation needed - npx will run it on demand
npx rapport-mcp login

Quick Start

1. Authenticate

rapport-mcp login

This will:

  1. Generate a secure session ID
  2. Open your browser to rapport.dev
  3. Log you in (or use existing session)
  4. Automatically detect when you've authenticated
  5. Save your auth tokens locally
  6. 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-mcp

For 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 logout

Security

  • ✅ 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

  1. User runs rapport-mcp login
  2. CLI generates a unique session ID
  3. Browser opens to rapport.dev for authentication
  4. After login, rapport.dev stores tokens server-side linked to session
  5. CLI automatically polls for authentication completion
  6. Once complete, tokens saved to ~/.rapport-mcp/config.json
  7. MCP server uses tokens with Supabase RLS
  8. 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:

  1. Use get_canvas_template to understand the structure
  2. Use get_svg to fetch current canvas
  3. Modify the SVG to add the rectangle
  4. Use update_svg to 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 login

Troubleshooting

"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:

  1. Make sure you can access rapport.dev from your browser
  2. Complete the authentication promptly after the browser opens
  3. Check your internet connection
  4. Try running rapport-mcp login again

Links

License

MIT © Instant Unicorn

Contributing

Contributions welcome! Please feel free to submit a Pull Request.