veo_list_models
List all available Veo models with their features, supported actions, and image input rules to choose the right model for video generation.
Instructions
List all available Veo models and their capabilities.
Shows all available model versions with their features, supported actions,
and image input rules. Use this to understand which model to choose
for your video generation.
Model comparison:
- veo2/veo2-fast: Standard models, 1 image (first frame)
- veo3/veo3-fast: Improved quality, 1-3 images supported
- veo31/veo31-fast: Latest models, 1-3 images supported
- veo31-fast-ingredients: Multi-image fusion mode (ingredients2video action)
Returns:
Table of all models with their capabilities and image rules.Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- tools/info_tools.py:6-58 (handler)The main handler function for the veo_list_models tool. Decorated with @mcp.tool(), it returns a formatted table string listing all available Veo models with their capabilities (text2video, image2video, image input rules), modes, aspect ratios, and resolutions.
@mcp.tool() async def veo_list_models() -> str: """List all available Veo models and their capabilities. Shows all available model versions with their features, supported actions, and image input rules. Use this to understand which model to choose for your video generation. Model comparison: - veo2/veo2-fast: Standard models, 1 image (first frame) - veo3/veo3-fast: Improved quality, 1-3 images supported - veo31/veo31-fast: Latest models, 1-3 images supported - veo31-fast-ingredients: Multi-image fusion mode (ingredients2video action) Returns: Table of all models with their capabilities and image rules. """ # Last updated: 2026-04-05 return """Available Veo Models: | Model | Text2Video | Image2Video | Image Input Rules | |------------------------|------------|-------------|------------------------------| | veo2 | ✅ | ✅ | 1 image (first frame) | | veo2-fast | ✅ | ✅ | 1 image (first frame) | | veo3 | ✅ | ✅ | 1-3 images (first/last) | | veo3-fast | ✅ | ✅ | 1-3 images (first/last) | | veo31 | ✅ | ✅ | 1-3 images (first/last) | | veo31-fast | ✅ | ✅ | 1-3 images (first/last) | | veo31-fast-ingredients | ❌ | ✅ | 1-3 images (multi-fusion) | Image Input Modes: - First Frame Mode (1 image): Video starts from your image - First/Last Frame Mode (2-3 images): Video interpolates between images - Multi-Fusion Mode (veo31-fast-ingredients only): Blends elements from all images Recommendations: - For quick generation: Use '-fast' suffix models - For best quality: Use veo31 or veo3 (non-fast) - For image fusion: Use veo31-fast-ingredients - For text-only: Any model except veo31-fast-ingredients Aspect Ratios: - 16:9: Landscape/widescreen (default) - 9:16: Portrait/vertical (social media stories) - 4:3: Standard - 3:4: Portrait standard - 1:1: Square Resolution Options: - 4k: Highest quality output - 1080p: Standard HD resolution - gif: Animated GIF format """ - core/server.py:47-54 (registration)The FastMCP server instance (mcp) created as a FastMCP object. The @mcp.tool() decorator on veo_list_models in info_tools.py registers this tool with the MCP server.
# Initialize FastMCP server mcp = FastMCP( settings.server_name, icons=[Icon(src="", mimeType="image/jpeg")], **mcp_kwargs, ) logger.info(f"Initialized MCP server: {settings.server_name}") - main.py:176-176 (registration)The tool name 'veo_list_models' appears in the server card JSON response for HTTP transport, listing available tools.
{"name": "veo_list_models", "description": "List available models"}, - core/types.py:5-14 (schema)The VeoModel type definition (Literal type) that defines all valid model names referenced in the veo_list_models handler (veo2, veo2-fast, veo3, veo3-fast, veo31, veo31-fast, veo31-fast-ingredients).
# Veo model versions VeoModel = Literal[ "veo2", "veo2-fast", "veo3", "veo3-fast", "veo31", "veo31-fast", "veo31-fast-ingredients", ] - tests/test_integration.py:59-71 (helper)Integration test for veo_list_models - verifies the tool returns expected model names (veo2, veo3) when called.
@pytest.mark.asyncio async def test_list_models(self) -> None: """Test veo_list_models tool.""" from tools.info_tools import veo_list_models result = await veo_list_models() print("\n=== List Models Result ===") print(result) assert "veo2" in result assert "veo3" in result