Storytelling Media
FreeNot checkedProvides tools for agent-driven video creation, including image generation via Google's GenAI, video generation, and local video stitching with FFmpeg.
About
Provides tools for agent-driven video creation, including image generation via Google's GenAI, video generation, and local video stitching with FFmpeg.
README
MCP tools for an agent-driven video creation workflow.
This server gives Codex, Claude Code, or another MCP client access to:
- Nano Banana image generation and editing through Google's GenAI SDK.
- Veo 3.1 video generation through Google's GenAI SDK.
- Local video stitching through FFmpeg.
Models
Image generation defaults to the newer Google image models:
flash:gemini-3.1-flash-imagealso described by Google as Nano Banana 2.pro:gemini-3-pro-imagealso described by Google as Nano Banana Pro.legacy_flash:gemini-2.5-flash-imagefor older Nano Banana workflows.
Video generation defaults to:
veo-3.1-generate-001
Setup
python -m venv .venv
. .venv/bin/activate
pip install -e .
cp .env.template .env
FFmpeg must be installed and available on PATH for stitching.
ADC Instead of API Key
The Gemini API can also use OAuth/ADC, but the ADC login must include Google's Gemini scope:
gcloud auth application-default login \
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'
gcloud auth application-default set-quota-project "$GOOGLE_CLOUD_PROJECT"
Then run the MCP server with GOOGLE_CLOUD_PROJECT set to the project that should be used for quota and billing:
python -m storytelling_mcp
The server also accepts GOOGLE_CLOUD_QUOTA_PROJECT or GCLOUD_PROJECT. Then call the image or video tools with auth_mode="adc". If your ADC token was created without the generative-language.retriever scope, the Gemini API returns ACCESS_TOKEN_SCOPE_INSUFFICIENT.
Run
python -m storytelling_mcp
MCP Client Config
Example stdio server config using an API key:
{
"mcpServers": {
"storytelling-media": {
"command": "python",
"args": ["-m", "storytelling_mcp"],
"env": {
"GEMINI_API_KEY": "your_api_key"
}
}
}
}
Example stdio server config using ADC/Vertex:
{
"mcpServers": {
"storytelling-media": {
"command": "python",
"args": ["-m", "storytelling_mcp"],
"env": {
"GOOGLE_CLOUD_PROJECT": "your-gcp-project-id",
"GOOGLE_CLOUD_LOCATION": "us-central1"
}
}
}
}
Agent Plugins
This repo includes installable plugin metadata for both Claude Code and Codex.
Claude Code:
/plugin marketplace add imyousuf/storytelling-media-mcp
/plugin install storytelling-media-mcp@storytelling-media
Codex:
codex plugin marketplace add imyousuf/storytelling-media-mcp --sparse .agents/plugins --sparse plugins
Then open /plugins in Codex and install storytelling-media-mcp from the storytelling-media marketplace.
The plugin launcher uses STORYTELLING_MEDIA_MCP_ROOT for local development. If that variable is unset, it creates a plugin-local virtual environment and installs this package from GitHub before starting the MCP server.
The plugin also includes $movie-production-pipeline, a gated multi-agent workflow for turning a director's brief into stage-approved production artifacts. It expects user feedback at each stage before moving forward.
Tools
nano_banana_generate_image: text-to-image or text-and-image-to-image.veo_generate_video: text-to-video, image-to-video, interpolation, or reference-image-guided generation.stitch_videos: concatenate local MP4 clips with FFmpeg.
Generated files are written to paths supplied by the caller.
Installing Storytelling Media
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/imyousuf/storytelling-media-mcpFAQ
Is Storytelling Media MCP free?
Yes, Storytelling Media MCP is free — one-click install via Unyly at no cost.
Does Storytelling Media need an API key?
No, Storytelling Media runs without API keys or environment variables.
Is Storytelling Media hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Storytelling Media in Claude Desktop, Claude Code or Cursor?
Open Storytelling Media on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
by ARAYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare Storytelling Media with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
