MCP server agent

WaveSpeed MCP server — run any model on the live catalog (image, video, audio, 3D) with schema introspection, @path file upload, and price quotes

by WaveSpeedAI·MIT license·★ 34 Stars on the repo·GitHub ↗

Inside this agent

README.md · the author's own words
# WaveSpeed MCP Server

<!-- mcp-name: ai.wavespeed/mcp -->

An MCP server for the [WaveSpeed](https://wavespeed.ai) platform: run any model on the **live catalog** — image, video, audio, 3D — from Cl…

Built on the same design as the open-source [`@wavespeed/cli`](https://github.com/WaveSpeedAI/wavespeed-cli):

- **No hardcoded models.** The catalog comes from the live API (1h cache); new platform models work the day they ship.
- **One generation verb.** `run_model` executes anything; `get_model_schema` tells the agent what inputs a model actually accepts, so it re…
- **Inputs are never mutated.** The one explicit transform is the `@path` marker — a `"@./photo.jpg"` value inside `input` uploads the file…
- **Honest pricing.** `get_price` quotes before you spend and names the inputs the quote was blind to (`unpriced_inputs`) instead of presen…

## Tools

| Tool | What it does |

Word-for-word excerpt, not a result. Read the full README.md ↓

Files of MCP server

WaveSpeedAI/main1 file
README.md
Show the full text91 lines
wavespeedai-mcp-server/README.md91 lines · 3.9 KB

WaveSpeed MCP Server

Add wavespeed MCP server to Cursor

An MCP server for the WaveSpeed platform: run any model on the live catalog — image, video, audio, 3D — from Claude Code, Claude Desktop, Cursor, Cline, or any MCP client.

Built on the same design as the open-source @wavespeed/cli:

  • No hardcoded models. The catalog comes from the live API (1h cache); new platform models work the day they ship.
  • One generation verb. run_model executes anything; get_model_schema tells the agent what inputs a model actually accepts, so it reads before it writes.
  • Inputs are never mutated. The one explicit transform is the @path marker — a "@./photo.jpg" value inside input uploads the file and substitutes its hosted URL. Bare paths are passed through untouched.
  • Honest pricing. get_price quotes before you spend and names the inputs the quote was blind to (unpriced_inputs) instead of presenting a formula's floor as "the" price.

Tools

Tool What it does
list_models Search the live catalog by text or modality type
get_model_schema A model's real input schema (required, properties, defaults)
run_model Submit + wait; rejects input keys the model doesn't accept; @path inputs upload automatically; returns output URLs
get_price Cost estimate with unpriced_inputs / at_base_price disclosure
get_balance Account credit balance
upload_file Local file → hosted URL (24h content-hash dedupe)
get_prediction Status/outputs of any run by id; optional wait_seconds to wait for it

Some generations take minutes to hours. run_model waits up to wait_seconds (default 50, max 1800) and then returns done: false with the prediction id — the task keeps running server-side, and get_prediction picks it up. While waiting, both tools send MCP progress notifications that carry the prediction id.

Setup

Auth resolves from WAVESPEED_API_KEY, or from the CLI's stored login (wavespeed login) — one login covers both tools. Keys: wavespeed.ai/accesskey.

Claude Code

claude mcp add wavespeed -- npx -y @wavespeed/mcp

Claude Desktop / other clients (mcpServers config):

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

Example prompts

  • "Generate a 16:9 hero image of a cyberpunk skyline at golden hour."
  • "Take ./photo.jpg and replace the background with a sunlit kitchen." (the agent passes "@./photo.jpg")
  • "Animate ./hero.png with subtle parallax — check the price first."

Development

npm install
npm run dev        # run from source (stdio)
npm run lint       # typecheck
npm run build      # tsc → dist/

License

MIT


WaveSpeed AI — AI image & video generation platform. Try it in the browser: Image generator · Video generator

1<div align="center">
2 <a href="https://wavespeed.ai" target="_blank">
3 <picture>
4 <source media="(prefers-color-scheme: dark)" srcset="assets/wavespeed-logo-dark.svg">
5 <img src="assets/wavespeed-logo-light.svg" alt="WaveSpeed" width="342" height="48"/>
6 </picture>
7 </a>
8</div>
9 
10# WaveSpeed MCP Server
11 
12<a href="https://cursor.com/install-mcp?name=wavespeed&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB3YXZlc3BlZWQvbWNwIl0sImVudiI6eyJXQVZFU1BFRURfQVBJX0tFWSI6Indza18uLi4ifX0%3D">
13 <picture>
14 <source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/deeplink/mcp-install-light.svg">
15 <img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add wavespeed MCP server to Cursor" height="32"/>
16 </picture>
17</a>
18 
19<!-- mcp-name: ai.wavespeed/mcp -->
20 
21An MCP server for the [WaveSpeed](https://wavespeed.ai) platform: run any model on the **live catalog** — image, video, audio, 3D — from Claude Code, Claude Desktop, Cursor, Cline, or any MCP client.
22 
23Built on the same design as the open-source [`@wavespeed/cli`](https://github.com/WaveSpeedAI/wavespeed-cli):
24 
25- **No hardcoded models.** The catalog comes from the live API (1h cache); new platform models work the day they ship.
26- **One generation verb.** `run_model` executes anything; `get_model_schema` tells the agent what inputs a model actually accepts, so it reads before it writes.
27- **Inputs are never mutated.** The one explicit transform is the `@path` marker — a `"@./photo.jpg"` value inside `input` uploads the file and substitutes its hosted URL. Bare paths are passed through untouched.
28- **Honest pricing.** `get_price` quotes before you spend and names the inputs the quote was blind to (`unpriced_inputs`) instead of presenting a formula's floor as "the" price.
29 
30## Tools
31 
32| Tool | What it does |
33|---|---|
34| `list_models` | Search the live catalog by text or modality type |
35| `get_model_schema` | A model's real input schema (required, properties, defaults) |
36| `run_model` | Submit + wait; rejects input keys the model doesn't accept; `@path` inputs upload automatically; returns output URLs |
37| `get_price` | Cost estimate with `unpriced_inputs` / `at_base_price` disclosure |
38| `get_balance` | Account credit balance |
39| `upload_file` | Local file → hosted URL (24h content-hash dedupe) |
40| `get_prediction` | Status/outputs of any run by id; optional `wait_seconds` to wait for it |
41 
42Some generations take minutes to hours. `run_model` waits up to `wait_seconds` (default 50, max 1800) and then returns `done: false` with the prediction id — the task keeps running server-side, and `get_prediction` picks it up. While waiting, both tools send MCP progress notifications that carry the prediction id.
43 
44## Setup
45 
46Auth resolves from `WAVESPEED_API_KEY`, or from the CLI's stored login (`wavespeed login`) — one login covers both tools. Keys: [wavespeed.ai/accesskey](https://wavespeed.ai/accesskey).
47 
48**Claude Code**
49 
50```bash
51claude mcp add wavespeed -- npx -y @wavespeed/mcp
52```
53 
54**Claude Desktop / other clients** (`mcpServers` config):
55 
56```json
57{
58 "mcpServers": {
59 "wavespeed": {
60 "command": "npx",
61 "args": ["-y", "@wavespeed/mcp"],
62 "env": { "WAVESPEED_API_KEY": "wsk_..." }
63 }
64 }
65}
66```
67 
68## Example prompts
69 
70- *"Generate a 16:9 hero image of a cyberpunk skyline at golden hour."*
71- *"Take ./photo.jpg and replace the background with a sunlit kitchen."* (the agent passes `"@./photo.jpg"`)
72- *"Animate ./hero.png with subtle parallax — check the price first."*
73 
74## Development
75 
76```bash
77npm install
78npm run dev # run from source (stdio)
79npm run lint # typecheck
80npm run build # tsc → dist/
81```
82 
83## License
84 
85[MIT](LICENSE)
86 
87---
88 
89**[WaveSpeed AI](https://wavespeed.ai/)** — AI image & video generation platform.
90Try it in the browser: **[Image generator](https://wavespeed.ai/image-generator)** · **[Video generator](https://wavespeed.ai/video-generator)**
91 

Discussion

Alternatives