Live for Claude Code, Cursor & VS Code

MCP server

Let your AI assistant make images, videos and audio with Gireta, paid from your own credits.

https://gireta.com/api/mcp
  1. Step 1

    Create an API key

    Make a key on this page and keep it somewhere safe. It spends credits from your account.

    YOUR_API_KEY
  2. Step 2

    Add the server

    Run this once in your terminal. It registers the server for every project.

    claude mcp add --transport http gireta https://gireta.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY"
  3. Step 3

    Ask for media

    In a session, ask for an image or a video and Claude calls Gireta for you.

    Make a 9:16 product shot of my mug on marble

Replace YOUR_API_KEY with a key from below. Keys never leave your machine except to reach Gireta.

What you can ask for

Ready-made jobs for Claude, ChatGPT or Cursor once the server is connected.

Animal clip

Animal clips

One short animal clip with a hook and a payoff.

Create in Claude
Story

Doorbell stories

Found footage stories that feel real, one beat per shot.

Create in Claude
Nursery rhyme

Nursery rhymes

Bright, sung kids' rhymes as one vertical video.

Create in Claude
Ranking

Ranking videos

Countdowns that rank things worst to best, number one last.

Create in Claude
3D explainer

3D explainers

Clean animated explainers for science and how things work.

Create in Claude
UGC ad

UGC ads

A creator style ad for your product with a hook and captions.

Create in Claude

Build with the Gireta API

The same models and credits as the app, over plain REST. Create a key, send a prompt, poll for the result.

Quick start

Start a job. Send an Idempotency-Key so a retried request never charges twice.

curl https://gireta.com/api/v1/generations \
  -H "Authorization: Bearer $NOVA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f1c-order-42" \
  -d '{"model": "nano-banana-2", "prompt": "A glass perfume bottle on wet black stone, studio light", "aspect_ratio": "4:5"}'

Then poll until it settles.

const res = await fetch("https://gireta.com/api/v1/generations/" + id, {
  headers: { Authorization: `Bearer ${process.env.NOVA_API_KEY}` },
});
const { data } = await res.json();
if (data.status === "succeeded") console.log(data.outputs[0].url);

Endpoints

Base URL https://gireta.com/api/v1

GET /models

Every model with its settings and default credit cost. No key needed.

GET /me

Your account, plan and credit balance.

POST /generations

Start an image, video or audio job. Returns 201 with the job, or 402 when you are out of credits.

GET /generations/{id}

Poll a job. status moves from queued to running to succeeded or failed. Failed jobs are refunded.

GET /generations

Your latest jobs, newest first. Use ?limit= up to 100.

POST /uploads

Upload a reference image (multipart, field file). Pass the returned url in image_urls.

Generation body

{
  "model": "seedance-2.5",        // id from GET /models
  "prompt": "Slow dolly in on a ceramic mug, steam rising",
  "aspect_ratio": "9:16",         // one of the model's aspect_ratios
  "resolution": "720p",           // one of the model's resolutions
  "duration": 8,                  // video only, one of the model's durations
  "sound": true,                  // video models with sound
  "image_urls": ["https://.../api/uploads/<id>"]  // your own uploads only
}

Settings a model does not support fall back to its defaults. The cost in credits comes back on every job, and the same request always costs the same.

Errors and limits

  • 401 missing or invalid key
  • 402 not enough credits
  • 400 unknown model, empty prompt or a reference image that is not yours
  • 429 more than 120 requests or 30 new jobs a minute

Errors look like {"error": {"code": "insufficient_credits", "message": "..."}}.