---
title: Hosted MCP | RunAPI
description: Connect Claude Desktop, Cursor, VS Code, Windsurf, or another MCP client
  to RunAPI with OAuth.
url: https://runapi.ai/docs/resources/mcp/hosted.md
canonical: https://runapi.ai/docs/resources/mcp/hosted
locale: en
---

> HTML version: https://runapi.ai/docs/resources/mcp/hosted
> Site index for agents: https://runapi.ai/llms.txt

# Hosted MCP

Hosted MCP is the recommended way to use RunAPI tools. Your MCP client
connects directly to RunAPI, so you do not need to install Node.js or
keep a local process running.

Use this endpoint:

```text
https://mcp.runapi.ai/mcp
```

Choose your MCP client below. When the client opens RunAPI in your
browser, sign in, select the Account to use, and approve access.

## Claude Desktop

1.  Open **Settings > Connectors** and add a custom connector.
2.  Name it **RunAPI** and enter the endpoint above.
3.  Select **Connect** and complete the RunAPI authorization in your
    browser.
4.  In a conversation, open **+ > Connectors** and enable RunAPI.

If RunAPI does not appear in a conversation, return to **Settings >
Connectors**, reconnect it, and confirm it is enabled for that
conversation.

## Cursor

Add RunAPI to your Cursor `mcp.json`, such as the project-level
`.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "runapi": {
      "url": "https://mcp.runapi.ai/mcp"
    }
  }
}
```

Open **Customize** in the Cursor sidebar, find RunAPI, enable it, and
complete authorization in your browser.

RunAPI should show as connected and expose its tools. For connection or
authentication errors, open the **Output** panel and select **MCP
Logs**.

## VS Code

1.  Open the Command Palette and run **MCP: Add Server**.
2.  Choose **HTTP**, enter the endpoint above, and name the server
    **RunAPI**.
3.  Start the server, trust it when prompted, and complete authorization
    in your browser.

RunAPI tools should appear in Chat. For errors, run **MCP: List
Servers**, select RunAPI, and choose **Show Output**.

## Windsurf

These steps apply to the Cascade agent. Devin Local uses Devin CLI
configuration.

1.  Open **Devin Settings > Cascade > MCP Servers** and edit the raw
    `~/.codeium/windsurf/mcp_config.json` file.
2.  Add RunAPI as a remote HTTP server:

```json
{
  "mcpServers": {
    "runapi": {
      "serverUrl": "https://mcp.runapi.ai/mcp"
    }
  }
}
```

1.  Save the file, refresh the MCP servers, enable RunAPI, and complete
    authorization in your browser.

If the tools do not appear, open the MCP settings, confirm RunAPI is
enabled, and reconnect it.

## Other MCP clients

Add the endpoint above as a Streamable HTTP server. The client must
support Remote MCP and browser-based OAuth. Complete authorization when
prompted, then enable the RunAPI tools in the client.

## Verify the connection

Ask your client:

> What RunAPI image models are available?

The client should call `list_models` and return available image models.
That confirms the connection and tool dispatch are working.

## Use an API key instead

OAuth is the recommended path. Use a dedicated standard API key only for
an unattended client or when OAuth is unavailable; follow the
[Authentication Guide](https://runapi.ai/docs/guides/authentication.md) to create one. Never
put the key in the endpoint URL or commit it to a repository.

* **Claude Desktop:** If Request headers are available for custom
  connectors, add an `Authorization` header with the value `Bearer
  YOUR_API_KEY`.
* **Cursor:** Set `RUNAPI_API_KEY` in the environment visible to the
  Cursor application, then use `Authorization: Bearer
  ${env:RUNAPI_API_KEY}` in the server `headers`. Remote servers do not
  read Cursor `envFile` settings.
* **VS Code:** Reference a password-type `${input:...}` from the server
  `Authorization` header so VS Code prompts for and stores the key
  instead of writing it into `mcp.json`.
* **Windsurf:** Reference `${env:RUNAPI_API_KEY}` or `${file:...}` from
  the `Authorization` header in `~/.codeium/windsurf/mcp_config.json`.

Revoke the key from the API Keys page when the client is retired or the
key may have been exposed.

## Troubleshoot

* Authorization did not finish: reconnect RunAPI from the client and
  complete the browser flow again.
* RunAPI is connected but its tools are missing: confirm the server is
  enabled, remove and add the exact endpoint again, then start a new
  conversation.
* The verification question fails: check the client log described in its
  section above, then reconnect RunAPI before retrying.

Need a client to start RunAPI on your machine instead? [Set up Local
MCP](https://runapi.ai/docs/resources/mcp/local.md).

---

## More from RunAPI

- [Home](https://runapi.ai/.md)
- [Models](https://runapi.ai/models.md)
- [AI Video API Comparison](https://runapi.ai/ai-video-api-comparison.md)
- [OpenClaw Integration](https://runapi.ai/openclaw.md)
- [Best API for OpenClaw](https://runapi.ai/best-api-for-openclaw.md)
- [OpenClaw Image Generation](https://runapi.ai/openclaw-image-generation.md)
- [Hermes Agent Integration](https://runapi.ai/hermes-agent.md)
- [Pricing](https://runapi.ai/pricing.md)
- [Claude API Pricing](https://runapi.ai/claude-api-pricing.md)
- [ChatGPT API Pricing](https://runapi.ai/chatgpt-api-pricing.md)
- [OpenAI API Pricing](https://runapi.ai/openai-api-pricing.md)
- [Gemini API Pricing](https://runapi.ai/gemini-api-pricing.md)
- [Claude Code Pricing](https://runapi.ai/claude-code-pricing.md)
- [Claude Code API](https://runapi.ai/claude-code-api.md)
- [Claude Code vs Cursor](https://runapi.ai/claude-code-vs-cursor.md)
- [Claude Max vs API](https://runapi.ai/claude-max-vs-api.md)
- [Requesty Alternative](https://runapi.ai/requesty-alternative.md)
- [Docs](https://runapi.ai/docs/guides)
- [SDK](https://runapi.ai/sdk.md)
- [Skills](https://runapi.ai/skills.md)
- [MCP Server](https://runapi.ai/mcp.md)
- [CLI](https://runapi.ai/cli.md)
- [Feedback](https://runapi.ai/)
- [Contact](mailto:support@runapi.ai)
- [Terms](https://runapi.ai/terms.md)
- [Privacy](https://runapi.ai/privacy.md)
- [Site index for agents](https://runapi.ai/llms.txt)

Contact: contact@runapi.ai

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/icon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "TechArticle",
    "headline": "Hosted MCP",
    "description": "Connect Claude Desktop, Cursor, VS Code, Windsurf, or another MCP client to RunAPI with OAuth.",
    "url": "https://runapi.ai/docs/resources/mcp/hosted",
    "mainEntityOfPage": "https://runapi.ai/docs/resources/mcp/hosted"
  }
]
```
