gemini-media-mcp
gemini-media-mcp
Google Gemini API 및 Vertex AI를 통한 AI 미디어 생성을 위한 통합 Go MCP 서버.
기능
이미지 생성 -- 구성 가능한 가로세로 비율 및 해상도(1K/2K/4K)를 지원하는 텍스트-이미지 변환
이미지 편집 -- 자연어 프롬프트를 사용하여 기존 이미지 수정
다중 참조 구성 -- 스타일/콘텐츠 가이드를 사용하여 최대 3개의 참조 이미지 결합
비디오 생성 -- Veo 3.1 Lite, Fast 및 Standard 티어를 통한 텍스트-비디오 변환
이미지-비디오 변환 -- 정지 이미지를 비디오 클립으로 애니메이션화
비디오 확장 -- 더 긴 콘텐츠를 위해 클립 연결 (Fast 및 Standard 티어)
텍스트-음성 변환(TTS) -- 구성 가능한 음성 및 언어로 음성 오디오 생성
음악 생성 -- Lyria 3를 통한 AI 음악 (30초 클립 또는 보컬, 구조 제어가 포함된 전체 곡)
단일 바이너리 -- 런타임 종속성 없음, stdio 전송을 통해 실행
공급자 추상화 -- 이미지, 비디오, 오디오 및 모델 작업을 위한 백엔드 독립적 인터페이스
듀얼 백엔드 -- Gemini API(API 키) 및 Vertex AI(프로젝트 자격 증명) 모두 지원
Related MCP server: Gemini Media MCP
빠른 시작
# Install
go install github.com/mordor-forge/gemini-media-mcp/cmd/gemini-media-mcp@latest
# Configure (Gemini API; either variable name works)
export GEMINI_API_KEY="your-api-key"
# export GOOGLE_API_KEY="your-api-key"
# Or configure (Vertex AI)
export GOOGLE_CLOUD_PROJECT="your-project-id"
export GOOGLE_CLOUD_LOCATION="us-central1"
# Run directly (stdio transport)
gemini-media-mcp그런 다음 MCP 클라이언트에 추가하세요. 아래의 MCP 클라이언트 구성을 참조하세요.
구성
변수 | 필수 | 기본값 | 설명 |
| 예* | -- | Gemini API 키. |
| 예* | -- | Vertex AI 백엔드를 위한 GCP 프로젝트 ID |
| 아니요 |
| Vertex AI를 위한 GCP 리전 |
| 아니요 |
| 저장된 미디어 파일을 위한 디렉토리 |
*GOOGLE_API_KEY 또는 GOOGLE_CLOUD_PROJECT 중 하나는 반드시 설정해야 합니다. 둘 다 설정된 경우 API 키가 우선합니다(다른 도구를 위해 셸에서 GOOGLE_CLOUD_PROJECT가 설정된 경우 충돌 방지).
어떤 백엔드가 활성화되어 있는지 확실하지 않은 경우, MCP 클라이언트에서 get_config를 호출하여 선택된 백엔드와 출력 디렉토리를 확인하세요.
사용 가능한 도구
도구 | 설명 | 유형 |
| 텍스트 프롬프트에서 이미지 생성 | 동기 |
| 텍스트 프롬프트로 기존 이미지 편집 | 동기 |
| 다중 참조 이미지 구성 (최대 3개) | 동기 |
| 텍스트 프롬프트에서 비디오 생성 (작업 ID 반환) | 비동기 |
| 이미지를 비디오로 애니메이션화 (첫 번째 프레임) | 비동기 |
| 더 긴 콘텐츠를 위해 비디오 클립 연결 | 비동기 |
| 비디오 생성 진행 상황 확인 | 동기 |
| 완료된 비디오 다운로드 | 동기 |
| 텍스트에서 음성 오디오 생성 (TTS) | 동기 |
| 텍스트 설명에서 AI 음악 생성 (Lyria) | 동기 |
| 기능 및 가격과 함께 사용 가능한 모델 표시 | 동기 |
| 현재 백엔드 및 구성 표시 | 동기 |
비동기 도구는 작업 ID를 즉시 반환합니다. video_status를 사용하여 완료 여부를 폴링한 다음, download_video를 사용하여 파일을 검색하세요.
모델 티어
이미지
티어 | 모델 | 용도 | 비용 |
nb2 (기본값) |
| 빠른 반복, 대부분의 작업 | ~$0.067/img |
pro |
| 최종 렌더링, 복잡한 장면 | ~$0.134/img |
두 티어 모두 1K, 2K, 4K 해상도와 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 가로세로 비율을 지원합니다.
비디오
티어 | 모델 | 용도 | 비용 |
lite (기본값) |
| 대량 작업, 초안 | $0.05/초 (720p), $0.08/초 (1080p) |
fast |
| 좋은 품질의 반복 | $0.15/초 (720p/1080p), $0.35/초 (4k) |
standard |
| 최종 렌더링, 4K | $0.40/초 (720p/1080p), $0.60/초 (4k) |
지원되는 가로세로 비율은 16:9 및 9:16입니다. 지원되는 길이는 4, 6, 8초입니다. Lite는 720p 및 1080p를 지원합니다. Fast 및 Standard는 720p, 1080p 및 4K를 지원합니다. 비디오 확장(extend_video)은 Fast 및 Standard 티어에서만 사용할 수 있으며, 확장 티어는 원래 생성 티어와 일치해야 합니다.
오디오 (TTS)
티어 | 모델 | 용도 | 비용 |
tts |
| 자연스러운 음성의 텍스트-음성 변환 | 표준 Gemini 토큰 가격 |
generate_audio 도구는 텍스트를 음성 오디오로 변환합니다. 다음을 지원합니다:
음성 선택 --
Aoede,Kore,Puck등과 같은 사전 구축된 음성 중에서 선택. 기본값:Aoede언어 -- 언어 코드 설정 (예:
en-US,it-IT,cs-CZ,de-DE). 기본값:en-US자연스러운 음성 -- 적절한 속도와 억양으로 표현력이 풍부하고 자연스러운 음성 생성
출력은 원시 PCM 오디오(audio/L16, 24kHz 샘플링 레이트)로 저장됩니다. 이 파일은 ffplay와 같은 도구로 재생하거나 다른 형식으로 변환할 수 있습니다:
# Play directly
ffplay -f s16le -ar 24000 -ac 1 ~/generated_media/audio-2026-04-02T12-20-12-0603.pcm
# Convert to WAV
ffmpeg -f s16le -ar 24000 -ac 1 -i audio.pcm audio.wav
# Convert to MP3
ffmpeg -f s16le -ar 24000 -ac 1 -i audio.pcm audio.mp3음악 (Lyria)
티어 | 모델 | 출력 | 용도 | 비용 |
clip (기본값) |
| 30초 클립 | 빠른 반복, 사운드 디자인 | ~$0.08/곡 |
full |
| 최대 ~3분 | 보컬, 절, 후렴구가 포함된 전체 곡 | 토큰 기반 |
generate_music 도구는 텍스트 설명에서 AI 생성 음악을 만듭니다. 기능은 다음과 같습니다:
장르 및 스타일 -- 장르, 악기, BPM, 키/스케일, 분위기 지정
구조 제어 --
[Verse],[Chorus],[Bridge],[Intro],[Outro]와 같은 태그 사용사용자 지정 가사 -- 보컬 트랙을 위한 섹션 마커가 포함된 가사 포함
타임스탬프 제어 -- 정확한 섹션 타이밍을 위한
[0:00 - 0:10] Intro: gentle piano...사용다국어 -- 프롬프트 언어가 출력 언어를 결정
고충실도 -- 48kHz 스테레오 MP3 출력
생성된 모든 음악에는 SynthID 워터마크가 표시됩니다.
예시 프롬프트:
# Instrumental
"A gentle acoustic guitar melody in C major, 90 BPM, calm and peaceful indie folk"
# With structure
"[Intro] Ambient synth pad, ethereal
[Verse] Lo-fi hip-hop beat, mellow piano chords, vinyl crackle
[Chorus] Uplifting, add strings and gentle drums
[Outro] Fade out with reverb"
# With lyrics
"Upbeat pop song, 120 BPM, major key
[Chorus] We're dancing in the light / Everything feels right / Under stars so bright tonight"티어 이름(lite, fast, standard, nb2, pro, tts, clip, full) 또는 원시 모델 ID를 직접 전달할 수 있습니다.
MCP 클라이언트 구성
Claude Code
Claude Code MCP 설정(~/.claude/settings.json 또는 프로젝트 .mcp.json)에 추가하세요:
{
"mcpServers": {
"gemini-media": {
"command": "gemini-media-mcp",
"env": {
"GOOGLE_API_KEY": "your-api-key",
"MEDIA_OUTPUT_DIR": "/path/to/output"
}
}
}
}위의 env 블록에서 GOOGLE_API_KEY 또는 GEMINI_API_KEY를 사용하세요. 둘 다 허용됩니다.
또는 소스에서 빌드하는 경우:
{
"mcpServers": {
"gemini-media": {
"command": "/path/to/gemini-media-mcp",
"env": {
"GOOGLE_API_KEY": "your-api-key"
}
}
}
}Claude Code를 위한 보조 기술
skills/ 디렉토리에는 MCP 도구 위에서 대화형 워크플로우를 제공하는 Claude Code 기술이 포함되어 있습니다. 각 기술은 특정 미디어 유형에 대해 프롬프트 엔지니어링, 모델 선택 및 반복적인 개선 과정을 통해 Claude를 안내합니다.
기술 | 디렉토리 | 설명 |
gemini-image-gen |
| 이미지 생성, 편집 및 다중 참조 구성 |
video-gen |
| 비동기 폴링, 이미지-비디오 변환, 확장을 포함한 비디오 생성 |
music-gen |
| 구조 태그, 가사, 장르 제어를 포함한 음악 생성 |
tts-gen |
| 음성 및 언어 선택을 포함한 텍스트-음성 변환 |
기술을 설치하려면 해당 디렉토리를 ~/.claude/skills/로 복사하세요:
cp -r skills/video-gen ~/.claude/skills/
cp -r skills/music-gen ~/.claude/skills/
cp -r skills/tts-gen ~/.claude/skills/
cp -r skills/gemini-image-gen ~/.claude/skills/기술은 선택 사항입니다. MCP 도구는 기술 없이도 작동합니다. 하지만 기술은 프롬프트 엔지니어링 지침, 모델 티어 권장 사항 및 출력 품질을 크게 향상시키는 대화형 검토 워크플로우를 추가합니다.
소스에서 빌드
git clone https://github.com/mordor-forge/gemini-media-mcp.git
cd gemini-media-mcp
go build ./cmd/gemini-media-mcp/바이너리는 ./gemini-media-mcp에 생성됩니다.
테스트를 실행하려면:
go test ./...기여
저장소 포크
기능 브랜치 생성 (
git checkout -b feature/your-feature)변경 사항 적용 및 테스트 추가
go test ./...및go vet ./...실행변경 사항 커밋
main브랜치에 대한 풀 리퀘스트 열기
라이선스
Available Tools
12 toolsanimate_imageA
Animate a still image into a video clip. Provide the path to a source image and a prompt guiding the animation. This is an async operation — use video_status to poll progress and download_video to retrieve the result.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description guiding the animation | |
| imagePath | Yes | Path to image to use as the first frame | |
| model | No | Model tier: lite (default), fast, or standard | |
| aspectRatio | No | Aspect ratio (16:9 or 9:16) | |
| duration | No | Clip duration in seconds (4, 6, or 8) |
Output Schema
| Name | Required | Description |
|---|---|---|
| operationId | Yes | |
| model | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the async behavior and polling requirement, but lacks details on error handling, rate limits, or what happens on invalid inputs. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences cover purpose, required inputs, async nature, and next steps. No redundancy, front-loaded with the core action. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description provides enough context for correct usage: calls to video_status and download_video are mentioned. However, it does not cover error handling or output format specifics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-described in the schema. The description adds only minor context (e.g., 'prompt guiding the animation'), not significantly improving over the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Animate a still image into a video clip.' It specifies the required inputs (image path and prompt) and distinguishes itself from sibling tools like video_status and download_video by noting it is the async start.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly explains the async nature and guides the agent to use video_status and download_video for results. However, it does not provide alternative scenarios or when not to use this tool versus other similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose_imagesA
Compose a new image using 1-3 reference images and a text prompt for style/content guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description guiding the composition | |
| referenceImages | Yes | Paths to 1-3 reference images for style/content guidance | |
| model | No | Model tier: nb2 (default) or pro | |
| aspectRatio | No | Aspect ratio for the output |
Output Schema
| Name | Required | Description |
|---|---|---|
| filePath | Yes | |
| model | Yes | |
| mimeType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'compose' with references and prompt, but fails to explain side effects (e.g., file creation), permission needs, or whether the process is synchronous. This is insufficient for a transformation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 20 words, front-loading the key action. Every word is functional, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, composition task) and the presence of an output schema, the description should explain the composition process, constraints, or default behavior. It does not, leaving gaps about how images are merged, resolution limits, or effect of the prompt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds minimal value beyond the schema: it repeats that reference images are 1-3 but does not elaborate on model or aspectRatio. No extra context or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: composing a new image using reference images and a text prompt. The verb 'compose' and resource 'image' are specific, and it distinguishes from sibling tools like generate_image (no reference images) and edit_image (modifies existing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when 1-3 reference images are available and textual guidance is wanted. However, it lacks explicit when-not-to-use guidance or comparison to alternatives like generate_image or animate_image.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_videoA
Download a completed video generation to a local file. Only call this after video_status reports the operation is complete.
| Name | Required | Description | Default |
|---|---|---|---|
| operationId | Yes | Operation ID from a previous generate_video, animate_image, or extend_video call |
Output Schema
| Name | Required | Description |
|---|---|---|
| filePath | Yes | |
| operationId | Yes | |
| model | No | |
| duration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adequately conveys that this is a download (non-destructive) operation and requires a completed status. Lacks details on auth or rate limits but is sufficient for a simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by a precondition. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the core usage and precondition. No missing information given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'operationId' is fully described in the input schema, which already explains its origin (from generate_video, animate_image, or extend_video). The description adds no further meaning, so baseline 3 applies given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (download) and resource (completed video generation). Distinguishes from siblings like generate_video and video_status by specifying it is for downloading completed videos only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call only after video_status reports completion, providing a clear precondition. Though it does not name alternatives, the instruction is specific enough to prevent misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_imageB
Edit an existing image using a text prompt. Provide the path to the source image and a description of the desired changes.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of the edit to apply | |
| imagePath | Yes | Path to the image to edit | |
| model | No | Model tier: nb2 (default) or pro |
Output Schema
| Name | Required | Description |
|---|---|---|
| filePath | Yes | |
| model | Yes | |
| mimeType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits. It only says 'edit' without disclosing side effects like file overwriting, return behavior, or permission requirements. The mutation nature is implied but not detailed, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence (18 words) that front-loads the verb and resource, with zero wasted words. Every part earns its place, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (so return values need not be explained) and only 3 simple parameters, the description is largely sufficient. It omits details like model default but schema covers it. For a straightforward tool, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; baseline is 3. The description adds 'Provide the path to the source image and a description of the desired changes', which modestly rephrases prompt and imagePath but adds no new semantics for the model parameter. It does not exceed baseline value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit an existing image using a text prompt', specifying the verb (edit), resource (existing image), and method (text prompt). It distinguishes from sibling tools like generate_image (creates new) and animate_image (animates), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an existing image needs modification but provides no explicit guidance on when to use this tool versus alternatives like generate_image, animate_image, or compose_images. No when-not or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extend_videoA
Extend a previously generated video with a continuation prompt. Requires the operation ID from the original generation. This is an async operation — use video_status to poll progress and download_video to retrieve the result.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description for the continuation | |
| operationId | Yes | Operation ID of the previous video generation | |
| model | No | Model tier (must match original). Standard and Fast only, Lite does not support extension |
Output Schema
| Name | Required | Description |
|---|---|---|
| operationId | Yes | |
| model | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the async operation and the need for a matching model. It does not detail side effects or error states, but the workflow is transparently described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences immediately convey the tool's purpose, prerequisite, and async workflow without any redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core workflow (async, poll, download) and important constraints (model compatibility). Since an output schema exists, the omission of return value details is acceptable. Minor gaps in error handling or status polling frequency are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds valuable semantics: that the model must match the original and that Lite does not support extension. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely states it extends a previously generated video using a continuation prompt and requires an operation ID. It clearly distinguishes from siblings like generate_video or animate_image by specifying the prerequisite operation ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly mentions the requirement of the operation ID and the async nature, directing to video_status and download_video for polling and retrieval. It does not explicitly exclude other use cases or provide when-not-to-use scenarios, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_audioA
Generate speech audio from a text prompt using Google's Gemini TTS. Supports voice selection and language configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text to convert to speech or instructions for audio generation | |
| voiceName | No | Prebuilt voice name (e.g. Aoede, Kore, Puck) | |
| languageCode | No | Language code (e.g. en-US, it-IT, cs-CZ) |
Output Schema
| Name | Required | Description |
|---|---|---|
| filePath | Yes | |
| model | Yes | |
| mimeType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It fails to mention important details such as cost, rate limits, support for long texts, synchronous vs async processing, or output format/quality. The description only covers basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the core functionality without unnecessary words. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the primary purpose and key parameters, it lacks completeness for a tool with no annotations. It omits behavioral context, error handling, and prerequisites. However, the presence of an output schema partially compensates for omitted return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds minimal semantic value by mentioning 'voice selection and language configuration,' but does not provide examples, constraints, or interaction details beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates speech audio from text, specifies the underlying service (Google's Gemini TTS), and mentions configurable options (voice, language). This distinguishes it clearly from sibling tools like generate_music or generate_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for speech generation but provides no explicit guidance on when to use this tool over alternatives (e.g., other audio generation tools) or any exclusions or prerequisites. It lacks 'when not to use' or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageB
Generate an image from a text prompt using Google's Gemini image models.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of the image to generate | |
| model | No | Model tier: nb2 (default) or pro. Raw model IDs also accepted | |
| aspectRatio | No | Aspect ratio (1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9) | |
| resolution | No | Output resolution (1K, 2K, 4K) |
Output Schema
| Name | Required | Description |
|---|---|---|
| filePath | Yes | |
| model | Yes | |
| mimeType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It does not mention whether generation is synchronous, costs, safety filters, or model behavior differences between 'nb2' and 'pro'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 12 words, front-loaded with the primary action. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate given schema covers parameters and output schema likely documents returns. But missing behavioral context like typical latency, cost, or model selection guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for each parameter. Description adds no additional meaning beyond schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool generates an image from a text prompt using Gemini models. It specifies the resource (image) and verb (generate), but does not explicitly differentiate from sibling tools like edit_image or animate_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention prerequisites, limitations, or mention use cases that favor other tools (e.g., editing, animation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_musicA
Generate music from a text prompt using Google's Lyria models. Supports genre, instruments, BPM, key, mood, structure tags like [Verse] [Chorus] [Bridge], and custom lyrics.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of the music to generate. Supports genre, instruments, BPM, key, mood, structure tags like [Verse] [Chorus] [Bridge], and custom lyrics | |
| model | No | Model: clip (default, 30s clips) or full (up to 3 minutes, full songs with structure control) |
Output Schema
| Name | Required | Description |
|---|---|---|
| filePath | Yes | |
| model | Yes | |
| mimeType | Yes | |
| lyrics | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only describes what the tool generates (music) and supported prompt features. It does not disclose behavioral traits such as whether the operation is destructive, required authentication, rate limits, or output format beyond the existence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two precise sentences with no extraneous words. The core action and supported features are front-loaded, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description need not explain return values. It covers the input capabilities (genres, structure tags, lyrics) and model choices. Could mention prerequisites or limitations, but is largely adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. The tool description repeats the prompt details found in the schema and adds no new meaning. The model parameter is already fully described in the schema. Baseline 3 due to full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specifically states 'Generate music from a text prompt using Google's Lyria models,' clearly identifying the verb, resource, and tool. Distinguishes from sibling tools like generate_image or generate_audio by focusing on music generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear that this tool is for music generation from text, but does not explicitly state when not to use it or mention alternatives like generate_audio. Context from sibling tools makes the distinction obvious, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoB
Generate a video from a text prompt using Google's Gemini video models. This is an async operation — use video_status to poll progress and download_video to retrieve the result.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of the video to generate. Include audio cues for sound design | |
| model | No | Model tier: lite (default/cheapest), fast, or standard (highest quality). Raw model IDs also accepted | |
| aspectRatio | No | Aspect ratio (16:9 or 9:16) | |
| resolution | No | Output resolution: 720p, 1080p, or 4k (lite supports 720p/1080p only) | |
| duration | No | Clip duration in seconds (4, 6, or 8) |
Output Schema
| Name | Required | Description |
|---|---|---|
| operationId | Yes | |
| model | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only reveals the async operation. Missing information includes authentication requirements, default behavior, rate limits, cost implications, and whether the tool is destructive or creates a temporary resource. This is insufficient for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no superfluous words. The first sentence states the core purpose, and the second provides critical workflow guidance. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, async operation) and the presence of an output schema, the description is adequate but not complete. It covers the async flow but omits information about immediate return values (likely a job ID), error handling, and expected timeouts. The output schema may fill some gaps, but the description could offer a brief hint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with detailed explanations for each parameter. The tool description does not add any additional semantics beyond the schema; it merely summarizes the overall task. Baseline score of 3 is appropriate as the schema already provides the necessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a video from a text prompt using Gemini models. The verb 'generate' and resource 'video' are specific. While it does not explicitly differentiate from sibling tools like animate_image or generate_image, it does reference related tools for the async workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the async nature and directs the user to video_status for polling and download_video for retrieval, which provides good usage context. However, it does not mention when not to use this tool (e.g., for image animation) or list alternatives, relying on sibling context provided externally.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configA
Show current server configuration including active backend and output directory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| backend | Yes | |
| outputDir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation, but with no annotations, it does not disclose additional behavioral traits like authentication needs, rate limits, or side effects. Basic transparency is present, but gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main aspects of the tool given no parameters and an output schema. However, it only lists examples ('including') rather than a comprehensive overview, leaving minor ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% vacuously. The description adds value by specifying what the output includes (active backend, output directory), which aids understanding beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows current server configuration, mentioning specific elements like active backend and output directory. This distinguishes it from sibling tools that generate or manipulate media.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is clear, but no explicit guidance is given for when not to use or alternatives. Since siblings are all different functions, the usage context is implied, but formal guidelines are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsA
List the models supported by this server with their tiers, capabilities, supported resolutions, and pricing guidance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| models | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description adds minimal behavioral context beyond listing information. It does not disclose auth requirements, rate limits, or that it is read-only (though implied). Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with 'List the models', includes specific details without unnecessary words. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema, the description sufficiently describes the tool's purpose and return content. Complete for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline 4 applies. The description is not required to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and resource 'models supported by this server', and specifies included details (tiers, capabilities, supported resolutions, pricing guidance), distinguishing it from sibling generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly state when to use vs alternatives, but the self-explanatory name and description imply it is for model discovery before using generation tools. No exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_statusA
Check the status of an async video generation operation. Returns progress info (pending, processing, complete, or failed).
| Name | Required | Description | Default |
|---|---|---|---|
| operationId | Yes | Operation ID from a previous generate_video, animate_image, or extend_video call |
Output Schema
| Name | Required | Description |
|---|---|---|
| operationId | Yes | |
| done | Yes | |
| progress | Yes | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers return states but not side effects, idempotency, rate limits, or auth needs. Minimal but adequate for a basic status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundant words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and output schema present. Description sufficiently explains purpose and return semantics for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes the parameter fully. The tool description does not add extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('check') and resource ('status of an async video generation operation') and lists possible states. It is specific and distinguishes from sibling tools like generate_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage after an async operation but does not explicitly state when to avoid it or compare to siblings like download_video. No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
- First observed
animate_image - First observed
compose_images - First observed
download_video - First observed
edit_image - First observed
extend_video - First observed
generate_audio - First observed
generate_image - First observed
generate_music - First observed
generate_video - First observed
get_config - First observed
list_models - First observed
video_status
TDQS
Scored across 12 tools
Each tool targets a distinct media type and action: image generation, editing, composition, animation; video generation, extension, status check, download; audio and music generation; plus utility tools for config and model listing. No overlaps in purpose.
Most tool names follow a clear verb_noun pattern (e.g., generate_image, download_video). The only exception is video_status, which reverses the pattern to noun_verb, but it's still easily understood and doesn't cause confusion.
12 tools is well-scoped for a media generation server covering images, video, audio, and music. Each tool serves a clear purpose without redundancy, and the async video workflow is handled with dedicated tools.
The tool surface covers key operations for each media type: create, edit, compose (images), generate, extend, monitor, download (video), and generate (audio, music). The async video workflow is fully supported, and utility tools provide necessary context. No obvious gaps.
Maintenance
Related MCP Connectors
MCP server for Google Veo AI video generation
AI image, video, voice and music generation over MCP, routed to Veo 3.1, Seedance 2.5 and more.
MCP server for Qwen Image 3 AI image generation
MCP server for Hailuo (MiniMax) AI video generation
Related MCP Servers
- AlicenseBqualityBmaintenanceAI 3D model generation and post-processing MCP server — text/image/multiview-to-3D via Tripo, retopology, format conversion (GLB/FBX/OBJ/STL/USDZ), and stylization. Single Go binary, 10 tools.296Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server for generating images and videos using Google Gemini and VEO models, with support for multiple AI models and credential modes.33 PyPI1Apache 2.0
- AlicenseAqualityFmaintenanceProduction-grade MCP server for image and video understanding and generation across Gemini, OpenAI, and Grok.54Apache 2.0
- FlicenseBqualityDmaintenanceA production-ready MCP server that enables Claude and other LLMs to generate images and videos using Google's Gemini AI models (Gemini 2.0 Flash and Veo 2.0).32-