Skip to main content

MCP server for Pruna AI — Image generation, editing, upscaling, and video generation

Project description

🎨 pruna-mcp-server

CI PyPI Python License: MIT

MCP server for Pruna AI — ultra-fast image generation, editing, upscaling, and video generation directly from your AI assistant.

Pruna AI is an inference API specialized in image and video generation. It offers sub-2-second image generation starting at $0.005/image, with models for text-to-image, image editing, upscaling, and video generation. This MCP server wraps their API so any MCP-compatible client (Claude Desktop, Kiro, Cursor) can generate visual content natively.

Conforms to MCP Specification 2025-11-25.

Features

  • 8 MCP Tools: generate_image, edit_image, try_on_image, upscale_image, generate_video, transform_video, list_models, upload_file
  • 7 MCP Prompts: Product photos, virtual staging, social media visuals, game concept art, ad creatives, video ads, image enhancement
  • 2 MCP Resources: pruna://models catalog for model discovery without tool calls
  • 21 models: 10 text-to-image, 3 editing, 1 virtual try-on, 1 upscale, 4 video, 2 video-to-video
  • Smart sync/async: Sync for fast image models, async with polling for video
  • Transparent file handling: Pass local paths or URLs — auto-upload handled
  • Native MCP image return: ImageContent blocks for clients that support inline display
  • Full MCP compliance: Tool annotations, structured content, progress notifications

Quick Start

# With uvx (zero install)
uvx pruna-mcp-server

# Or with pip
pip install pruna-mcp-server
pruna-mcp

Set your API key — get one at pruna.ai (go to the developer portal or contact Pruna to request access):

# macOS Keychain (recommended)
security add-generic-password -a $USER -s PRUNA_API_KEY -w "your-api-key"

# Linux (GNOME Keyring)
secret-tool store --label="Pruna API Key" service pruna-mcp-server key api_key <<< "your-api-key"

# Windows (PowerShell)
[System.Environment]::SetEnvironmentVariable("PRUNA_API_KEY", "your-api-key", "User")

# Or environment variable (all platforms)
export PRUNA_API_KEY="your-api-key"

MCP Client Configuration

Kiro CLI

Add to your agent config (e.g. ~/.kiro/agents/default.json):

In mcpServers:

"pruna": {
  "command": "sh",
  "args": ["-c", "PRUNA_API_KEY=$(security find-generic-password -a $USER -s PRUNA_API_KEY -w) uv run --directory /path/to/pruna-mcp-server pruna-mcp"],
  "autoApprove": ["generate_image", "edit_image", "try_on_image", "upscale_image", "generate_video", "transform_video", "list_models", "upload_file"]
}

In tools, add: "@pruna/*"

In allowedTools, add: "generate_image", "edit_image", "try_on_image", "upscale_image", "generate_video", "transform_video", "list_models", "upload_file"

Note: Kiro agents use a tools whitelist with @server-name/* syntax and an allowedTools list. Both must include the Pruna tools for them to be available.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "pruna": {
      "command": "sh",
      "args": ["-c", "PRUNA_API_KEY=$(security find-generic-password -a $USER -s PRUNA_API_KEY -w) /path/to/uv run --directory /path/to/pruna-mcp-server pruna-mcp"]
    }
  }
}

Important: Use the full path to uv (e.g. /Users/you/.local/bin/uv) — Claude Desktop launches processes with a minimal PATH that doesn't include ~/.local/bin.

Note: Claude Desktop does not render ImageContent inline in the chat. The image is generated and saved locally — Claude will reference the file path in its response.

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "pruna": {
      "command": "uvx",
      "args": ["pruna-mcp-server"],
      "env": { "PRUNA_API_KEY": "your-api-key" }
    }
  }
}

Tools

Tool Description Pricing
generate_image Text-to-image with 10 models From $0.0001/image
edit_image Edit 1-5 images with text instructions From $0.010/image
try_on_image Virtual try-on: fit up to 11 garments onto a person $0.015 first + $0.008/extra garment
upscale_image AI upscaling up to 128 megapixels From $0.005/image
generate_video Text/image/audio to video From $0.005/s
transform_video Video-to-video: animate a subject or replace characters $0.03/s (720p), $0.06/s (1080p)
list_models Browse all available models with pricing Free
upload_file Upload files for editing/video workflows Free

Image tools return both a JSON metadata block and a native MCP ImageContent block (base64, for images < 5MB).

Video tools return a JSON metadata block (including a download_url to the Pruna delivery URL), the .mp4 as a native MCP binary resource (EmbeddedResource blob, for videos < 25MB) so clients materialize the file the same way they save images, and a ResourceLink to the same delivery URL as a fallback for larger files. All tools return an absolute file_path.

Prompts

Built-in workflow templates for common use cases:

Prompt Use Case Example
product-photo E-commerce product shots "white leather sneakers on clean background"
virtual-staging Real estate room staging Stage empty rooms with furniture
social-media-visual Platform-optimized visuals Auto aspect ratio per platform
game-concept-art Game assets & environments Characters, weapons, landscapes
ad-creative Digital ads with text overlay Headlines rendered in the image
video-ad Short video ads Talking heads, product demos
image-enhance Upscale + enhance workflow AI-generated image refinement

Configuration

Environment Variable Required Default Description
PRUNA_API_KEY Your Pruna AI API key
PRUNA_OUTPUT_DIR ~/pruna-output Directory for downloaded files
PRUNA_POLL_INTERVAL 2 Seconds between async polls
PRUNA_TIMEOUT 120 HTTP timeout in seconds
PRUNA_MAX_RETRIES 3 Max retries on transient errors

Client Compatibility

Client Transport Status Notes
Kiro CLI STDIO ✅ Tested Requires tools + allowedTools config
Claude Desktop STDIO ✅ Tested Use full path to uv; no inline image display
Cursor STDIO 🔲 Planned
Claude Code STDIO 🔲 Planned

Development

git clone https://github.com/charlesrapp/pruna-mcp-server.git
cd pruna-mcp-server
uv sync --extra dev

# Run tests (147 tests, 97% coverage)
uv run pytest --cov

# Lint & type check
uv run ruff check src/ tests/
uv run mypy src/

See CONTRIBUTING.md for guidelines.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pruna_mcp_server-0.3.0.tar.gz (124.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pruna_mcp_server-0.3.0-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file pruna_mcp_server-0.3.0.tar.gz.

File metadata

  • Download URL: pruna_mcp_server-0.3.0.tar.gz
  • Upload date:
  • Size: 124.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pruna_mcp_server-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ddcf676dfec431f4e1f346921bc4b5b419b6fcd848f9fb89b396c3f29d5f2523
MD5 bd1a7a10af5d2f3a240b1d5a18243593
BLAKE2b-256 d90d7e944d3594fbdc19c764a8d44b2bc205b4647c6b08e562ab74e198f15c87

See more details on using hashes here.

Provenance

The following attestation bundles were made for pruna_mcp_server-0.3.0.tar.gz:

Publisher: publish.yml on charlesrapp/pruna-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pruna_mcp_server-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pruna_mcp_server-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 23189fe09694511ac76b1ccad4c21818afb9e4312be857954059c16e04de0d42
MD5 729728869a88fec8a7f34ed77c85d9e2
BLAKE2b-256 0b2e808be137140e1593cb30e1a67578bd134a038adff578d98e6655bafe4cfc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pruna_mcp_server-0.3.0-py3-none-any.whl:

Publisher: publish.yml on charlesrapp/pruna-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page