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

capture-mcp

v0.1.0

Published

MCP server for InstaKast (Beast Creative screencast tool) — drive your recording library from Claude Code or any MCP client.

Readme

capture-mcp

A Model Context Protocol server that exposes the Capture screencast workspace (Beast Creative) to Claude Code, letting you script your library from the terminal:

"Take my last recording, download it to ~/edit/, then write a Remotion script that adds a Beast Creative intro card + outro card + burns the transcript captions in, render it as MP4, and upload it back to Capture as a new recording."

Install

cd "/Users/macbook/Projects/Beast Apps/capture-mcp"
npm install
npm run build

That produces ./dist/index.js (the MCP entry point).

Wire it into Claude Code

Open your Claude Code MCP config — usually ~/.claude/claude_code_config.json or the equivalent for your install.

For users (npx — no clone needed)

Once the package is published (see "Publishing" below), anyone can connect with just their own InstaKast email + password — no repo, no local build:

{
  "mcpServers": {
    "instakast": {
      "command": "npx",
      "args": ["-y", "capture-mcp"],
      "env": {
        "CAPTURE_EMAIL": "[email protected]",
        "CAPTURE_PASSWORD": "<your-instakast-password>"
      }
    }
  }
}

Each user signs in as themselves; Supabase row-level security scopes every action to that user's own library. One user can never see or touch another's recordings.

Local dev (running from this repo)

{
  "mcpServers": {
    "instakast": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/capture-mcp/dist/index.js"],
      "env": {
        "CAPTURE_EMAIL": "[email protected]",
        "CAPTURE_PASSWORD": "<your-instakast-password>"
      }
    }
  }
}

Restart Claude Code. You should see "instakast" in the MCP tool list.

Publishing

The package is publish-ready (bin, files, and a prepublishOnly build). It's unscoped (capture-mcp) so no npm org is needed. To make the npx config above work for everyone:

npm login            # one-time, interactive (browser + 2FA)
npm publish          # runs the build, then publishes capture-mcp

The instakast key in the configs above is just a local label — users can name it anything. Only the package name (capture-mcp) must match what's published.

Optional env vars

| Var | Default | Use | |---|---|---| | CAPTURE_SUPABASE_URL | https://qbdxtnyulltjiaeyjuxv.supabase.co | Override Supabase project URL | | CAPTURE_SUPABASE_ANON_KEY | bundled | Override Supabase anon key | | CAPTURE_SITE_URL | https://capture.beastcreative.co | Where share URLs point |

Tools

| Tool | Purpose | |---|---| | list_recordings | Recent recordings, filterable by folder + search | | list_folders | Your custom folders (in addition to reserved inbox / archive) | | get_recording | Full metadata + a 1-hour signed video URL | | get_transcript | Timestamped Whisper segments (or joined plaintext) | | download_recording | Download MP4 to a local path (default ~/Downloads/capture/) | | upload_recording | Upload a local MP4 as a new recording (the Remotion-loop unlock) | | rename_recording | Change the title | | move_recording | Move to a folder id | | set_public | Toggle public/private share | | set_allow_download | Toggle whether public viewers can download | | set_notes | Set notes shown on the public share page | | transcribe | Trigger Whisper (auto-fires on Capture saves; this is for retries) | | share_url | Compute the /c/<id> URL for a recording | | delete_recording | Delete row + blob + poster | | attach_angles | Register a local folder of multi-cam angle files with a recording (for use with capture-studio) | | list_angles | Show what angle folders are attached to which recordings |

All tools enforce RLS — you can only modify recordings you own.

Example prompts (once wired)

  • "List my last 5 recordings."
  • "Get the transcript for rec_8x2k and summarise it."
  • "Download my latest recording to ~/edit/raw.mp4."
  • "Make rec_8x2k public, set notes to 'Follow-up call', and copy me the share URL."
  • "After I render this, upload /tmp/edited.mp4 to Capture as 'Onboarding review — edited'."

Studio multi-cam editing

The capture-studio sibling project (../capture-studio/) provides the Remotion-based multi-cam editor that pairs with this MCP. Workflow:

  1. attach_angles(recording_id, folder_path) — register a local folder of GoPro / B-cam angle files
  2. download_recording(recording_id, dest_path) — pull the main recording to disk
  3. capture-sync (in capture-studio) — compute audio-sync offsets between angles
  4. capture-studio render plan.json — render the multi-cam edit to MP4
  5. upload_recording(file_path) — push the edited result back to Capture as a new recording

Then the full loop becomes one Claude prompt:

"Edit my latest capture with the angles in ~/capture-angles/<rec_id>/. Cut every 10 s on sentence boundaries."

See capture-studio/README.md for the full studio workflow.

Auth notes

The MCP signs in once with email/password at startup; the JWT is held in memory and auto-refreshed by @supabase/supabase-js. Restarting Claude Code or this process triggers a fresh sign-in. No tokens are written to disk.

To run as a different account, swap the env vars.