Back to Media

VAP Agent Image, Video & Music Generation

Generate images (Flux), videos (Veo 3.1), and music (Suno V5) directly from Cursor. Pay-per-use with automatic refunds on failures. No subscriptions, no surprises.

Last updated: 1/27/2026

README

# VAP Media ยท Unified MCP Server for AI Agents (Flux ยท Veo ยท Suno)

**Generate AI images, videos, and music with deterministic pricing.**
[![MCP Badge](https://lobehub.com/badge/mcp/elestirelbilinc-sketch-vap-showcase)](https://lobehub.com/mcp/elestirelbilinc-sketch-vap-showcase)
[![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io)
[![Version](https://img.shields.io/badge/version-1.12.6-blue.svg)](https://github.com/vapagentmedia/vap-showcase/releases)
[![Python](https://img.shields.io/badge/python-3.11+-green.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE)
[![Get Started](https://img.shields.io/badge/Get%20Started-Dashboard-6366f1)](https://vapagent.com/dashboard/signup.html)

---

## Get Started

**No setup required โ€“ start generating in 2 minutes:**

1. **[Create Agent](https://vapagent.com/dashboard/signup.html)** โ†’ Get your API key instantly
2. **[Add Funds](https://vapagent.com/dashboard/deposit.html)** โ†’ Start from $1
3. **Generate** โ†’ Start creating images, videos, and music

---

## Why VAP?

VAP is an MCP server that enables image, video, and music generation directly from agentic workflows. It exposes generative media capabilities as portable, pay-per-use tools usable across Claude Desktop, Cursor, and other MCP-compatible clients.

When AI agents work with paid APIs, they need:

- **Cost visibility** โ€“ Know exactly what you'll pay before execution
- **Retry control** โ€“ Bounded, predictable retry behavior
- **Clear ownership** โ€“ Every task tracked and accountable
- **Enterprise auth** โ€“ OAuth 2.1 M2M for secure integrations

VAP provides this control layer.

---

## What VAP Does

VAP is an **MCP Server** that provides **Flux image generation**, **Veo 3.1 video generation**, and **Suno V5 music generation** with full cost control.

**Supported AI Models:**
- **Flux2 Pro** โ€“ Photorealistic images
- **Veo 3.1** โ€“ Cinematic videos
- **Suno V5** โ€“ Original music

**Production Pipeline:**
- FFmpeg post-processing (format conversion, audio normalization)
- Automatic quality optimization for broadcast standards
- Permanent cloud storage with instant CDN delivery

**How it works:**
- **Pre-commit pricing** โ€“ Know exact cost before execution
- **Reserve โ†’ Burn โ†’ Refund** โ€“ Hard budget guarantees
- **Deterministic behavior** โ€“ Predictable results every time
- **Explicit ownership** โ€“ Every task has a clear owner

---

## How It Works

```
Agent: "Generate an image of a sunset"
    โ†“
VAP: "Reserving cost..."
VAP: "Reserved. Executing..."
VAP: "Success. Here's your image."
```

If it fails:

```
Agent: "Generate an image of a sunset"
    โ†“
VAP: "Reserving cost..."
VAP: "Reserved. Executing..."
VAP: "Failed. Full refund. Error: Provider timeout"
```

**Your agent never sees the complexity. It just gets deterministic results.**

---

## Presets

| Type | Preset |
|------|--------|
| Image | `image.basic` |
| Video | `video.basic` |
| Music | `music.basic` |
| Campaign+SEO | `streaming_campaign` |
| Full Production+SEO | `full_production` |

All media productions are automatically normalized and delivered through a fast, orchestrated pipeline in accordance with defined broadcast quality standards.

**Pricing:** See [vapagent.com](https://vapagent.com) for current pricing.

---

## MCP Integration

### Step 1: Get Your API Key

**Option A: Dashboard (Recommended)**

Go to **[vapagent.com/dashboard/signup.html](https://vapagent.com/dashboard/signup.html)** and create your agent.

**Option B: API**

```bash
curl -X POST https://api.vapagent.com/v3/agents \
  -H "Content-Type: application/json" \
  -d '{"name": "my-agent"}'
```

Save the `api_key` from the response. It's shown only once.

### Step 2: Activate Your Account

Deposit minimum $1 to unlock generation capabilities:

```bash
curl -X POST https://api.vapagent.com/v3/deposits/init \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"amount": 5.00, "provider": "crypto"}'
```

### Step 3: Configure Your MCP Client

#### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "vap": {
      "url": "https://api.vapagent.com/mcp",
      "transport": "streamable-http",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

#### Cursor

Add to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):

```json
{
  "mcpServers": {
    "vap": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.vapagent.com/mcp",
        "--header",
        "Authorization: Bearer YOUR_API_KEY"
      ]
    }
  }
}
```

#### Cline (VS Code)

Add to Cline MCP settings:

```json
{
  "mcpServers": {
    "vap": {
      "command": "python",
      "args": ["path/to/mcp/vap_mcp_proxy.py"],
      "env": {
        "VAP_API_KEY": "your_api_key"
      }
    }
  }
}
```

Restart your client after configuration.

### Available Tools

| Tool | What it does |
|------|--------------|
| `generate_image` | Create photorealistic image from text (Flux2 Pro) |
| `generate_video` | Create cinematic video from text (Veo 3.1) |
| `generate_music` | Create original music from text (Suno V5) |
| `estimate_cost` | Preview cost before generating |
| `check_balance` | Check your current balance |
| `get_task` | Check status of a running task |
| `list_tasks` | List your recent tasks |

### Alternative: Local Proxy

For environments that don't support `headers`, use the local proxy:

```json
{
  "mcpServers": {
    "vap": {
      "command": "python",
      "args": ["/path/to/mcp/vap_mcp_proxy.py"],
      "env": {
        "VAP_API_KEY": "your_api_key"
      }
    }
  }
}
```

**MCP Registry:** `io.github.elestirelbilinc-sketch/vap-e`

---

## OAuth 2.1 (Enterprise)

For enterprise integrations, VAP supports OAuth 2.1 M2M (machine-to-machine) authentication via [Scalekit](https://scalekit.com).

### How It Works

```
OAuth Token โ†’ MCP Proxy โ†’ Validate โ†’ Resolve client_id โ†’ Agent โ†’ Execute
```

### Setup

```bash
# 1. Get OAuth token from your identity provider
curl -X POST "https://your-tenant.scalekit.dev/oauth/token" \
  -d "grant_type=client_credentials" \
  -d "client_id=m2m_xxx" \
  -d "client_secret=your_secret"

# 2. Link OAuth client to your VAP agent (one-time)
curl -X PUT "https://api.vapagent.com/v3/agents/me/oauth" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"oauth_client_id": "m2m_xxx"}'

# 3. Use OAuth token with MCP
# The MCP proxy validates tokens and maps to linked agents
```

### Benefits

- **SSO Integration** โ€“ Connect VAP to your existing identity provider
- **No API Key in Config** โ€“ Tokens rotate automatically
- **Audit Trail** โ€“ OAuth events logged separately

---

## SDK Usage

### Installation

```bash
pip install vap-sdk
```

### Image Generation

```python
from vape_client import VAPEClient

client = VAPEClient(api_key="your_api_key")

result = client.generate(
    description="A serene mountain landscape at sunset"
)

print(f"Image URL: {result.image_url}")
print(f"Cost: ${result.cost}")
```

### Video Generation

```python
# Generate video with Veo 3.1
video = client.generate_video(
    prompt="Cinematic aerial shot of coastal cliffs at golden hour",
    duration=8,
    aspect_ratio="16:9",
    generate_audio=True
)

print(f"Task ID: {video.task_id}")

# Poll for completion
task = client.get_task(video.task_id)
print(f"Status: {task.status}")
print(f"Video URL: {task.result_url}")
```

### Music Generation

```python
# Generate music with Suno V5
music = client.generate_music(
    prompt="Upbeat indie folk song with acoustic guitar and warm vocals",
    duration=120,
    instrumental=False
)

print(f"Task ID: {music.task_id}")

# Check task status
task = client.get_task(music.task_id)
print(f"Audio URL: {task.result_url}")
```

### Async Usage

```python
import asyncio
from vape_client import AsyncVAPEClient

async def main():
    async with AsyncVAPEClient(api_key="your_api_key") as client:
        # Image
        image = await client.generate(description="A futuristic cityscape")
        print(f"Image URL: {image.image_url}")

        # Video
        video = await client.generate_video(prompt="Ocean waves at sunset")
        print(f"Video Task: {video.task_id}")

        # Music
        music = await client.generate_music(prompt="Lo-fi chill beats")
        print(f"Music Task: {music.task_id}")

asyncio.run(main())
```

### Task Management

```python
# List recent tasks
tasks = client.list_tasks(limit=10)
for task in tasks.tasks:
    print(f"{task.task_id}: {task.status} - {task.task_type}")

# Get specific task
task = client.get_task("your-task-id")
print(f"Result: {task.result_url}")
```

---

## API Endpoints

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/v3/generate` | POST | Create media execution task |
| `/v3/tasks/{id}` | GET | Retrieve task status |
| `/v3/tasks/{id}/result` | GET | Retrieve task result |
| `/v3/balance` | GET | Check account balance |
| `/v3/agents/me/oauth` | PUT | Link OAuth client (Enterprise) |
| `/v3/agents/me/oauth` | GET | Check OAuth link status |

**Full API Docs:** [api.vapagent.com/docs](https://api.vapagent.com/docs)

---

## The Four Guarantees

### 1. Pre-Commit Pricing
Every task has a known cost before execution. No surprises.

### 2. Budget Enforcement
Set a max budget. VAP enforces it. Hit the limit? Task rejected. Balance protected.

### 3. Failure Ownership
Every task has an explicit owner. Every failure has an address. No more "the agent did something and I don't know what."

### 4. Deterministic Production Quality
Every output is normalized to broadcast standards. Consistent formats, predictable quality, publish-ready media. No variance between runs.

---

## Links

- **MCP Registry:** [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io)
- **API Documentation:** [api.vapagent.com/docs](https://api.vapagent.com/docs)
- **MCP Endpoint:** `https://api.vapagent.com/mcp`

---

## License

MIT License โ€“ see the [LICENSE](LICENSE) file for details.

---

**VAP Media ยท Unified MCP Server for AI Agents**

*"Deterministic media production for AI agents."*

Installation

Add this MCP to your configuration:

{
  "mcpServers": {
    "vap-agent-image-video-music-generation": {
      // See GitHub repository for configuration
    }
  }
}

See the GitHub repository for full installation instructions.