About AIVeed
AIVeed is an MCP server for using the AIVeed API to generate video, images, and audio. It provides model discovery, job controls, and media listing, with generation charged to the user's AIVeed credits.
Key features
- 01Browse models, inputs, and prices
- 02Generate video, images, and audio
- 03Extend completed Veo 3.1 videos
- 04Track, list, and cancel jobs
- 05Upload local media as model input
Use cases
- 01Check available models and their prices
- 02Generate media through an MCP client
- 03Track or cancel an active generation job
- 04Provide local media as generation input
MCP support
The server connects MCP clients to the AIVeed REST API using an API key. It offers stdio and stateless Streamable HTTP modes; HTTP callers provide their own key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y aiveed-mcpAIVEED_API_KEYSecretYour AIVeed API key (aiv_sk_...), from https://developer.aiveed.io/keysAIVEED_MCP_UPLOAD_DIRSComma-separated folders upload_media may read (it is off until set), e.g. ~/Videos/aiveed-inputsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
12Saved tool list · updated 2d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | enum | No | Only this kind of modelvideo | image | audio | extend |
Details
From the project READMEaiveed-mcp
MCP server for the AIVeed API: generate AI videos, images and audio (Veo 3.1, Seedance, Kling, Wan, Grok Imagine, GPT Image, Nano Banana and more) from Claude, Cursor, VS Code or any MCP client. Generations are paid in AIVeed credits from your own account.
It talks only to the public REST API at https://api.aiveed.io/v1, with your API key. It holds no
other credentials and can do nothing your key could not already do with curl.
Tools
| Tool | What it does | Credits |
|---|---|---|
list_models | Live model catalog: options, accepted inputs, prices (no key needed) | free |
get_credits | Your balance | free |
generate_video / generate_image / generate_audio | Start a job, returns a job id | spends |
extend_video | Add ~7 s to a completed Veo 3.1 video | spends |
get_job | Job status; wait_seconds polls until it finishes | free |
list_jobs, list_videos, list_images | Your jobs and media (permanent URLs) | free |
cancel_job | Cancel a queued job (refunded) | free |
upload_media | Upload a local image/audio/video as an input (stdio only) | free |
Every generate call sends an Idempotency-Key (returned in the result), so a retry with the same
key never charges twice. Failed jobs are refunded automatically.
Setup
Create an API key at https://developer.aiveed.io/keys. Node.js 20 or newer is required. Step-by-step setup for each client: https://api.aiveed.io/docs/mcp.
Claude Code
claude mcp add aiveed -e AIVEED_API_KEY=aiv_sk_... -- npx -y aiveed-mcp
Claude Desktop and Cursor (claude_desktop_config.json, ~/.cursor/mcp.json):
{
"mcpServers": {
"aiveed": {
"command": "npx",
"args": ["-y", "aiveed-mcp"],
"env": { "AIVEED_API_KEY": "aiv_sk_..." }
}
}
}
VS Code (.vscode/mcp.json, or MCP: Add Server in the command palette):
{
"servers": {
"aiveed": {
"type": "stdio",
"command": "npx",
"args": ["-y", "aiveed-mcp"],
"env": { "AIVEED_API_KEY": "aiv_sk_..." }
}
}
}
Pin a version ([email protected]) if you prefer upgrades to be deliberate.
Local files
upload_media turns a local file into a URL a model can use. That URL is public, so the tool is
off until you list the folders it may read in AIVEED_MCP_UPLOAD_DIRS, for example
"AIVEED_MCP_UPLOAD_DIRS": "~/Videos/aiveed-inputs". List folders that hold only media you are
happy to share; a folder for generation inputs is ideal. Even inside them the tool never reads
hidden files or folders, system directories or hard-linked files, and only uploads real image,
audio and video files (checked by their content, not just the name).
Generate tools spend credits and upload_media publishes a file, so keep your client's approval
prompt on for them rather than auto-approving.
HTTP mode (hosting)
node dist/index.js --http --port 8787 --host 127.0.0.1
Streamable HTTP at POST /mcp, stateless. --host/--port (or AIVEED_MCP_HOST/AIVEED_MCP_PORT)
set the address. Every request must carry its caller's own key
(Authorization: Bearer aiv_sk_...); AIVEED_API_KEY is ignored, so a hosted instance never spends
anyone else's credits. upload_media is not offered (it would read the host's disk).
| Variable | Default | |
|---|---|---|
AIVEED_MCP_ALLOWED_HOSTS | localhost,127.0.0.1,[::1] | Host header names accepted (a DNS-rebinding guard, not access control); add your public hostname behind a proxy |
AIVEED_MCP_ALLOWED_ORIGINS | none | Browser origins allowed; requests without an Origin header are allowed |
AIVEED_API_URL | https://api.aiveed.io | API origin (https only; http allowed for localhost) |
Run it behind a TLS-terminating proxy with a rate limit; it binds to 127.0.0.1 by default and answers 503 beyond 64 requests in flight.
Development
npm ci
npm test # vitest; no network, the API is faked
npm run typecheck
npm run build # dist/
npm run leak-scan # credentials, private addresses, personal paths
Work happens on development; main holds released code. See SECURITY.md for the
security model and RELEASING.md for how releases are published.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.