mux-mcp
by NoBanks
README.md
# mux-mcp
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io)
MCP server for [Mux](https://mux.com), the video infrastructure platform. 5 tools for fetching assets, clipping videos into shorts, monitoring live streams, pulling viewer analytics, and triggering auto-captions. Built for AI agents working with video content.
As of May 2026, Mux has an official Node SDK MCP and there are a few small community attempts, but no production-ready Python MCP server lives at this address. This is the community-built rail to fill that gap on the Python side.
## The 5 tools
| Tool | Purpose |
|---|---|
| `get_asset` | Fetch a video asset's metadata, duration, status, and playback URLs |
| `create_clip` | Clip a long video at start and end timestamps to make a short |
| `list_live_streams` | List live streams with their current state (active, idle, disconnected) |
| `get_video_metrics` | Pull engagement and quality metrics from Mux Data (views, error rate, rebuffer percentage) |
| `trigger_transcription` | Generate auto-captions for a video asset in a target language |
## Install
```bash
pip install mux-mcp
```
## Configure
```bash
export MUX_TOKEN_ID="your-mux-token-id"
export MUX_TOKEN_SECRET="your-mux-token-secret"
```
Get a Mux Token ID + Secret at [dashboard.mux.com](https://dashboard.mux.com). Tokens scope to Video, Data, or both. The MCP server uses HTTP Basic Auth: it base64-encodes `MUX_TOKEN_ID:MUX_TOKEN_SECRET` and sends it as the Authorization header on every request.
## Use with Claude Desktop
```json
{
"mcpServers": {
"mux": {
"command": "mux-mcp",
"env": {
"MUX_TOKEN_ID": "your-mux-token-id",
"MUX_TOKEN_SECRET": "your-mux-token-secret"
}
}
}
}
```
Restart Claude Desktop. The 5 Mux tools are now available.
## Use case: AI video editor + analytics assistant
Typical agent flow:
1. Call `get_asset(asset_id)` to pull a long-form video's metadata + duration
2. Call `create_clip(source_asset_id, start_time, end_time)` to cut a short from the source at specific timestamps
3. Call `trigger_transcription(asset_id, language_code)` to auto-generate captions on the new clip
4. For live operations: `list_live_streams(status="active")` to find active broadcasts
5. For analytics: `get_video_metrics(metric_id="video_views", video_id=...)` to pull engagement on a specific video
## Architecture
- Public MIT-licensed wrapper around the Mux REST API
- Async HTTP via `httpx`
- pydantic v2 input validation
- HTTP Basic Auth (base64-encoded token ID + secret), server-side only
- Separates Mux Video endpoints (assets, live streams, tracks) from Mux Data endpoints (metrics)
- Rate-limit aware (429 returns a clean error, agent retries upstream)
## Security note
Mux API endpoints do not support CORS. Requests must run server-side. This MCP keeps the token secret vaulted in environment variables and never exposes them to client code or agent context.
## Development
```bash
git clone https://github.com/NoBanks/mux-mcp.git
cd mux-mcp
pip install -e ".[dev]"
pytest
```
## License
MIT. See [LICENSE](LICENSE).
## Author
Ryan Hammer (NoBanks). Solo founder + engineer. Built this and 7 other MCP servers as part of a sprint to expose AI agent rails for the products and platforms shipping daily.
- GitHub: [@NoBanks](https://github.com/NoBanks)
- X/Twitter: [@livingagentic](https://x.com/livingagentic)
- Site: [livingagentic.me](https://livingagentic.me), [nohumannearby.com](https://nohumannearby.com)
Open to AI engineering roles, contract or full-time, remote-only.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues