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

@excalimate/mcp-server

v0.4.1

Published

Excalimate MCP server for creating Excalidraw designs and animating them with keyframes

Readme

Excalimate MCP Server

Excalimate MCP server for creating Excalidraw designs and animating them with keyframes. Designed for AI agent integration (Claude Desktop, Copilot CLI, etc.).

Pair with app.excalimate.com for real-time live preview — the AI creates and animates, you watch it happen in your browser.

Getting Started with app.excalimate.com

The fastest way to use Excalimate with AI is to combine the deployed web app with this npm package. No cloning, no building — just install and go.

Step 1: Start the MCP server

npx @excalimate/mcp-server
# → Listening on http://localhost:3001/mcp
# → Live preview SSE at http://localhost:3001/live

# Custom port:
npx @excalimate/mcp-server --port 4000

Port priority: CLI arg (--port / -p) > PORT env var > default 3001. Also supports --port=4000 syntax.

Or install globally:

npm install -g @excalimate/mcp-server
excalimate-mcp

Step 2: Open the web app

Go to app.excalimate.com in your browser and click 📡 Live in the toolbar. The app connects to localhost:3001 automatically.

You can configure the MCP server URL in File → Preferences. The app persists this setting in localStorage, shows connection progress (progress bar + notifications), provides smart error dialogs, and warns about HTTPS→HTTP mixed-content connections.

Step 3: Connect your AI

Point your AI tool to http://localhost:3001/mcp as an MCP server. Then ask it to create a diagram and animate it — you'll see elements appear and animate in your browser in real-time.

That's it. The AI draws and animates, you see it live, and you can edit alongside it.

Features

  • 23 tools for scene creation, animation, camera control, export, checkpointing, and sharing
  • Dual transport: stdio (Claude Desktop) + Streamable HTTP (cloud deployment)
  • Live preview: Real-time updates in app.excalimate.com via SSE
  • Sequence reveal: Staggered element reveal animations in one tool call
  • Camera animation: Pan/zoom keyframes for cinematic effects
  • Checkpoint persistence: Save/load complete scene + animation state
  • Runtime versioning: Server version is read from package.json

Installation & Usage

HTTP mode (recommended — enables live preview)

npx @excalimate/mcp-server
# → http://localhost:3001/mcp

# Custom port:
npx @excalimate/mcp-server -p 4000

Open app.excalimate.com and click 📡 Live, then configure your AI tool below.

Configure your AI tool

Add to your VS Code MCP config (.vscode/mcp.json or user-level mcp.json):

HTTP mode (recommended — live preview works):

{
  "servers": {
    "excalimate": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

Start the MCP server first (npx @excalimate/mcp-server), open app.excalimate.com, click 📡 Live, then ask Copilot to create a diagram. You'll see it appear in real-time.

stdio mode (no live preview):

{
  "servers": {
    "excalimate": {
      "type": "stdio",
      "command": "npx",
      "args": ["@excalimate/mcp-server", "--stdio"]
    }
  }
}

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "excalimate": {
      "command": "npx",
      "args": ["@excalimate/mcp-server", "--stdio"]
    }
  }
}

Claude Desktop uses stdio transport, so there's no live preview. The AI creates scenes and animations, then use save_checkpoint to save state and load it in app.excalimate.com via the MCP button in the toolbar.

Claude Code supports HTTP MCP servers. Start the server first, then add it:

npx @excalimate/mcp-server &
claude mcp add excalimate http://localhost:3001/mcp

Open app.excalimate.com and click 📡 Live — you'll see the AI's changes in real-time.

In Cursor settings, go to MCP Servers and add:

  • Name: excalimate
  • Type: http
  • URL: http://localhost:3001/mcp

Start the MCP server (npx @excalimate/mcp-server), open app.excalimate.com, click 📡 Live, then use Cursor's agent to create diagrams with live preview.

Add to your Windsurf MCP config:

{
  "mcpServers": {
    "excalimate": {
      "serverUrl": "http://localhost:3001/mcp"
    }
  }
}

Start the MCP server, open app.excalimate.com, click 📡 Live, and use Cascade to create animated diagrams in real-time.

Point your MCP client to:

http://localhost:3001/mcp

Start the server with npx @excalimate/mcp-server, open app.excalimate.com, and click 📡 Live. Any tool that supports Streamable HTTP MCP transport will work with live preview.

Tip: HTTP mode (the default) is always preferred — it enables live preview so you can watch the AI build your animation in real-time. stdio mode is only needed for tools that don't support HTTP transport (like Claude Desktop).

From source (for development)

cd mcp-server
npm install
npm run build
node dist/index.js          # HTTP mode
node dist/index.js --port 4000
node dist/index.js --stdio  # stdio mode

Tools

Scene Tools

| Tool | Description | |------|-------------| | read_me | Element format reference + animation docs | | get_examples | Few-shot examples for elements and animations | | create_scene | Create/replace scene from elements JSON | | add_elements | Add elements to existing scene | | remove_elements | Remove elements by ID | | update_elements | Modify element properties | | get_scene | Return current scene as JSON | | clear_scene | Clear all elements and animations | | delete_items | Remove specific elements + their animation tracks |

Animation Tools

| Tool | Description | |------|-------------| | add_keyframe | Add keyframe (auto-creates track) | | add_keyframes_batch | Bulk add keyframes | | remove_keyframe | Remove a keyframe | | create_sequence | Staggered reveal animation | | set_clip_range | Set export start/end times | | get_timeline | Return timeline as JSON | | clear_animation | Clear all tracks |

Camera Tools

| Tool | Description | |------|-------------| | set_camera_frame | Set camera position/size/aspect + creates t=0 keyframes | | add_camera_keyframe | Animate camera pan/zoom | | add_camera_keyframes_batch | Bulk camera keyframes |

Inspection Tools

| Tool | Description | |------|-------------| | are_items_in_line | Check horizontal/vertical alignment | | is_camera_centered | Check if camera is centered on content | | items_visible_in_camera | Report visibility of items at a given time | | animations_of_item | Describe all animations of an element |

Sharing Tools

| Tool | Description | |------|-------------| | share_project | Create E2E encrypted share URL for the current project |

share_project accepts { baseUrl?: string } and defaults to https://app.excalimate.com, returning URLs like https://app.excalimate.com/#share=ID,KEY.

Checkpoint Tools

| Tool | Description | |------|-------------| | save_checkpoint | Save scene + animation state | | load_checkpoint | Restore from checkpoint | | list_checkpoints | List saved checkpoints |

Example Workflow

1. read_me                     → Get element format reference
2. create_scene {elements}     → Create a diagram
3. create_sequence {           → Animate elements revealing one by one
     elementIds: ["box1", "arrow1", "box2"],
     property: "opacity",
     startTime: 0,
     delay: 500,
     duration: 800
   }
4. set_clip_range {0, 5000}    → Set 5-second export window
5. save_checkpoint {id: "demo"} → Save for web app preview
   or share_project {baseUrl: "https://app.excalimate.com"} → Generate E2E encrypted share URL