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.

Conforms to MCP Specification 2025-11-25.

Features

  • 6 MCP Tools: generate_image, edit_image, upscale_image, generate_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
  • 18 models: 10 text-to-image, 3 editing, 1 upscale, 4 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 from pruna.ai:

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

# Or environment variable
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", "upscale_image", "generate_video", "list_models", "upload_file"]
}

In tools, add: "@pruna/*"

In allowedTools, add: "generate_image", "edit_image", "upscale_image", "generate_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
upscale_image AI upscaling to 1-8 megapixels From $0.005/image
generate_video Text/image/audio to video From $0.005/s
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).

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 (100 tests, 94% 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.1.0.tar.gz (87.4 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.1.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pruna_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 87.4 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.1.0.tar.gz
Algorithm Hash digest
SHA256 35f8fce83f56d6586cc026769b5ee020d644e61a87dc0e809a29b32b99ed37eb
MD5 c11df5c1545fc2e96ed40fc22d2574d7
BLAKE2b-256 b710201dfa2b1cd2e2fcc5019d67b7372b06242121bb2d5557e1c6214b8b9e90

See more details on using hashes here.

Provenance

The following attestation bundles were made for pruna_mcp_server-0.1.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.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pruna_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8cbc13a20d7975a4b413fa9fc5ae86c4401e355431552fe3ed6a2304b0d9eae
MD5 380e25cace9dee25582121f5c1a82a14
BLAKE2b-256 9aaf998c4cbfc0aa884bca1d3f78a27a557f33ab3f04dc956888919a31f7f3a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pruna_mcp_server-0.1.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