MCP server
oxframe has two MCP servers. oxframe mcp runs on your machine and lets an agent
check, inspect and render the video it is writing. https://mcp.oxframe.dev/mcp is hosted,
needs no install and serves the documentation to agents that cannot run commands.
Local: oxframe mcp | Hosted: mcp.oxframe.dev | |
|---|---|---|
| Transport | stdio | Streamable HTTP, https://mcp.oxframe.dev/mcp |
| Install | The oxframe CLI, Rust, ffmpeg | Nothing |
| Sign-in | None | None |
| Tools | Check, storyboard, frames, inspector, render, docs | Docs search, pages, components, examples |
| Good for | Claude Code, Codex, Cursor, VS Code: agents that edit files | ChatGPT, Claude.ai, web IDEs: agents that only read |
| MCP Registry | io.github.oxygenframe/oxframe | — |
The local server, from scratch
1. Install the oxframe command (Linux and macOS; Windows and other ways are in Install and first project):
curl -fsSL https://github.com/oxygenframe/oxframe-cli/releases/latest/download/install.sh | sh
# or: brew install oxygenframe/tap/oxframe
# or: cargo install oxframe-cli
oxframe doctor # Rust, ffmpeg and a C linker in place? 2. Create a project. The server works on the project in the directory it starts in.
oxframe init my-video && cd my-video 3. Add the server to your client, from inside that directory.
Claude Code
claude mcp add oxframe -- oxframe mcp
# or, shared with everyone who clones the project (writes .mcp.json):
claude mcp add --scope project oxframe -- oxframe mcp The oxframe plugin adds the same server together with the skills: /plugin marketplace add oxygenframe/oxframe-sdk, then /plugin install oxframe@oxframe.
Codex
codex mcp add oxframe -- oxframe mcp Or in ~/.codex/config.toml:
[mcp_servers.oxframe]
command = "oxframe"
args = ["mcp"] Cursor
.cursor/mcp.json in the project, then open the project folder in Cursor:
{
"mcpServers": {
"oxframe": { "command": "oxframe", "args": ["mcp"] }
}
} VS Code (GitHub Copilot)
.vscode/mcp.json in the project:
{
"servers": {
"oxframe": { "type": "stdio", "command": "oxframe", "args": ["mcp"] }
}
} Any other client
The command is oxframe with the argument mcp, started in the project
directory. Messages are newline-delimited JSON-RPC on stdin and stdout; a Content-Length frame is accepted too. Logs go to stderr.
Tools of the local server
check | Compiles the project and runs the visual check. Returns report.json (each
issue with a rule, a time range, the node and file:line), the storyboard path
and hints for common compile errors. frames also writes every sampled frame; against compares with an earlier check and writes diff images. |
storyboard | The same check, answered with the storyboard path and a short summary. |
render_frame | One frame as a PNG: at in seconds, optional scene and size (default 960×540). |
inspect | The scene tree at one time: kind, name, bounds, text and file:line of each node. |
render_graph | The render passes at one time, in order, with the shader of each effect pass. |
list_components | The explainer components (TitleCard, BulletList, CodeExplainer, FlowDiagram and the rest) with a one-line example each. |
docs_search | Searches the docs of the CLI's own version. |
render | Builds in release mode and renders the video: scene, aspect (16:9, 9:16, 1:1 or all), format, size, cpu/gpu. |
Everything runs on your machine; the local server sends nothing anywhere. A typical turn: the
agent edits src/main.rs, calls check, opens the storyboard and the
close-ups of each issue, fixes them and checks again until the report is clean, then calls render. Check rules lists what the check looks for.
The hosted docs server
https://mcp.oxframe.dev/mcp speaks Streamable HTTP, needs no sign-in and only reads. It
follows the current docs on every site deploy.
docs_search | Searches the current docs and returns the best sections with their page URLs. |
get_page | The whole text of one docs page as Markdown, by URL or path. |
list_components | The explainer components and a one-line example of each. |
get_example | The Rust source of an example from the gallery, by name. |
# Claude Code
claude mcp add --transport http oxframe-docs https://mcp.oxframe.dev/mcp
# Codex
codex mcp add oxframe-docs --url https://mcp.oxframe.dev/mcp
# Cursor, .cursor/mcp.json
{ "mcpServers": { "oxframe-docs": { "url": "https://mcp.oxframe.dev/mcp" } } }
# VS Code, .vscode/mcp.json
{ "servers": { "oxframe-docs": { "type": "http", "url": "https://mcp.oxframe.dev/mcp" } } } In ChatGPT and Claude.ai, add it as a custom connector with the URL https://mcp.oxframe.dev/mcp and no authentication. It keeps nothing about you or your
project; requests are logged by Cloudflare like any other (Privacy).
Try it by hand
Both servers answer a plain request, which is handy to see that a setup works:
# local, in a project directory
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | oxframe mcp
# hosted
curl -s https://mcp.oxframe.dev/mcp -H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' When a tool fails
- "no Cargo.toml here or above": the client started the server outside the project. Open the project folder in the editor, or start the client from it.
- The client cannot find
oxframe: GUI apps may not see your shell'sPATH. Use the full path fromwhich oxframeas the command. - A compile error:
checkreturns the compiler text and hints; the agent fixes the code and calls it again. More in Troubleshooting.
How the instructions in each project and the skills fit with the server: Working with AI agents.