Skip to main content
Glama
README.md
# PMIND Veo MCP Server

> ⚠️ **Experimental**: This MCP server is in an experimental state and may have rough edges. Please report any issues you encounter.

A Python implementation of an MCP (Model Context Protocol) server using FastMCP that provides tools for generating videos with Google's Veo AI models through the Gemini API. This server uses a subprocess-based architecture for reliable long-running video generation tasks with the official google-genai Python SDK.

## 🎯 Features

### Core Capabilities

- **Video Generation**: Generate videos from text prompts using Veo models
- **Image-to-Video**: Animate images with Veo 3 models
- **Fast Generation**: Veo 3 Fast model for speed-optimized video creation
- **Subprocess Architecture**: Non-blocking video generation with isolated subprocess handling
- **Progress Tracking**: Real-time status updates via state file monitoring
- **Video Downloads**: Download completed videos using the official google-genai SDK
- **Multiple Generations**: Track and manage multiple concurrent video generations
- **Process Management**: Graceful cancellation and cleanup of generation processes


## Installation & Setup

### Step 1: Clone the Repository

```bash
git clone https://github.com/yourusername/pmind-veo-mcp.git
cd pmind-veo-mcp
```

### Step 2: Install Dependencies

```bash
# Install dependencies using uv
uv sync
```

### Step 3: Set Up API Key

1. Get a Gemini API key from [Google AI Studio](https://aistudio.google.com/apikey)
2. Create a `.env` file in the project root:

```bash
cp .env.example .env
```

3. Edit `.env` and add your configuration:

```env
# Required: Your Gemini API key for Veo access
GEMINI_API_KEY=your_api_key_here

# Required: Default Veo model to use
# Options: veo-2.0-generate-001, veo-3.0-generate-preview, veo-3.0-fast-generate-preview
VEO_MODEL=veo-3.0-generate-preview

# Optional: Configuration directory (default: ~/.pmind-veo-mcp)
# CONFIG_DIR=/path/to/config
```

### Step 4: Configure with Your Client

Add the MCP server to your client's MCP configuration:

```json
{
  "mcpServers": {
    "pmind-veo": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/pmind-veo-mcp", "pmind-veo-mcp"]
    }
  }
}
```


## Configuration

### Required Environment Variables

- `GEMINI_API_KEY`: Your Gemini API key with video generation access
- `VEO_MODEL`: Default model (must be full API name):
  - `veo-2.0-generate-001` for Veo 2
  - `veo-3.0-generate-preview` for Veo 3
  - `veo-3.0-fast-generate-preview` for Veo 3 Fast (speed-optimized)

### Optional Environment Variables

- `CONFIG_DIR`: Directory for state files and downloads (default: `~/.pmind-veo-mcp`)

## MCP Tools Reference

- **`veo_generate_video`** - Start video generation with a text prompt
- **`veo_check_generation`** - Check the status of a video generation
- **`veo_download_video`** - Download a completed video
- **`veo_list_sessions`** - List all video generation sessions  
- **`veo_cleanup_sessions`** - Clean up old generation sessions


TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation2/5

The tools are mostly distinct, but veo_list_generations and veo_list_sessions have identical descriptions, making them impossible to differentiate. This redundancy creates clear ambiguity for an agent selecting which to use.

Naming Consistency5/5

All six tools follow the veo_verb_noun pattern consistently, with clear verbs like generate, check, list, cleanup, and download. There is no mixing of styles or vague naming.

Tool Count5/5

With six tools, the server is well-scoped for video generation workflows. The count covers generation, status checking, listing, downloading, and cleanup without being excessive or thin.

Completeness3/5

The core lifecycle (generate, check, list, download, cleanup) is covered, but there is no cancel/delete operation, and the description mentions veo_check_operation which is not actually exposed. These gaps could frustrate agents needing abort or granular API status.

Maintenance

ActivityInactive
ResponsivenessNo issues