Google Veo 3.1 MCP Server
Provides tools for generating videos using Google's Veo 3.1 API, including text-to-video, image-to-video, video extension, and frame interpolation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Veo 3.1 MCP ServerGenerate a 1080p 8-second video of a cat playing piano, with audio"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Veo 3.1 MCP Server
MCP Server and CLI batch tool for Google Veo 3.1 Video Generation API.
Features
MCP Server for integration with Claude Desktop and other MCP clients
Batch CLI Tool for processing multiple video generation jobs
Text-to-Video: Generate videos from text prompts
Image-to-Video: Animate static images
Reference Images: Use up to 3 images for character/style consistency
Video Extension: Extend existing videos by 7 seconds
Frame Interpolation: Generate video between two keyframes
Cost Estimation: Calculate costs before execution
Related MCP server: veo-mcp-server
Installation
npm install
npm run buildSetup
Get your Google API key from Google AI Studio
Create a
.envfile:
GOOGLE_API_KEY=your_api_key_hereOr set the environment variable directly:
export GOOGLE_API_KEY=your_api_key_hereMCP Server Usage
Claude Desktop Configuration
Add to your Claude Desktop configuration (%APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"veo3": {
"command": "node",
"args": ["C:/path/to/google-veo3-1-mcp-server/dist/index.js"],
"env": {
"GOOGLE_API_KEY": "your_api_key_here"
}
}
}
}Or using npx after publishing:
{
"mcpServers": {
"veo3": {
"command": "npx",
"args": ["google-veo3-1-mcp-server"],
"env": {
"GOOGLE_API_KEY": "your_api_key_here"
}
}
}
}Available Tools
generate_video
Generate video from text prompt or image.
{
"prompt": "A golden retriever running through autumn leaves",
"model": "veo-3.1-generate-preview",
"resolution": "1080p",
"duration_seconds": 8,
"generate_audio": true,
"output_path": "./output/video.mp4"
}Parameters:
prompt: Text description of the video (required unless image provided)model:veo-3.1-generate-preview(default),veo-3.1-fast-generate-preview, orveo-3.1-lite-generate-previewaspect_ratio:16:9(default) or9:16resolution:720p(default),1080p, or4k(4k not available for lite model)duration_seconds:4,6, or8(default: 8; must be 8 when using 1080p/4K or reference images)generate_audio: Whether to generate audio (default: true)negative_prompt: Elements to avoidimage: Image for Image-to-Video modereference_images: Array of reference images for consistencysample_count: Number of videos to generate per request (default: 1)output_path: Path to save the videowait: Set tofalseto return theoperation_nameimmediately instead of blocking until the video is ready (default:true). Also supported byextend_videoandinterpolate_frames.
extend_video
Extend an existing video by 7 seconds.
{
"video": "./input/video.mp4",
"prompt": "Continue with the character walking forward",
"output_path": "./output/extended.mp4"
}Requirements:
Input video: 1-30 seconds, 24fps, 720p or 1080p
Output: 7 seconds at 720p
interpolate_frames
Generate video transitioning between two keyframes.
{
"first_frame": "./images/start.jpg",
"last_frame": "./images/end.jpg",
"prompt": "Smooth camera pan",
"duration_seconds": 8,
"generate_audio": true,
"output_path": "./output/interpolated.mp4"
}get_video_status
Check the status of a video generation operation. When used with wait: false generation, poll this tool until done is true, then download the result.
{
"operation_name": "models/veo-3.1-generate-preview/operations/abc123",
"download": true,
"output_path": "./output/video.mp4"
}Parameters:
operation_name: Operation name returned by a generation tool (required)download: When the operation is done, download the video(s) tooutput_pathorOUTPUT_DIR(default:false)output_path: Where to save the downloaded video (impliesdownload)
Async workflow example:
generate_videowith"wait": false→ returnsoperation_namein secondsget_video_statuswith theoperation_name→done: falsewhile processingOnce
done: true, call again with"download": true(or includeoutput_path) to save the video
Batch CLI Usage
# Estimate costs only
veo3-batch config.json --estimate-only
# Execute batch
veo3-batch config.json --output-dir ./output
# With options
veo3-batch config.json --max-concurrent 3 --no-audio --format jsonCLI Options
Option | Description |
| Output directory for videos |
| Output format (default: text) |
| Parallel jobs (1-5, default: 2) |
| Polling interval |
| Total batch timeout |
| Only estimate costs |
| Generate without audio (reduces cost) |
| Allow absolute output paths |
Batch Configuration Format
{
"jobs": [
{
"prompt": "A cat playing piano",
"duration_seconds": 8,
"resolution": "1080p",
"generate_audio": true
},
{
"type": "extend",
"video": "./videos/source.mp4",
"prompt": "Continue the scene"
},
{
"type": "interpolate",
"first_frame": "./images/start.jpg",
"last_frame": "./images/end.jpg"
}
],
"output_dir": "./output",
"max_concurrent": 2,
"default_model": "veo-3.1-generate-preview"
}Pricing
Prices are per second of generated video. Audio is always included.
Model | 720p | 1080p | 4K |
Standard ( | $0.40/sec | $0.40/sec | $0.60/sec |
Fast ( | $0.10/sec | $0.12/sec | $0.30/sec |
Lite ( | $0.05/sec | $0.08/sec | N/A |
Note: Gemini API preview models always generate audio. The
generate_audioparameter is not currently supported. Use Vertex AI for audio control.
Cost Examples
Video Type | Model | Resolution | Duration | Cost |
Text-to-Video | Standard | 1080p | 8 sec | $3.20 |
Text-to-Video | Fast | 1080p | 8 sec | $0.96 |
Image-to-Video | Fast | 720p | 4 sec | $0.40 |
Video Extension | Standard | 720p | 7 sec | $2.80 |
Frame Interpolation | Standard | 720p | 8 sec | $3.20 |
Models
Model | Description | Resolutions | Speed |
| High quality | 720p, 1080p, 4K | Standard |
| Faster generation | 720p, 1080p, 4K | Fast |
| Cheapest | 720p, 1080p | Fast |
Reference Images
Use reference images to maintain consistency:
{
"prompt": "The character walks through a forest",
"reference_images": [
{
"image": "./character.jpg",
"reference_type": "asset"
}
]
}asset: For characters/objects (max 3 images)style: For visual style (max 1 image)
Environment Variables
Variable | Description | Default |
| Google API key (required) | - |
| Default output directory |
|
| Enable debug logging |
|
| Polling interval (ms) |
|
| Max polling attempts |
|
API Documentation
For detailed API specifications, see:
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ex-takashima/google-veo3-1-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server