Narva
Make faceless YouTube videos and Shorts from a topic or script, then edit them in words and publish them to your YouTube channel.
Documentation
![]()
Narva MCP server
Narva makes faceless YouTube videos: give it a topic, a finished script or a recorded voiceover and it delivers a ready-to-upload video or Short, with the script, natural AI narration in 32 languages, AI visuals in 12 styles with camera moves, real archive footage, animated maps and charts, word-synced captions, music and thumbnails. Then it publishes to your YouTube channel, now or scheduled.
This repository holds the public manifests for Narva's hosted MCP server, so Claude, ChatGPT, Cursor or any MCP client can make and publish videos for you mid-conversation.
- Server URL:
https://narva.app/mcp(Streamable HTTP) - Auth: OAuth 2.1 with PKCE and dynamic client registration, or a personal access token for headless agents
- Requires: a Narva account with a plan (from $29/month). Videos cost credits (about 16 per finished minute of long video); the cost is shown before rendering.
Try: "Make a 10-minute documentary about the Great Emu War in a dark documentary style and publish it to my channel tomorrow at 6pm."
Install
Claude
Claude.ai (web or desktop): Settings → Connectors → Add custom connector → paste the server URL and approve the consent screen.
Claude Code:
claude mcp add --transport http narva https://narva.app/mcp
Or install this repository as a plugin, which adds the server together with a skill that teaches Claude the Narva workflow:
claude plugin marketplace add Negmus/narva-mcp
claude plugin install narva@narva-mcp
ChatGPT
Settings → Security and login → turn on Developer mode, then Plugins → + → paste the server URL. The OAuth prompt signs you in to Narva.
Cursor
Add to Cursor, or in ~/.cursor/mcp.json:
{ "mcpServers": { "narva": { "url": "https://narva.app/mcp" } } }
VS Code
code --add-mcp '{"name":"narva","type":"http","url":"https://narva.app/mcp"}'
Codex
Install this repository as a plugin, which adds the server together with the same skill:
codex plugin marketplace add Negmus/narva-mcp
codex plugin add narva@narva
codex mcp login narva
Or only the server, in ~/.codex/config.toml:
[mcp_servers.narva]
url = "https://narva.app/mcp"
then codex mcp login narva to approve the consent screen.
Gemini CLI
gemini extensions install https://github.com/Negmus/narva-mcp
Sign in with /mcp auth narva.
Google Antigravity
In mcp_config.json (Agent panel → MCP Servers → Manage → View raw config):
{ "mcpServers": { "narva": { "serverUrl": "https://narva.app/mcp" } } }
Or install this repository as a plugin: agy plugin install https://github.com/Negmus/narva-mcp
Windsurf
In ~/.codeium/windsurf/mcp_config.json:
{ "mcpServers": { "narva": { "serverUrl": "https://narva.app/mcp" } } }
Kiro
Add to Kiro, or in .kiro/settings/mcp.json:
{ "mcpServers": { "narva": { "url": "https://narva.app/mcp" } } }
Cline, Kilo Code and Roo Code
MCP Servers → Remote Servers → name narva, URL https://narva.app/mcp, transport Streamable HTTP.
Goose
goose configure → Add Extension → Remote Extension (Streamable HTTP) → https://narva.app/mcp.
LM Studio
n8n, Make, containers and other headless clients
The OAuth callback cannot reach a client that runs on a server, so create a personal access token under Settings → API & MCP on narva.app and send it as a header:
mcp_servers:
narva:
url: https://narva.app/mcp
headers:
Authorization: Bearer YOUR_TOKEN
The same token works with the REST API (https://narva.app/api/v1).
Tools
Everything is scoped to the signed-in user's own account and videos.
| Tool | Kind | What it does |
|---|---|---|
get_account | read | Credits, plan, price per minute and connected YouTube channels |
list_options | read | Formats, niches, tones, languages, visual and caption styles, music moods, voices |
list_videos / get_video | read | Your videos with status, progress, cost, script, scenes, download and editor links |
list_youtube_channels | read | Channels connected for publishing |
create_video | write | Start a video from a topic or a script; on autopilot it renders by itself |
update_script | write | Replace the script of a video that has not been rendered yet |
plan_video | write | Cut the script into scenes and direct them; shows the exact credit cost |
render_video | write | Render a planned video (charges the shown credits; failures are refunded) |
edit_scene | write | Change one scene's line, image or motion graphic |
edit_video | write | Describe a change in words; Narva proposes the edits, then applies them |
create_short_from_video | write | Turn a finished long video into a 9:16 Short |
publish_to_youtube | write | Upload to your channel now or scheduled, with title, description, tags and thumbnail |
delete_video | write | Delete a video and its files (not copies already on YouTube) |
Every tool carries readOnlyHint, destructiveHint, openWorldHint and idempotentHint annotations. Rendering spends credits and publishing posts public content, so the server tells the assistant to confirm both with you first.
What is in this repository
server.json: the entry in the official MCP Registry asapp.narva/mcp.claude-plugin/+.mcp.json+skills/narva/SKILL.md: a Claude Code plugin bundling the server with a skillplugin.json+mcp.json: the same as an Agent Plugin for Codex (OpenAI settings underextensions.com.openai), Cursor and compatible clients;.agents/plugins/marketplace.jsonmakes the repository a Codex marketplacegemini-extension.json: a Gemini CLI extension.antigravity-plugin/plugin.json+mcp_config.json: an Antigravity plugin;plugins/narva/holds the same without the skillSETUP.md: the connection walkthrough a client can follow after install
The server itself is part of the Narva web application and is not open source. The manifests and skill here are MIT licensed.
Privacy Policy
The server only reads and writes the signed-in user's own Narva data, and publishes to YouTube only the channels the user connected. Privacy policy: https://narva.app/privacy. Terms: https://narva.app/terms. Support: support@narva.app.