Veo2 Video Generation
STDIOMCP server that exposes Google's Veo2 video generation capabilities from text and images.
MCP server that exposes Google's Veo2 video generation capabilities from text and images.
This project implements a Model Context Protocol (MCP) server that exposes Google's Veo2 video generation capabilities. It allows clients to generate videos from text prompts or images, and access the generated videos through MCP resources.
Image to Video - from Grok generated puppy
Image to Video - from real cat
To install mcp-video-generation-veo2 for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @mario-andreschak/mcp-veo2 --client claude
Clone the repository:
git clone https://github.com/yourusername/mcp-video-generation-veo2.git cd mcp-video-generation-veo2
Install dependencies:
npm install
Create a .env
file with your Google API key:
cp .env.example .env # Edit .env and add your Google API key
The .env
file supports the following variables:
GOOGLE_API_KEY
: Your Google API key (required)PORT
: Server port (default: 3000)STORAGE_DIR
: Directory for storing generated videos (default: ./generated-videos)LOG_LEVEL
: Logging level (default: fatal)
debug
or info
for more detailed logsfatal
to minimize console outputBuild the project:
npm run build
You can start the server with either stdio or SSE transport:
npm start # or npm start stdio
npm start sse
This will start the server on port 3000 (or the port specified in your .env
file).
The server exposes the following MCP tools:
Generates a video from a text prompt.
Parameters:
prompt
(string): The text prompt for video generationconfig
(object, optional): Configuration options
aspectRatio
(string, optional): "16:9" or "9:16"personGeneration
(string, optional): "dont_allow" or "allow_adult"numberOfVideos
(number, optional): 1 or 2durationSeconds
(number, optional): Between 5 and 8enhancePrompt
(boolean, optional): Whether to enhance the promptnegativePrompt
(string, optional): Text describing what not to generateExample:
{ "prompt": "Panning wide shot of a serene forest with sunlight filtering through the trees, cinematic quality", "config": { "aspectRatio": "16:9", "personGeneration": "dont_allow", "durationSeconds": 8 } }
Generates a video from an image.
Parameters:
image
(string): Base64-encoded image dataprompt
(string, optional): Text prompt to guide the video generationconfig
(object, optional): Configuration options (same as above, but personGeneration only supports "dont_allow")Lists all generated videos.
The server exposes the following MCP resources:
Access a generated video by its ID.
Access example video generation templates.
src/
: Source code
index.ts
: Main entry pointserver.ts
: MCP server configurationconfig.ts
: Configuration handlingtools/
: MCP tool implementationsresources/
: MCP resource implementationsservices/
: External service integrationsutils/
: Utility functionsnpm run build
npm run dev
MIT