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

butterstack-mcp

v0.2.0

Published

Model Context Protocol server for ButterStack: game dev pipelines, tasks, builds, and asset approvals for AI assistants.

Readme

butterstack-mcp

A Model Context Protocol (MCP) server for ButterStack: give an AI assistant read/write access to your game dev pipeline, tasks, builds, and asset approvals.

Zero runtime dependencies. Node builtins only.

Install

Add this to your MCP client's config. No global install needed, npx fetches it on demand:

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

Claude Desktop

Edit claude_desktop_config.json (Settings -> Developer -> Edit Config) and add the block above under mcpServers, then restart Claude Desktop.

Cursor

Add the same block to .cursor/mcp.json in your project, or to your global Cursor MCP settings, under mcpServers.

Antigravity

Add the same block to your Antigravity MCP configuration under mcpServers.

Authentication

Set BUTTERSTACK_API_TOKEN in your client's MCP server environment. This is the primary and recommended way to authenticate: it works standalone, with nothing else installed.

{
  "mcpServers": {
    "butterstack": {
      "command": "npx",
      "args": ["-y", "butterstack-mcp"],
      "env": {
        "BUTTERSTACK_API_TOKEN": "your-token-here"
      }
    }
  }
}

Generate a token from your ButterStack account settings.

If you separately have the ButterStack CLI installed and have already run butter auth login, this server will also pick up the credential it stored on disk (~/.config/butterstack/credentials.json), so you don't have to configure a token twice. But the CLI is not a dependency of this package and installing it is not required: BUTTERSTACK_API_TOKEN alone is enough.

Host

By default the server talks to https://www.butterstack.com. To point it at a self-hosted or local instance, set BUTTERSTACK_HOST:

{
  "env": {
    "BUTTERSTACK_API_TOKEN": "your-token-here",
    "BUTTERSTACK_HOST": "http://localhost:3000"
  }
}

The server refuses to send a stored credential to a host other than the one it was issued for. If you see a "Refusing to send the stored credential" error, either set BUTTERSTACK_HOST to match the host your credential was minted for, or generate a new credential for the host you're pointing at.

Tools

| Tool | Description | |---|---| | projects_list | List all accessible game projects and repositories. | | projects_get | Get status, pipeline configuration, and pending asset counts for a project. | | tasks_list | List tasks, bugs, art backlog, and balance tickets for a project, with filters. | | tasks_create | Create a new bug, feature, or art task card. | | tasks_update | Update status, priority, description, or assignee of an existing task. | | builds_list | List recent CI/CD engine build runs and cook statuses. | | builds_get | Get step timings, exit codes, and commit metadata for a build run. | | builds_investigate_failure | Trigger or fetch AI failure investigation for a failed build, with root cause and blame attribution. | | changes_list | List a project's changes (git commits, Perforce and Lore changelists), filterable by source, identifier, and update time. | | changes_get | Get one change with its files, approvals, linked builds, and tasks. Takes a change id or a commit reference (full SHA, a Perforce build's p4-<n>, or lore-<n>), so a build's commit_hash from builds_get resolves to its change. | | assets_list_pending | List game assets awaiting producer or art lead approval. | | assets_get_details | Inspect an asset's polygon count, texture resolution, preview links, and approval history. | | assets_approve | Approve a submitted game asset version. | | assets_deny | Deny a submitted game asset version with constructive feedback. |

Every tool takes a project_id (except projects_list), which accepts either a numeric project ID or a project name.

The changes_* tools need the read:changes scope. A token issued before that scope was added to the CLI login set does not carry it and gets insufficient_scope: run butter auth login again, or add the scope to your token in account settings.

Prompts

| Prompt | Description | |---|---| | triage_broken_build | Diagnose why the latest build for a project failed and file an attributed task for the author. | | batch_asset_review | Review all pending art submissions for a project against budget constraints. |

Resources

| Resource | Description | |---|---| | butterstack://projects | Live list of all game projects accessible with the current credentials. |

Requirements

Node 18 or later. That's a supported-versions policy, not a hard technical floor: the server only uses builtins compatible back to Node 10.9.0, but 18 is the oldest version this package is actually tested against.

Releases

Publishing is tag-driven, not merge-driven: merging to main publishes nothing. To cut a release, bump version in package.json, commit that, then tag the commit vX.Y.Z to match and push the tag. The tag push runs the test suite, publishes to npm with provenance, and cuts the matching GitHub Release with generated notes.

git commit -am "Bump version to 0.2.0"
git tag v0.2.0
git push origin main --tags

License

MIT