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

@fotovid/mcp

v1.0.0

Published

MCP server exposing the Fotovid media API as first-class agent tools

Readme

@fotovid/mcp

npm

An MCP server (Model Context Protocol) that exposes the Fotovid serverless ffmpeg API as first-class AI agent tools — watermark video and images, trim video and audio, extract audio from video, generate video thumbnails, and probe video metadata, all with a single tool call and no ffmpeg binary anywhere.

Full docs, guides, and API reference: fotovid.co/docs

Why this instead of calling the API yourself

  • No tool-calling code to write. Point any MCP client (Claude Desktop, Cursor, …) at this server and the model gets 14 typed tools — 7 sync, 7 async — with schemas and descriptions already written.
  • No ffmpeg to install. Nothing native in the agent's sandbox; every tool is one HTTPS call under the hood.
  • Large input handled correctly. The _async tools and fotovid_get_task give the agent an explicit way to submit and poll for video too large or long for the sync tools, instead of failing.

Usage

Run locally over stdio and point your MCP client at it. Your Fotovid API key is read from the FOTOVID_API_KEY environment variable.

// Claude Desktop / Cursor mcp config
{
	"mcpServers": {
		"fotovid": {
			"command": "npx",
			"args": ["-y", "@fotovid/mcp"],
			"env": { "FOTOVID_API_KEY": "p6_<key_id>:<secret>" }
		}
	}
}

Tools

| Tool | Operation | | --- | --- | | fotovid_watermark_video | Overlay text/logo on a video | | fotovid_watermark_image | Overlay text/logo on an image | | fotovid_trim_video | Cut a clip between two timestamps | | fotovid_extract_audio | Extract a video's audio as MP3 | | fotovid_trim_audio | Slice an audio file to a window | | fotovid_video_thumbnail | Capture a frame as a thumbnail | | fotovid_probe_video | Return video metadata (no file) |

Each media tool returns a URL to the finished file — hosted, time-limited, opaque; see expires_at and store your own copy. Built on @fotovid/sdk.

Async tools (large or long video)

The tools above reject video over ~720p or 15s (a hard sync-API limit). For larger input, use the matching _async tool — it submits a task and returns immediately with a task_id, then poll fotovid_get_task until it's done:

| Tool | Operation | | --- | --- | | fotovid_watermark_video_async | Submit a video watermark task | | fotovid_watermark_image_async | Submit an image watermark task | | fotovid_trim_video_async | Submit a video trim task | | fotovid_extract_audio_async | Submit an audio-extraction task | | fotovid_trim_audio_async | Submit an audio trim task | | fotovid_video_thumbnail_async | Submit a video-thumbnail task | | fotovid_get_task | Check a task's status — outputs once succeeded, error once failed |

There's no async form of fotovid_probe_video — probing is sync-only.

Documentation

License

MIT