---
title: Connect Runway Dev
description: Connect Cursor, Claude Desktop, Claude Code, or Codex to your Runway Dev account over MCP. OAuth only. No API key is required in the client config.
---

Runway Dev lets a coding agent work against your [Developer Portal](https://dev.runway.com/) account from the editor: look up tasks, manage model routers, and read docs without copying an API key into `mcp.json`.

This is separate from the generation MCP at [mcp.runwayml.com](https://mcp.runwayml.com), which creates media in chat.

<Aside type="tip">
You need a Runway Dev account before connecting. [Create one](/guides/setup) if you have not already.
</Aside>

The server URL is the same in every client:

```text
https://dev.runwayml.com/mcp
```

Apps display the server as **Runway Dev**. CLI server identifiers cannot contain spaces, so the commands below use `runway-dev-mcp`.

<Aside type="caution">
Complete OAuth yourself in your normal browser. Do not ask an agent to automate the sign-in or approval steps.
</Aside>

# Cursor

One click adds the server. Cursor then opens a browser to sign in.

[Add Runway Dev to Cursor](https://cursor.com/install-mcp?name=Runway%20Dev\&config=eyJ1cmwiOiJodHRwczovL2Rldi5ydW53YXltbC5jb20vbWNwIiwiYXV0aCI6eyJDTElFTlRfSUQiOiJ0cGNfdHhTS3JHeENNRVVVYU56UjhQTGRjRSJ9fQ%3D%3D)

Or paste this into `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project) and restart Cursor:

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

Then open **Settings → MCP**, find **Runway Dev**, and connect. Approve access in the browser when prompted.

# Claude Desktop

Claude Desktop uses the same custom connectors as Claude.ai. One click opens **Add custom connector** with the name and URL filled in.

[Add Runway Dev to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector\&connectorName=Runway%20Dev\&connectorUrl=https%3A%2F%2Fdev.runwayml.com%2Fmcp)

# Claude Code

Claude Code does not use Claude Desktop connectors. Add the server from a terminal:

```sh
claude mcp add --transport http --scope user runway-dev-mcp https://dev.runwayml.com/mcp
```

In a session, run `/mcp`, select **runway-dev-mcp**, and authenticate.

If Claude Code shows **Needs authentication**:

1. Run `/mcp`.
2. Select **runway-dev-mcp**.
3. Complete authentication in your normal browser.
4. Retry the MCP tool in the same Claude Code session.
5. Request a new session only if the authenticated tools remain unavailable.

Claude Code 2.1.186 or newer can also start authentication from a terminal:

```sh
claude mcp login runway-dev-mcp
```

Claude Code 2.1.191 or newer supports `--no-browser`. This option prints an authorization URL instead of opening a local browser:

```sh
claude mcp login runway-dev-mcp --no-browser
```

# Codex

Codex has a [known scope-discovery issue](https://github.com/openai/codex/issues/15643), so request the Runway scopes explicitly:

```sh
codex mcp add runway-dev-mcp --url https://dev.runwayml.com/mcp
codex mcp login runway-dev-mcp --scopes openid,profile,email,mcp:read,mcp:write
```

Or add the same URL in `~/.codex/config.toml`:

```toml
[mcp_servers.runway-dev-mcp]
url = "https://dev.runwayml.com/mcp"
```

Then run `codex mcp login runway-dev-mcp --scopes openid,profile,email,mcp:read,mcp:write` to complete browser login.

If Codex connects but reports a missing `mcp:read` scope, replace the cached authorization:

```sh
codex mcp logout runway-dev-mcp
codex mcp login runway-dev-mcp --scopes openid,profile,email,mcp:read,mcp:write
```

# After you connect

Ask the agent to call `whoami`. You should see your Developer Portal email. If that fails, authenticate with the client steps above and retry in the same session.

Do not put an API key in the MCP config. Keys stay in the Developer Portal, where you can rotate them.
