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

claude-monet-mcp

v1.0.2

Published

MCP server that gives Claude 'eyes' - sketch in Excalidraw, Claude reads the SVG

Readme


What is this?

  • 🎨 Visual thinking, amplified - Some ideas are easier to draw than describe. Sketch freely and let AI see what you mean.
  • Beautifully simple - A lightweight canvas that does one thing well: bridge your imagination to AI understanding.
  • 🔄 Instant connection - Your strokes flow to AI in real-time via MCP. No exports, no uploads—just draw.

Quick Add

Claude Code

claude mcp add claude-monet -- npx -y claude-monet-mcp

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "claude-monet": {
      "command": "npx",
      "args": ["-y", "claude-monet-mcp"]
    }
  }
}

Cursor

Add to your Cursor MCP settings (Cursor SettingsFeaturesModel Context Protocol):

{
  "mcpServers": {
    "claude-monet": {
      "command": "npx",
      "args": ["-y", "claude-monet-mcp"]
    }
  }
}

[!TIP] After adding the server, restart Claude Desktop/Code/Cursor to load the MCP tools.


Manual Installation

If you prefer to run from source:

Prerequisites

  • Node.js 18+
  • pnpm (or npm)

Install and Build

# Clone the repository
git clone https://github.com/yahavfuchs/claude-monet-mcp.git
cd claude-monet-mcp

# Install dependencies
pnpm install

# Build the React app
pnpm run build

[!IMPORTANT] Run pnpm run build before starting the server for the first time.

Start the Server

pnpm start

The web interface will be available at http://localhost:51423

Configure MCP

Add to your MCP settings:

{
  "mcpServers": {
    "claude-monet": {
      "command": "node",
      "args": ["/path/to/claude-monet-mcp/server.js"]
    }
  }
}

Usage

  1. Start the server - Run pnpm start or use npx claude-monet-mcp
  2. Open the canvas - Navigate to http://localhost:51423 in your browser
  3. Draw your idea - Use Excalidraw tools to sketch rectangles, circles, arrows, text, or freehand
  4. Ask Claude - "Can you see my sketch? What do you think?"

[!TIP] Keep the browser tab open while chatting with Claude. Your drawings sync in real-time.

Perfect for:

  • Explaining UI layouts visually
  • Sketching architecture diagrams
  • Wireframing ideas quickly
  • Visual communication with Claude

MCP Tools

| Tool | Description | |------|-------------| | get_sketch | Returns the current sketch as SVG text | | clear_sketch | Clears the canvas to start fresh |

Example:

Claude receives SVG like:
<svg>
  <rect x="100" y="50" width="200" height="100"/>
  <text x="150" y="100">Header</text>
</svg>

Claude understands: "A rectangle labeled 'Header' - this is a header component"

Why SVG instead of images?

  1. Text-based - Claude reads SVG paths directly, no vision model needed
  2. Smaller - No base64 encoding overhead
  3. Accurate - Exact coordinates, no compression artifacts
  4. Simpler - Just strings, no blob conversion

Development

# Development mode (Vite dev server)
pnpm run dev

# Build for production
pnpm run build

# Start MCP server
pnpm start

# Build and start together
pnpm run dev:full

Project Structure

claude-monet-mcp/
├── server.js           # MCP server + Express (~104 lines)
├── src/
│   ├── App.jsx         # Excalidraw React app (~80 lines)
│   ├── App.css         # Styling (~28 lines)
│   ├── main.jsx        # React entry point
│   ├── index.html      # HTML template
│   └── public/         # Logo assets
├── dist/               # Built output (from Vite)
├── vite.config.js      # Build configuration
└── package.json

Why build this?

Existing Excalidraw MCP servers are complex (~2000+ lines) and focused on "Claude creates diagrams". This tool is minimal and focused on "user sketches → Claude reads".


Acknowledgements

Built with excellent open-source technologies:


Contributing

Contributions welcome! This project is intentionally simple to encourage contributions.


License

MIT