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

canva-mcp

v0.1.0

Published

Local OAuth bridge for Canva MCP stdio clients

Readme

This is an independent project, not affiliated with Canva. It forwards MCP tool and resource requests, but does not install itself into your AI client or edit a design by itself.

Install

Publication pending: The package has been prepared as [email protected], but this version is not published to npm yet. Do not use the registry command below until npm view [email protected] version confirms this release. Use Node.js 20.11 or newer, a local browser, and an MCP client that supports stdio.

After the public npm release is verified:

npm install --global canva-mcp
canva-mcp login
canva-mcp status

Until then, install the source from this repository:

git clone https://github.com/AmoureuxID/canva-mcp.git
cd canva-mcp
npm ci
npm install --global .
canva-mcp login
canva-mcp status

The trailing . installs the checked-out source, not a registry package. If you prefer no global installation, use node bin/canva-mcp-stdio.mjs login from the checkout. Install and run under the same OS account, and keep npm's global executable directory on your PATH.

Approve the read-only scopes in your browser on the same computer. If no tab opens, use the one-time URL printed by the still-running login command. Do not share a callback URL, authorization code, or token. The login attempt expires after ten minutes.

Connect your MCP client

For an npm installation, configure the client to launch canva-mcp with the serve argument. For a source checkout, you can instead point your client's stdio configuration to Node and the absolute path to the entry point:

{
  "mcpServers": {
    "canva": {
      "command": "node",
      "args": ["/absolute/path/to/canva-mcp/bin/canva-mcp-stdio.mjs", "serve"]
    }
  }
}

The JSON above is a generic shape; each MCP client may use different settings. Restart or reload the client after configuring it. serve writes MCP protocol messages to standard output, so it is intended to be launched by the client rather than used as an interactive shell. The guide covers Windows paths, OS user accounts, and DSH without replacing an existing connector.

What this bridge handles

  • OAuth authorization with PKCE S256 and a temporary 127.0.0.1 callback, approved by the person signing in.
  • Per-user credential storage, refresh-token rotation, and MCP forwarding to https://mcp.canva.com/mcp.
  • login, serve, status, and logout commands. status reports stored credentials, not whether a revoked grant will still work. logout removes local tokens; revoke access separately in Canva settings if needed.

The default grant requests profile:read, design:meta:read, design:content:read, and folder:read. It requests no write scopes. Canva may advertise tools that this grant cannot execute; a listed tool is not a promise that create, edit, export, or publish will succeed. Clients supporting only a remote HTTP MCP URL cannot use this local stdio bridge directly.

Have an AI agent install it

Copy the guarded agent prompt from the guide. It directs the agent to check the real MCP client settings, show you any config edit before applying it, and leave browser approval to you. Do not provide the agent with a credential file, OAuth code, callback URL, or token.

Status, checks, and limits

The CI badge reflects the current GitHub Actions workflow; inspect the run details before relying on a platform result. The workflow defines Windows, macOS, and Ubuntu jobs for Node 20, 22, and 24. Tests and package inspection run with:

npm ci
npm test
npm pack --dry-run --json

A live OAuth sign-in through this new package and a clean-machine MCP listing have not yet been confirmed. The npm package is not published. Troubleshooting, credential storage, and release checks are in the guide.

MIT license: LICENSE.