WaveSpeedAI

Generate Images and Video Inside Cline with the WaveSpeed MCP Server

Add the WaveSpeed MCP server to Cline and the agent gets seven tools: live catalog search, per-model schema introspection, generation with local-file upload, and price quotes before spending.

By WaveSpeedAI2 min read

Cline speaks MCP natively, and the WaveSpeed MCP server (@wavespeed/mcp, MIT) gives it the whole wavespeed.ai platform — image, video, audio, and 3D generation — as seven typed tools.

The server shares its design with the open-source wavespeed CLI: no hardcoded model list, one generation verb driven by live per-model schemas, inputs never mutated, and honest price quotes.

Setup

Add to Cline’s MCP settings (cline_mcp_settings.json):

{
  "mcpServers": {
    "wavespeed": {
      "command": "npx",
      "args": ["-y", "@wavespeed/mcp"],
      "env": { "WAVESPEED_API_KEY": "wsk_..." }
    }
  }
}

Keys come from wavespeed.ai/accesskey. If you already use the CLI, wavespeed login covers the server too and the env block can be omitted.

How the agent works with it

The intended loop is read-before-write:

  1. list_models — search the live catalog by text or modality (text-to-image, image-to-video, …)
  2. get_model_schema — the model’s real input schema: required fields, properties, defaults
  3. run_model — execute with schema-correct inputs; returns output URLs and the prediction id

Local files are passed as "@./path" string values inside input — the server uploads them and substitutes hosted URLs. Bare paths pass through untouched and fail model validation, by design: a value that merely looks like a filename must never leave your machine.

{
  "model": "bytedance/seedream-v5.0-pro/edit",
  "input": {
    "prompt": "replace the background with a sunlit kitchen",
    "images": ["@./input.jpg"]
  }
}

Cost control

get_price accepts the same input as run_model and quotes without charging. Two disclosure fields matter:

  • unpriced_inputs — pricing-formula variables the quote could not see (e.g. audio duration)
  • at_base_price — true when the quote collapsed to the model’s floor rather than a representative charge

get_balance shows account credit. The amount actually charged for a run is authoritative.

Long runs

run_model takes a wait_seconds limit (default 600). If a generation outlives it, the task keeps running server-side — the error names the prediction id and get_prediction picks it up later. wait_seconds: 0 submits without waiting at all.

Where things live

Share