DEV Community

Veevid Team
Veevid Team

Posted on

Generate AI Videos From Claude Code With a Remote MCP Server

Most MCP servers you plug into Claude Code are free to call: read a file, query a database, search docs. A video generation server is different. Every generate call spends real credits, and a 4K clip costs a lot more than a 480p test. So the interesting part of wiring one up is not the setup (that's one command), it's making sure your assistant never spends money you didn't agree to.

We build Veevid, an AI video and image platform with a remote MCP server. Here's how to connect it to Claude Code or Cursor, and the pattern we use to keep costs predictable.

Setup

You need an API key from your account settings (keys start with vv_sk_). Then:

claude mcp add --transport http veevid https://veevid.ai/api/mcp \
  --header "Authorization: Bearer vv_sk_your_key_here"
Enter fullscreen mode Exit fullscreen mode

That adds it to the current project. Add --scope user if you want it everywhere.

Cursor works too. Put this in .cursor/mcp.json and keep the key in an env var instead of the file:

{
  "mcpServers": {
    "veevid": {
      "url": "https://veevid.ai/api/mcp",
      "headers": { "Authorization": "Bearer ${env:VEEVID_API_KEY}" }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

The tools you get

  • list_models: what's available (video, image, audio, video tools), and for any one model, its parameters and an example request
  • get_credits: your balance
  • get_quote: the exact cost of a request, without running it. Free.
  • generate: starts the job and returns a generation_id
  • get_generation: status and result; it can wait up to 40 seconds per call
  • upload_file: uploads the reference images, videos or audio a generation needs
  • list_creations: your past generations

Quote first, then generate

get_quote takes exactly the same arguments as generate. That's the whole trick: the assistant builds the request once, asks for the price, shows you the number, and only calls generate after you say yes. The server also tells the assistant to confirm the cost with you, so you don't have to remember to ask.

A typical exchange looks like this:

Me: Make an 8-second 16:9 clip of a golden retriever running through sunflowers, Veo 3.1, 720p.

Claude: (calls get_quote) That's N credits, you have M. Go ahead?

Me: Yes.

Claude: (calls generate, then get_generation until it's done) Here's the video: https://cdn.veevid.ai/...

Videos usually take one to five minutes, so the assistant just keeps polling get_generation. If a job fails, the credits are refunded automatically.

Tips

Be specific about duration, resolution and aspect ratio. "Make a video" leaves the assistant to guess, and the guess decides the price. Say "6 seconds, 480p, vertical" for a draft and only go up once you like the result.

Ask for the cheapest option when testing prompts. Quotes are free, so the assistant can price a few models or settings and compare. Iterate on the prompt cheaply, then render the final at higher quality.

Don't retry blindly after a timeout. If generate times out on the client side, the job may already be running. Have the assistant check list_creations first, or you'll pay twice.

Wrap up

The setup takes a minute. What makes it actually usable day to day is the quote step: your assistant can pick models and write prompts on its own, but it shows you the number before it spends anything. The full parameter list for each model is in the developer docs.

Top comments (0)