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

msvg-mcp

v0.1.1

Published

Model Context Protocol server for msvg (MotionSVG) — create, validate, inspect, preview animation packages and split SVG subpaths from any MCP client

Readme

msvg-mcp

A Model Context Protocol server for the MotionSVG (msvg) toolchain. It exposes msvg's create/validate/inspect/preview workflow — plus an SVG subpath splitter — as MCP tools, so any MCP client (Claude Desktop, Claude Code, or a generic client) can author and check msvg animation packages.

It is a thin, stdio MCP wrapper around the tested msvg-cli library functions, so it stays in lock-step with the CLI's behavior.

Tools

All directory arguments must be absolute paths. Tools return isError: true results (never thrown crashes) on operational failure.

| Tool | When to use | | --- | --- | | msvg_create | Start a new animation. Scaffolds a valid package at animations/<name>/ under an absolute parentDir. name must be kebab-case. | | msvg_validate | After editing a package. Validates against the schema + SVG. Returns { valid, errorCount, warningCount, issues }. | | msvg_inspect | Understand an existing package: assets, target→selector table, timelines (clip counts + durations), states. | | msvg_check_targets | Fast check right after editing motion/targets.json or the SVG — resolves every selector against assets/main.svg. | | msvg_summarize | An agent's first read: AI-friendly Markdown of safe-to-edit files, available names, and validation status. | | msvg_preview_start | Visually review an animation. Starts a 127.0.0.1 preview server (default port 4321, auto-increments if busy); returns the URL. | | msvg_preview_stop | Stop one preview by port, or all running previews (all: true, or omit port). | | msvg_split_subpaths | Prepare an SVG for per-part animation. Splits a path d (or an .svg file's first path) into absolutized subpaths [{ start:[x,y], d }]. |

Hole warning for msvg_split_subpaths

A subpath drawn counter-directionally inside another acts as a hole via the fill rule and must stay in the same <path> as its outer shape, or the hole fills solid. This tool does not recombine holes — concatenate a hole's d onto its outer shape's d (outer first). Use each subpath's start to detect nesting: a start inside another subpath's bounds is almost always its hole.

Install in Claude Desktop (.mcpb, double-click)

  1. Build the bundle (see below) or download msvg-0.1.1.mcpb.
  2. Double-click the .mcpb file, or drag it into Claude Desktop's Settings → Extensions.
  3. Enable the extension. The eight msvg_* tools become available in chats.

Claude Desktop runs the bundled server with its own Node runtime; the bundle vendors all dependencies, so nothing else needs to be installed.

Use from a generic MCP client

Configure the server to run via npx (published on npm as msvg-mcp):

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

Or, from a local checkout, point at the built binary:

{
  "mcpServers": {
    "msvg": {
      "command": "node",
      "args": ["/absolute/path/to/msvg/packages/mcp/bin/msvg-mcp.js"]
    }
  }
}

For the Claude Code plugin (skills + agent) and a fuller integration guide, see docs/claude-integrations.md.

Build from source

From the monorepo root:

npm install
npm run build -w msvg-mcp        # compile TypeScript to dist/
npx vitest run packages/mcp      # run the test suite

Build the Claude Desktop bundle:

npm run build:mcpb -w msvg-mcp   # → packages/mcp/dist-mcpb/msvg-0.1.1.mcpb

build:mcpb packs msvg-mcp, installs the tarball in a clean directory so its dependencies resolve from the public npm registry (proving the published packages are self-sufficient), lays out the bundle per the MCPB spec, and validates + packs it with @anthropic-ai/mcpb. Requires network access; the icon is rendered from mcpb/icon.svg via qlmanage on macOS (shipped as mcpb/icon.png otherwise).

License

MIT © ariadng