# How to build a generative media integration with Cursor

> Connect Cursor to Runway Dev MCP and let it build, debug and maintain a video, image or audio generation integration.

Author: Runway · Published: 2026-09-17 · Updated: 2026-09-17 · Source: https://dev.runwayml.com/learn/build-with-cursor

Cursor can build, debug and maintain a video, image, audio or real-time avatar generation API integration autonomously, end to end. Connecting it to [Runway Dev MCP](https://docs.dev.runwayml.com/guides/mcp/) is what makes that possible: the agent works from your Runway Dev account and the live model catalog rather than from documentation alone, so it picks models against current prices and input limits, configures whatever the integration needs, and reads back the actual cause when a generation fails. This walks through the setup and the first build, from connecting the server to a working feature in your app.

## Step 1: Add Runway Dev MCP to Cursor

|                  | From Quickstart                   | By hand                                                             |
| ---------------- | --------------------------------- | ------------------------------------------------------------------- |
| **Connect**      | Quickstart, then Open in Cursor   | Add the server to `mcp.json`, or use the one-click link in the docs |
| **Authenticate** | Approve in the browser when asked | Restart, then Settings, MCP, connect and approve in the browser     |
| **Scope**        | The project you opened it in      | `~/.cursor/mcp.json` for every project, `.cursor/mcp.json` for one  |
| **Skills**       | Installed for you                 | `npx skills add … --agent cursor`                                   |

### Start from Quickstart

Open Quickstart in [Runway Dev](https://dev.runwayml.com/) and click **Open in Cursor**. It opens a new session carrying a prompt that points at Runway Dev's setup brief, and the agent works from there: it inspects your project, reads the documentation, installs the Runway Dev skills where they are supported, and connects the Runway Dev MCP. Approve the sign-in in your browser when it asks.

### Or add the server to Cursor yourself

The [Runway Dev MCP docs](https://docs.dev.runwayml.com/guides/mcp/) carry a one-click link that adds the server and opens a browser to sign in. To do it by hand instead, add the server to `mcp.json`:

```json
{
  "mcpServers": {
    "Runway Dev": {
      "url": "https://dev.runwayml.com/mcp",
      "auth": {
        "CLIENT_ID": "tpc_txSKrGxCMEUUaNzR8PLdcE"
      }
    }
  }
}
```

Use `~/.cursor/mcp.json` to make Runway Dev available in every project, or `.cursor/mcp.json` inside a project to limit it to that one. Restart Cursor, then open **Settings → MCP**, find **Runway Dev**, and connect. Approve access in the browser when prompted.

Complete the sign-in yourself rather than asking Cursor to automate it. No API key goes into `mcp.json`: the connection is OAuth, and your keys stay in your Runway Dev account.

**Confirm it worked.** Ask who you are and how many credits you have. It should return the email on your Runway Dev account and your current balance.

## Step 2: Install the Runway Dev skills (optional)

**Skip this if you started from Quickstart.** The agent installs them for you.

Otherwise, Runway publishes agent skills that teach Cursor how each surface works before it writes anything:

```bash
npx skills add runwayml/skills --skill runway-dev --skill runway-dev-models --agent cursor -y
```

Swap the surface skill for the one that matches the job: `runway-dev-models`, `runway-dev-model-routers`, `runway-dev-characters` or `runway-dev-recipes`. The shared `runway-dev` skill comes along either way.

Skipping it altogether is fine too. Cursor then works from the documentation, which it can read as raw Markdown by appending `.md` to any docs path.

## Step 3: Add your API key to the project

The MCP connection is OAuth, but a live generation call still needs a key of its own. The first time Cursor is ready to run something, it asks for `RUNWAYML_API_SECRET` in the project environment.

Create the key in your [Runway Dev](https://dev.runwayml.com/) account and add it to the project's environment file yourself. Do not paste it into the chat, and do not let it end up hardcoded: Cursor reads it from the environment.

## Step 4: Describe what you are building

Cursor now has your codebase, your account and the live catalog, so it does not need to be told which endpoint to call. It needs to know what you are building.

- Say what someone using your product should be able to do.
- Name what you already have as input: a product photo for image to video, a script for text to video, a catalog feed.
- Name what you need out: duration, resolution, format, whether it needs audio.
- Say where it runs: a route in your web app, a background job, a nightly batch.
- Give your constraints: a ceiling per generation, how long a user will wait, the quality bar you are holding.
- Ask it to explain which Runway Dev surface it plans to use, and why, before it writes any code.

Runway Dev offers more than a generation endpoint, and the right surface depends on the job:

- **A Model Router**, when you want the best model for each request without evaluating models yourself. Your code passes a config ID instead of a model name, and Cursor can create the router and rewrite the calling code in the same turn.
- **A Recipe**, when Runway has already built and tuned the use case. One call returns a production-ready asset, with the model selection, prompting and chaining already done.
- **A custom Workflow**, when the pipeline is specific to you and takes several steps. It is built visually in the Runway Creative App, then published as an endpoint your integration calls once.
- **A model called directly**, when you already know which one you want.

When a generation fails, Cursor looks the task up itself and reads the actual cause, whether that is a moderation rejection, an asset over a size limit or a malformed request body, rather than working backwards from a status code.

You are now ready to let Cursor handle media generation with Runway Dev autonomously, end to end.

Connect Runway Dev MCP from Quickstart and describe your first feature. [Create an account](https://dev.runwayml.com/login?returnTo=%2F&screen_hint=signup) to start building.

## FAQ

**How do I add Runway Dev MCP to Cursor?**

Add the server to `~/.cursor/mcp.json` with the URL `https://dev.runwayml.com/mcp`, restart Cursor, then open Settings, MCP, find Runway Dev and connect. Approve access in the browser when prompted. The Runway Dev MCP docs also carry a one-click link that does it for you.

**Where does the Cursor `mcp.json` file go?**

Use `~/.cursor/mcp.json` to make Runway Dev available in every project on that machine, or `.cursor/mcp.json` inside a project to limit it to that project.

**Do I need to restart Cursor after editing `mcp.json`?**

Yes. Restart Cursor, then connect the server under Settings, MCP.

**How do I connect Runway Dev to Cursor from Quickstart?**

Open Quickstart in Runway Dev and click Open in Cursor. It opens a new session with a prompt pointing at Runway Dev's setup brief, and the agent handles the setup from there, including connecting the MCP.

**Do I put my Runway API key in the Cursor MCP config?**

No. The connection uses OAuth in the browser, so no key belongs in `mcp.json`. Keys stay in your Runway Dev account, where you can rotate them.

**Do I still need a Runway API key with Cursor?**

Yes, for live generation calls from your app. Cursor asks for `RUNWAYML_API_SECRET` in the project environment the first time it is ready to run something. Add it yourself rather than pasting it into the chat.

**How do I know Cursor is connected to Runway Dev?**

Ask who you are and how many credits you have. It returns the email on your Runway Dev account and your current credit balance.

**Are there Runway Dev skills for Cursor?**

Yes. Install them with `npx skills add runwayml/skills --skill runway-dev --skill <surface-skill> --agent cursor -y`. The surface skills cover models, model routers, characters and recipes.

**Can Cursor create a Model Router for me?**

Yes. Ask for a router with the settings you want and for the integration to be updated to use it. It creates the configuration, reads it back, and rewrites the calling code to pass the config ID.

**Can Cursor spend my credits without asking?**

No. Runway Dev's setup brief tells the agent to treat a billable test call as optional unless you asked for one, and to ask before creating or changing anything live in the account.

**How does Cursor debug a failed generation?**

It looks the task up through the MCP and reads the recorded cause, such as a moderation rejection, an asset over a size limit or a malformed request body, instead of guessing from the error string.

**What can I build with Cursor and Runway Dev?**

Video, image and audio generation, real-time conversational video agents through Characters, upscaling and HDR output, using models from Runway and from other frontier labs.
