Koskamo

VAP Media API MCP

Provides MCP tools for the VAP Media API, enabling AI agents to generate images, video, and music using models like Pimo AI-Video, Aura Image Turbo, and Pira V5.5. It supports integration with Claude Desktop, Cursor, and other agent workflows.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

VAP Media API MCP logo, by vapagentmediaCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by vapagentmedia
You need:product-scoped VAP Media API key
MCP endpoint (Streamable HTTP)
https://api.vapagent.com/mcp
Vendor documentation

What its tools do

16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

16 of 16 have a description · 0 of 16 declare behavior hints · 15 of 15 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Generate images via prompt
  • Create video content
  • Produce music tracks

Source and maintenance

Community listingRegistry 1.14.1
Maintenance checked

Protocol and capabilities

Server
vap-e 1.20.6
MCP protocol negotiated in check
2024-11-05
Tools
16 advertised
Resources
4 advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {},
  "resources": {}
}

Tools

16 advertised

generate_image
Advertised by the server during the last successful anonymous check.

Generate an AI image from text prompt using VAP (Flux2 Pro). Returns a task ID for async tracking. Cost: $0.18

generate_image input schema
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "prompt": {
      "type": "string",
      "description": "Detailed description of the image to generate. Note: If aspect ratio is mentioned in the prompt (e.g., '16:9', 'widescreen', 'portrait'), also pass it in the aspect_ratio parameter for guaranteed correct dimensions."
    },
    "quality": {
      "enum": [
        "standard",
        "high"
      ],
      "type": "string",
      "default": "standard",
      "description": "Generation quality (high costs 1.5x)"
    },
    "aspect_ratio": {
      "enum": [
        "1:1",
        "16:9",
        "9:16",
        "4:3",
        "3:4",
        "3:2",
        "2:3",
        "21:9",
        "9:21"
      ],
      "type": "string",
      "default": "1:1",
      "description": "Output image aspect ratio. If the user mentions a specific ratio like '16:9' or 'widescreen' in their prompt, extract and pass it here explicitly for best results."
    }
  }
}
get_task
Advertised by the server during the last successful anonymous check.

Get the status and result of a generation task. Returns image URL when completed.

get_task input schema
{
  "type": "object",
  "required": [
    "task_id"
  ],
  "properties": {
    "task_id": {
      "type": "string",
      "description": "Task UUID returned from generate_image"
    }
  }
}
list_tasks
Advertised by the server during the last successful anonymous check.

List recent generation tasks with optional status filter.

list_tasks input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of tasks to return"
    },
    "status": {
      "enum": [
        "pending",
        "processing",
        "completed",
        "failed"
      ],
      "type": "string",
      "description": "Filter by task status"
    }
  }
}
check_balance
Advertised by the server during the last successful anonymous check.

Check VAP account balance. Returns available, reserved, and usable balances.

check_balance input schema
{
  "type": "object",
  "properties": {}
}
estimate_cost
Advertised by the server during the last successful anonymous check.

Estimate the cost of an image generation before executing. Cost: $0.18

estimate_cost input schema
{
  "type": "object",
  "properties": {
    "quality": {
      "enum": [
        "standard",
        "high"
      ],
      "type": "string",
      "default": "standard",
      "description": "Generation quality level"
    },
    "num_outputs": {
      "type": "integer",
      "default": 1,
      "maximum": 4,
      "minimum": 1,
      "description": "Number of images to generate"
    }
  }
}
generate_video
Advertised by the server during the last successful anonymous check.

Generate an AI video from text prompt using VAP (P-Video). Returns a task ID for async tracking. Cost: $1.96. IMPORTANT: Send ONLY the video description. Do NOT include any instructions, guidelines, or meta-text. Just the pure visual description.

