VeoMCP

A Model Context Protocol (MCP) server for AI video generation using Veo through the AceDataCloud API.
Generate AI videos from text prompts or images directly from Claude, VS Code, or any MCP-compatible client.
Features
- Text to Video - Create AI-generated videos from text descriptions
- Image to Video - Animate images or create transitions between images
- Multi-Image Fusion - Blend elements from multiple images
- 1080p Upscaling - Get high-resolution versions of generated videos
- Task Tracking - Monitor generation progress and retrieve results
- Multiple Models - Choose between quality and speed with various Veo models
| Tool | Description |
|---|
veo_text_to_video | Generate AI video from a text prompt using Veo. |
veo_image_to_video | Generate AI video from one or more reference images using Veo. |
veo_get_1080p | Get the 1080p high-resolution version of a generated video. |
veo_get_task | Query the status and result of a video generation task. |
veo_get_tasks_batch | Query multiple video generation tasks at once. |
veo_list_models | List all available Veo models and their capabilities. |
veo_list_actions | List all available Veo API actions and corresponding tools. |
veo_get_prompt_guide | Get guidance on writing effective prompts for Veo video generation. |
Quick Start
1. Get Your API Token
- Sign up at AceDataCloud Platform
- Go to the API documentation page
- Click "Acquire" to get your API token
- Copy the token for use below
2. Use the Hosted Server (Recommended)
AceDataCloud hosts a managed MCP server โ no local installation required.
Endpoint: https://veo.mcp.acedata.cloud/mcp
All requests require a Bearer token. Use the API token from Step 1.
Claude.ai
Connect directly on Claude.ai with OAuth โ no API token needed:
- Go to Claude.ai Settings โ Integrations โ Add More
- Enter the server URL:
https://veo.mcp.acedata.cloud/mcp
- Complete the OAuth login flow
- Start using the tools in your conversation
Claude Desktop
Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"veo": {
"type": "streamable-http",
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Cursor / Windsurf
Add to your MCP config (.cursor/mcp.json or .windsurf/mcp.json):
{
"mcpServers": {
"veo": {
"type": "streamable-http",
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
VS Code (Copilot)
Add to your VS Code MCP config (.vscode/mcp.json):
{
"servers": {
"veo": {
"type": "streamable-http",
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Or install the Ace Data Cloud MCP extension for VS Code, which registers the hosted MCP servers with one-click setup.
JetBrains IDEs
- Go to Settings โ Tools โ AI Assistant โ Model Context Protocol (MCP)
- Click Add โ HTTP
- Paste:
{
"mcpServers": {
"veo": {
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Claude Code
Claude Code supports MCP servers natively:
claude mcp add veo --transport http https://veo.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"
Or add to your project's .mcp.json:
{
"mcpServers": {
"veo": {
"type": "streamable-http",
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Cline
Add to Cline's MCP settings (.cline/mcp_settings.json):
{
"mcpServers": {
"veo": {
"type": "streamable-http",
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Amazon Q Developer
Add to your MCP configuration:
{
"mcpServers": {
"veo": {
"type": "streamable-http",
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Roo Code
Add to Roo Code MCP settings:
{
"mcpServers": {
"veo": {
"type": "streamable-http",
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Continue.dev
Add to .continue/config.yaml:
mcpServers:
- name: veo
type: streamable-http
url: https://veo.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"
Zed
Add to Zed's settings (~/.config/zed/settings.json):
{
"language_models": {
"mcp_servers": {
"veo": {
"url": "https://veo.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}
cURL Test
curl https://veo.mcp.acedata.cloud/health
curl -X POST https://veo.mcp.acedata.cloud/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
3. Or Run Locally (Alternative)
If you prefer to run the server on your own machine:
pip install mcp-veo
uvx mcp-veo
export ACEDATACLOUD_API_TOKEN="your_token_here"
mcp-veo
mcp-veo --transport http --port 8000
Claude Desktop (Local)
{
"mcpServers": {
"veo": {
"command": "uvx",
"args": ["mcp-veo"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}
Docker (Self-Hosting)
docker pull ghcr.io/acedatacloud/mcp-veo:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-veo:latest
Clients connect with their own Bearer token โ the server extracts the token from each request's Authorization header.
Video Generation
| Tool | Description |
|---|
veo_text_to_video | Generate video from a text prompt |
veo_image_to_video | Generate video from reference image(s) |
veo_get_1080p | Get high-resolution 1080p version |
Tasks
| Tool | Description |
|---|
veo_get_task | Query a single task status |
veo_get_tasks_batch | Query multiple tasks at once |
| Tool | Description |
|---|
veo_list_models | List available Veo models |
veo_list_actions | List available API actions |
veo_get_prompt_guide | Get video prompt writing guide |
Usage Examples
Generate Video from Text
User: Create a video of a sunset over the ocean
Claude: I'll generate a sunset video for you.
[Calls veo_text_to_video with prompt="Cinematic shot of a golden sunset over the ocean, waves gently rolling, warm colors reflecting on the water"]
Animate an Image
User: Animate this product image to make it rotate slowly
Claude: I'll create a video from your image.
[Calls veo_image_to_video with image_urls=["product_image.jpg"], prompt="Product slowly rotates 360 degrees, studio lighting"]
Create Image Transition
User: Create a video that transitions between these two landscape photos
Claude: I'll create a transition video between your images.
[Calls veo_image_to_video with image_urls=["img1.jpg", "img2.jpg"], prompt="Smooth cinematic transition between scenes"]
Available Models
| Model | Text2Video | Image2Video | Image Input |
|---|
veo3 | โ
| โ
| 1-3 images |
veo3-fast | โ
| โ
| 1-3 images |
veo31 | โ
| โ
| 1-3 images |
veo31-fast | โ
| โ
| 1-3 images |
veo31-fast-ingredients | โ | โ
| 1-3 images (fusion) |
Aspect Ratios:
16:9 - Landscape/widescreen (default)
9:16 - Portrait/vertical (social media)
Configuration
Environment Variables
| Variable | Description | Default |
|---|
ACEDATACLOUD_API_TOKEN | API token from AceDataCloud | Required |
ACEDATACLOUD_API_BASE_URL | API base URL | https://api.acedata.cloud |
ACEDATACLOUD_OAUTH_CLIENT_ID | OAuth client ID (hosted mode) | โ |
ACEDATACLOUD_PLATFORM_BASE_URL | Platform base URL | https://platform.acedata.cloud |
VEO_DEFAULT_MODEL | Default model for generation | veo31-fast |
VEO_REQUEST_TIMEOUT | Request timeout in seconds | 180 |
LOG_LEVEL | Logging level | INFO |
Command Line Options
mcp-veo --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)
Development
Setup Development Environment
git clone https://github.com/AceDataCloud/VeoMCP.git
cd VeoMCP
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,test]"
Run Tests
pytest
pytest --cov=core --cov=tools
pytest tests/test_integration.py -m integration
Code Quality
ruff format .
ruff check .
mypy core tools
Build & Publish
pip install -e ".[release]"
python -m build
twine upload dist/*
Project Structure
VeoMCP/
โโโ core/ # Core modules
โ โโโ __init__.py
โ โโโ client.py # HTTP client for Veo API
โ โโโ config.py # Configuration management
โ โโโ exceptions.py # Custom exceptions
โ โโโ server.py # MCP server initialization
โ โโโ types.py # Type definitions
โ โโโ utils.py # Utility functions
โโโ tools/ # MCP tool definitions
โ โโโ __init__.py
โ โโโ video_tools.py # Video generation tools
โ โโโ info_tools.py # Information tools
โ โโโ task_tools.py # Task query tools
โโโ prompts/ # MCP prompts
โ โโโ __init__.py
โโโ tests/ # Test suite
โ โโโ conftest.py
โ โโโ test_client.py
โ โโโ test_config.py
โ โโโ test_integration.py
โ โโโ test_utils.py
โโโ deploy/ # Deployment configs
โ โโโ production/
โ โโโ deployment.yaml
โ โโโ ingress.yaml
โ โโโ service.yaml
โโโ .env.example # Environment template
โโโ .gitignore
โโโ Dockerfile # Docker image for HTTP mode
โโโ docker-compose.yaml # Docker Compose config
โโโ LICENSE
โโโ main.py # Entry point
โโโ pyproject.toml # Project configuration
โโโ README.md
API Reference
This server wraps the AceDataCloud Veo API:
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing)
- Commit your changes (
git commit -m 'Add amazing feature')
- Push to the branch (
git push origin feature/amazing)
- Open a Pull Request
Documentation
Documentation
License
MIT License - see LICENSE for details.
Links
Made with love by AceDataCloud