# VAP Media · Unified MCP Server for AI Agents (Flux · Veo · Suno)
**Generate AI images, videos, and music with deterministic pricing.**
[](https://lobehub.com/mcp/elestirelbilinc-sketch-vap-showcase)
[](https://registry.modelcontextprotocol.io)
[](https://github.com/vapagentmedia/vap-showcase/releases)
[](https://www.python.org/)
[](LICENSE)
[](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."*