generate_video input schema
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "prompt": {
      "type": "string",
      "description": "ONLY the visual description of the video. Do NOT include instructions or guidelines. Example: 'Cinematic aerial shot of a coastal cliff at golden hour, warm sunlight, gentle waves, camera slowly drifting forward'"
    },
    "duration": {
      "enum": [
        4,
        6,
        8
      ],
      "type": "integer",
      "default": 8,
      "description": "Video duration in seconds (4, 6, or 8)"
    },
    "resolution": {
      "enum": [
        "720p",
        "1080p"
      ],
      "type": "string",
      "default": "720p",
      "description": "Video resolution. 1080p recommended for enterprise (+33% cost)"
    },
    "aspect_ratio": {
      "enum": [
        "16:9",
        "9:16"
      ],
      "type": "string",
      "default": "16:9",
      "description": "Video aspect ratio. 16:9 for landscape/widescreen, 9:16 for portrait/vertical (TikTok, Reels). Extract from user's prompt if mentioned."
    },
    "generate_audio": {
      "type": "boolean",
      "default": true,
      "description": "Generate audio with the video (costs more)"
    },
    "negative_prompt": {
      "type": "string",
      "description": "What to avoid in the video generation"
    }
  }
}
estimate_video_cost
Advertised by the server during the last successful anonymous check.

Estimate the cost of a video generation. Cost: $1.96 (P-Video)

estimate_video_cost input schema
{
  "type": "object",
  "properties": {
    "duration": {
      "enum": [
        4,
        6,
        8
      ],
      "type": "integer",
      "default": 8,
      "description": "Video duration in seconds"
    },
    "resolution": {
      "enum": [
        "720p",
        "1080p"
      ],
      "type": "string",
      "default": "720p",
      "description": "Video resolution. 1080p adds +33% cost"
    },
    "generate_audio": {
      "type": "boolean",
      "default": true,
      "description": "Whether audio will be generated"
    }
  }
}
generate_music
Advertised by the server during the last successful anonymous check.

Generate AI music from text description using VAP. Returns a task ID for async tracking. Cost: $0.68. IMPORTANT: Send ONLY the music description. Do NOT include any instructions or meta-text. Describe: genre, mood, instruments, tempo, vocal style (or specify instrumental). Example prompt: "Upbeat indie folk song with acoustic guitar, warm vocals, and light percussion. Feel-good summer vibes.

generate_music input schema
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "prompt": {
      "type": "string",
      "description": "Music description (200-500 chars recommended). Include genre, mood, instruments, tempo."
    },
    "duration": {
      "type": "integer",
      "default": 120,
      "maximum": 480,
      "minimum": 30,
      "description": "Target duration in seconds (30-480, default 120 = 2 min)"
    },
    "audio_format": {
      "enum": [
        "mp3",
        "wav"
      ],
      "type": "string",
      "default": "mp3",
      "description": "Output format. WAV for enterprise/lossless (+$0.10)"
    },
    "instrumental": {
      "type": "boolean",
      "default": false,
      "description": "Generate without vocals (instrumental only)"
    },
    "loudness_preset": {
      "enum": [
        "streaming",
        "apple",
        "broadcast"
      ],
      "type": "string",
      "default": "streaming",
      "description": "Loudness normalization. streaming=-14 LUFS (YouTube/Spotify), apple=-16 LUFS, broadcast=-23 LUFS (TV/EBU R128)"
    }
  }
}
estimate_music_cost
Advertised by the server during the last successful anonymous check.

Estimate the cost of music generation. Cost: $0.68

estimate_music_cost input schema
{
  "type": "object",
  "properties": {
    "duration": {
      "type": "integer",
      "default": 120,
      "maximum": 480,
      "minimum": 30,
      "description": "Music duration in seconds"
    },
    "audio_format": {
      "enum": [
        "mp3",
        "wav"
      ],
      "type": "string",
      "default": "mp3",
      "description": "Output format. WAV adds +$0.10"
    }
  }
}
inpaint
Advertised by the server during the last successful anonymous check.

Remove or replace objects in an image using AI inpainting. Cost: $0.15. Requires Tier 1+.

inpaint input schema
{
  "type": "object",
  "required": [
    "media_url",
    "prompt"
  ],
  "properties": {
    "prompt": {
      "type": "string",
      "description": "What to remove, replace, or change in the image"
    },
    "mask_url": {
      "type": "string",
      "description": "Optional mask image URL (white = edit area, black = keep)"
    },
    "media_url": {
      "type": "string",
      "description": "URL of the image to edit"
    }
  }
}
ai_edit
Advertised by the server during the last successful anonymous check.

Edit images using AI with natural language prompts. Supports single and multi-image editing. Cost: $0.15. Requires Tier 1+.

ai_edit input schema
{
  "type": "object",
  "required": [
    "media_url",
    "prompt"
  ],
  "properties": {
    "seed": {
      "type": "integer",
      "description": "Random seed for reproducible results"
    },
    "prompt": {
      "type": "string",
      "description": "Natural language instruction for editing"
    },
    "media_url": {
      "type": "string",
      "description": "URL of the primary image to edit"
    },
    "aspect_ratio": {
      "type": "string",
      "default": "match_input_image",
      "description": "Output aspect ratio (default: match input image)"
    },
    "additional_images": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Up to 2 additional reference image URLs"
    }
  }
}
background_remove
Advertised by the server during the last successful anonymous check.

Remove the background from an image, leaving only the subject with transparency. Cost: $0.10. Requires Tier 1+.

background_remove input schema
{
  "type": "object",
  "required": [
    "media_url"
  ],
  "properties": {
    "media_url": {
      "type": "string",
      "description": "URL of the image to process"
    }
  }
}
upscale
Advertised by the server during the last successful anonymous check.

Upscale/enhance an image to higher resolution using AI. Cost: $0.15. Requires Tier 1+.

upscale input schema
{
  "type": "object",
  "required": [
    "media_url"
  ],
  "properties": {
    "scale": {
      "enum": [
        2,
        4
      ],
      "type": "integer",
      "default": 2,
      "description": "Upscale factor (2x or 4x)"
    },
    "media_url": {
      "type": "string",
      "description": "URL of the image to upscale"
    }
  }
}
video_trim
Advertised by the server during the last successful anonymous check.

Trim a video to a specific time range. Cost: $0.05. Requires Tier 1+.

video_trim input schema
{
  "type": "object",
  "required": [
    "media_url",
    "start_time",
    "end_time"
  ],
  "properties": {
    "end_time": {
      "type": "number",
      "description": "End time in seconds"
    },
    "media_url": {
      "type": "string",
      "description": "URL of the video to trim"
    },
    "start_time": {
      "type": "number",
      "description": "Start time in seconds"
    }
  }
}
video_merge
Advertised by the server during the last successful anonymous check.

Merge multiple video clips into one continuous video. Cost: $0.05. Requires Tier 1+.

video_merge input schema
{
  "type": "object",
  "required": [
    "media_urls"
  ],
  "properties": {
    "media_urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 2,
      "description": "URLs of videos to merge (in playback order)"
    }
  }
}
get_operation
Advertised by the server during the last successful anonymous check.

Get the status and result of an operation. Returns output URL when completed.

get_operation input schema
{
  "type": "object",
  "required": [
    "operation_id"
  ],
  "properties": {
    "operation_id": {
      "type": "string",
      "description": "Operation UUID returned from an operation tool"
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

4 advertised

Account Information

Advertised by the server during the last successful anonymous check.

Current account details, tier, and limits

Account Information URI
vape://account/info

MIME type: application/json

Account Balance

Advertised by the server during the last successful anonymous check.

Current balance breakdown

Account Balance URI
vape://account/balance

MIME type: application/json

Current Pricing

Advertised by the server during the last successful anonymous check.

Current pricing for all operations

Current Pricing URI
vape://pricing/current

MIME type: application/json

Recent Tasks

Advertised by the server during the last successful anonymous check.

Last 10 tasks

Recent Tasks URI
vape://tasks/recent

MIME type: application/json

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1829 ms
95th percentile latency
1829 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1829 ms · metadata changed · 16 tool(s), 4 resource(s); warnings: Advertises resources/templates/list but does not implement it

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http vap-media-api-mcp https://api.vapagent.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add vap-media-api-mcp --url https://api.vapagent.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable vap-media-api-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "vap-media-api-mcp": {
      "url": "https://api.vapagent.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "vap-media-api-mcp": {
      "type": "streamableHttp",
      "url": "https://api.vapagent.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start vap-media-api-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "vap-media-api-mcp": {
      "type": "http",
      "url": "https://api.vapagent.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http vap-media-api-mcp https://api.vapagent.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.vapagent.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "vap-media-api-mcp": {
      "serverUrl": "https://api.vapagent.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like VAP Media API MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.