---
title: Capawesome MCP Server
description: Connect Claude, Cursor, VS Code, and any MCP client to the Capawesome documentation and Capawesome Cloud with the official MCP server.
---

# Capawesome MCP Server

The Capawesome MCP server connects your AI assistant to Capawesome — the documentation and blog, and your [Capawesome Cloud](../../cloud/index.md) apps, builds, deployments, and devices. It implements the [Model Context Protocol](https://modelcontextprotocol.io){:target="_blank"}, so it works with Claude Code, Claude Desktop, Cursor, VS Code, and any other MCP client.

It's hosted by us — there's nothing to install and nothing to keep up to date:

```
https://mcp.capawesome.io/mcp
```

On its own, the server exposes documentation search, so your assistant answers from the current docs instead of stale training data. Add your API token and enable the Cloud tools, and it also exposes the Capawesome Cloud management surface: trigger an app build, ship a live update, roll back a channel, or diagnose a failed job — without leaving the conversation.

## Authentication

The documentation tools work without authentication. Everything else requires an [API token](../../cloud/accounts/tokens.md), sent as a bearer token in the `Authorization` header. Create one in the [Capawesome Cloud Console](https://console.cloud.capawesome.io/settings/tokens){:target="_blank"} — the token is shown only once, so copy it right away.

A token acts on behalf of the account that created it, so the server can do whatever you can do across your organizations and apps. Requests go through the same [Cloud API](../../cloud/api.md) as the CLI, which means the same permissions, [network restrictions](../../cloud/organizations/network-restrictions.md), and rate limits apply.

!!! warning "Keep tokens secret"

    Never commit a token to version control. Store it in a secret manager or an environment variable, and revoke it in the Console if it might have leaked.

## Setup

### AI-Assisted Setup (Recommended)

The fastest way to connect the server is with an AI coding assistant. First, add the [Capawesome skills](https://github.com/capawesome-team/skills){:target="_blank"} to your project:

```bash
npx skills add capawesome-team/skills --skill capawesome-mcp
```

Then use the following prompt in your preferred AI tool (e.g. [Claude Code](https://www.anthropic.com/claude-code){:target="_blank"}, [Cursor](https://www.cursor.com/){:target="_blank"}, or [GitHub Copilot](https://github.com/features/copilot){:target="_blank"}):

```
Use the `capawesome-mcp` skill from `capawesome-team/skills` to help me set up the Capawesome MCP server in my project.
```

The assistant will pick the [toolsets](#toolsets) you need, walk you through creating an [API token](../../cloud/accounts/tokens.md), write the configuration for your MCP client, and verify that the tools are available.

### Manual Setup

If you prefer to set things up manually, add the server to your MCP client and restart it. The examples use `?toolsets=all`, which registers the documentation tools plus — once you add a token — the Capawesome Cloud tools. Replace `YOUR_TOKEN` with your API token, or drop the `Authorization` header for documentation tools only.

=== "Claude Code"

    Run the following command in your project:

    ```bash
    claude mcp add --transport http capawesome "https://mcp.capawesome.io/mcp?toolsets=all" \
      --header "Authorization: Bearer YOUR_TOKEN"
    ```

    Add `--scope user` to make the server available in every project instead of just the current one.

=== "Claude Desktop"

    Go to **Settings → Connectors → Add custom connector** and enter:

    - **Name**: `Capawesome`
    - **URL**: `https://mcp.capawesome.io/mcp`

    The same connector works on [claude.ai](https://claude.ai){:target="_blank"}. It cannot send an `Authorization` header, so it gives you the documentation tools only.

    To reach the Capawesome Cloud tools as well, start the server through [`mcp-remote`](https://www.npmjs.com/package/mcp-remote){:target="_blank"} instead. Add the following to your `claude_desktop_config.json` (open it via **Settings → Developer → Edit Config**):

    ```json
    {
      "mcpServers": {
        "capawesome": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-remote",
            "https://mcp.capawesome.io/mcp?toolsets=all",
            "--header",
            "Authorization:${AUTH_HEADER}"
          ],
          "env": {
            "AUTH_HEADER": "Bearer YOUR_TOKEN"
          }
        }
      }
    }
    ```

    The header value comes from `env` because a header with spaces isn't passed through reliably on the command line.

=== "Cursor"

    [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=capawesome&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmNhcGF3ZXNvbWUuaW8vbWNwP3Rvb2xzZXRzPWFsbCJ9)

    The badge installs the server without a token. To add one, or to set things up by hand, add the following to `.cursor/mcp.json` in your project, or to `~/.cursor/mcp.json` to use the server everywhere:

    ```json
    {
      "mcpServers": {
        "capawesome": {
          "url": "https://mcp.capawesome.io/mcp?toolsets=all",
          "headers": {
            "Authorization": "Bearer YOUR_TOKEN"
          }
        }
      }
    }
    ```

=== "VS Code"

    [Install in VS Code](https://insiders.vscode.dev/redirect/mcp/install?name=capawesome&config=%7B%22name%22%3A%22capawesome%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.capawesome.io%2Fmcp%3Ftoolsets%3Dall%22%7D){:target="_blank"}

    The link installs the server without a token. To add one, or to set things up by hand, add the following to `.vscode/mcp.json` in your project:

    ```json
    {
      "servers": {
        "capawesome": {
          "type": "http",
          "url": "https://mcp.capawesome.io/mcp?toolsets=all",
          "headers": {
            "Authorization": "Bearer ${input:capawesome-token}"
          }
        }
      },
      "inputs": [
        {
          "id": "capawesome-token",
          "type": "promptString",
          "description": "Capawesome Cloud API token",
          "password": true
        }
      ]
    }
    ```

    VS Code prompts for the token the first time the server starts and stores it securely, so the file stays safe to commit.

=== "Windsurf"

    Add the server to `~/.codeium/windsurf/mcp_config.json`:

    ```json
    {
      "mcpServers": {
        "capawesome": {
          "serverUrl": "https://mcp.capawesome.io/mcp?toolsets=all",
          "headers": {
            "Authorization": "Bearer YOUR_TOKEN"
          }
        }
      }
    }
    ```

=== "Zed"

    Add the server to your Zed `settings.json`:

    ```json
    {
      "context_servers": {
        "capawesome": {
          "url": "https://mcp.capawesome.io/mcp?toolsets=all",
          "headers": {
            "Authorization": "Bearer YOUR_TOKEN"
          }
        }
      }
    }
    ```

=== "Any client"

    Clients that cannot connect to a remote server over HTTP can run the [`@capawesome/mcp`](https://www.npmjs.com/package/@capawesome/mcp){:target="_blank"} package, which proxies stdio to the hosted server:

    ```json
    {
      "mcpServers": {
        "capawesome": {
          "command": "npx",
          "args": ["-y", "@capawesome/mcp"],
          "env": {
            "CAPAWESOME_TOKEN": "YOUR_TOKEN",
            "CAPAWESOME_MCP_TOOLSETS": "all"
          }
        }
      }
    }
    ```

    Requires Node.js 22 or later. Omit `env` to use the documentation tools only. The proxy is configured with these environment variables instead of a header and query parameters:

    | Variable | Purpose |
    | --- | --- |
    | `CAPAWESOME_TOKEN` | API token, sent as `Authorization: Bearer`. Optional; without it only the documentation tools are available. |
    | `CAPAWESOME_MCP_TOOLSETS` | Comma-separated toolsets to register, sent as `?toolsets=`. Use `cloud` for every Capawesome Cloud toolset or `all` for everything. Defaults to `docs`. |
    | `CAPAWESOME_MCP_READONLY` | Set to `true` to skip every tool that writes or deletes, sent as `?readonly=true`. |
    | `CAPAWESOME_MCP_URL` | Override the endpoint. For development only. |

Once connected, ask your assistant something like *"Which channels does my app have?"* or *"Why did my last iOS build fail?"* to check that the tools are available.

## Toolsets

By default the server registers just the public `docs` toolset — documentation and blog search, no token needed. To add [Capawesome Cloud](../../cloud/index.md) management, use `?toolsets=all`, which registers the documentation tools alongside every Cloud toolset:

```
https://mcp.capawesome.io/mcp?toolsets=all
```

That's what most setups want — documentation search plus the full Cloud surface. If you don't need documentation search, `?toolsets=cloud` registers the Cloud toolsets on their own.

To register a smaller, sharper set — every tool takes up context in your assistant, and fewer tools makes it pick the right one more often — name the specific toolsets you need, keeping `docs` for documentation search:

```
https://mcp.capawesome.io/mcp?toolsets=docs,cloud-apps,cloud-app-builds,cloud-app-deployments
```

Put the URL in quotes when you pass query parameters on the command line, otherwise your shell interprets them.

Add `?readonly=true` to register read-only tools only. Nothing can then be created, changed, or deleted — a good fit for a shared or unattended setup.

### Documentation

Registered by default. Needs no token.

| Toolset | Tools | Description |
| --- | --- | --- |
| `docs` | 3 | Search the documentation and blog. |

### Cloud

Opt-in with `?toolsets=cloud` (all of them) or by name. Each requires an [API token](../../cloud/accounts/tokens.md). A toolset named `cloud-app-*` acts on a single app, so its tools all take an app ID.

| Toolset | Tools | Description |
| --- | --- | --- |
| `cloud-app-automations` | 5 | Manage [automations](../../cloud/automations/index.md) that build on Git events. |
| `cloud-app-builds` | 5 | Trigger [app builds](../../cloud/native-builds/index.md) and share them. |
| `cloud-app-certificates` | 5 | Manage [signing certificates](../../cloud/native-builds/certificates/index.md) and provisioning profiles. |
| `cloud-app-channels` | 5 | Manage [live update channels](../../cloud/live-updates/channels.md). |
| `cloud-app-configurations` | 5 | Manage [native configurations](../../cloud/native-builds/native-configurations.md). |
| `cloud-app-deployments` | 4 | Deploy builds to channels and app stores, and roll back. |
| `cloud-app-destinations` | 5 | Manage [app store destinations](../../cloud/app-store-publishing/index.md). |
| `cloud-app-devices` | 5 | Inspect devices and control which update they receive. |
| `cloud-app-environments` | 5 | Manage build [environments](../../cloud/native-builds/environments.md), variables, and secrets. |
| `cloud-app-repository` | 3 | Link an app to a Git repository, and see which one it uses. |
| `cloud-apps` | 4 | Create, list, and update apps. |
| `cloud-git` | 6 | Manage the Git connections of an organization and browse their repositories. |
| `cloud-jobs` | 4 | Track, cancel, and diagnose builds and deployments. |
| `cloud-license-keys` | 6 | Manage [license keys](../../cloud/license-keys.md) for Insiders and Enterprise SDKs. |
| `cloud-organizations` | 10 | Identify yourself, list your organizations (and the IDs other tools need), and manage members and invitations. |
| `cloud-teams` | 5 | Manage teams and their apps and members. |

## Tool reference

All 85 tools, grouped by toolset. Each one carries MCP annotations that mark it as read-only or destructive, which is what clients use to decide when to ask you for confirmation before running a tool.

### docs

| Tool | Description |
| --- | --- |
| `search_docs` | Search the Capawesome documentation and blog. |
| `get_doc_page` | Fetch a documentation or blog page as Markdown. |
| `list_blog_posts` | List the 20 most recent posts from the Capawesome blog. |

### cloud-app-automations

| Tool | Description |
| --- | --- |
| `cloud_list_app_automations` | List the automations of an app. |
| `cloud_get_app_automation` | Get a single automation. |
| `cloud_create_app_automation` | Create an automation. |
| `cloud_update_app_automation` | Update an automation. |
| `cloud_delete_app_automation` | Delete an automation. |

### cloud-app-builds

| Tool | Description |
| --- | --- |
| `cloud_list_app_builds` | List builds, filtered by platform or build number. |
| `cloud_get_app_build` | Get a build with its job status and artifact download links. |
| `cloud_create_app_build` | Start a build from a Git ref or a ZIP URL. |
| `cloud_create_app_build_share` | Create a share link with QR code for a build. |
| `cloud_delete_app_build_share` | Revoke a share link immediately. |

### cloud-app-certificates

| Tool | Description |
| --- | --- |
| `cloud_list_app_certificates` | List the signing certificates of an app, including their expiry. |
| `cloud_get_app_certificate` | Get a single certificate. |
| `cloud_create_app_certificate` | Upload a signing certificate and optional provisioning profiles. |
| `cloud_update_app_certificate` | Update the name, passwords, or type of a certificate. |
| `cloud_delete_app_certificate` | Delete a certificate. |

### cloud-app-channels

| Tool | Description |
| --- | --- |
| `cloud_list_app_channels` | List the channels of an app. |
| `cloud_get_app_channel` | Get a single channel. |
| `cloud_create_app_channel` | Create a channel. |
| `cloud_update_app_channel` | Rename, pause, or resume a channel. |
| `cloud_delete_app_channel` | Delete a channel. |

### cloud-app-configurations

| Tool | Description |
| --- | --- |
| `cloud_list_app_configurations` | List the native configurations of an app. |
| `cloud_get_app_configuration` | Get a single native configuration. |
| `cloud_create_app_configuration` | Create a native configuration. |
| `cloud_update_app_configuration` | Update the display name, name, or package name of a native configuration. |
| `cloud_delete_app_configuration` | Delete a native configuration. |

### cloud-app-deployments

| Tool | Description |
| --- | --- |
| `cloud_list_app_deployments` | List deployments, filtered by build, channel, or destination. |
| `cloud_get_app_deployment` | Get a deployment with its job status. |
| `cloud_create_app_deployment` | Deploy a build to a channel or an app store destination. Deploying an earlier build is how you roll back. |
| `cloud_update_app_deployment` | Adjust the rollout percentage of a deployment. |

### cloud-app-destinations

| Tool | Description |
| --- | --- |
| `cloud_list_app_destinations` | List the app store destinations of an app. |
| `cloud_get_app_destination` | Get a single destination. |
| `cloud_create_app_destination` | Connect an App Store Connect or Google Play destination. |
| `cloud_update_app_destination` | Update a destination, such as its Google Play track or release status. |
| `cloud_delete_app_destination` | Delete a destination. |

### cloud-app-devices

| Tool | Description |
| --- | --- |
| `cloud_list_app_devices` | List the devices registered for an app. |
| `cloud_get_app_device` | Get a single device. |
| `cloud_probe_app_device` | Check which live update a device would receive right now. |
| `cloud_update_app_device` | Assign or clear the channel a device is pinned to. |
| `cloud_delete_app_device` | Delete a device. It re-registers on its next sync. |

### cloud-app-environments

| Tool | Description |
| --- | --- |
| `cloud_list_app_environments` | List the environments of an app. |
| `cloud_get_app_environment` | Get a single environment. |
| `cloud_create_app_environment` | Create an environment. |
| `cloud_update_app_environment` | Rename an environment and set or unset its variables and secrets. |
| `cloud_delete_app_environment` | Delete an environment. |

### cloud-app-repository

| Tool | Description |
| --- | --- |
| `cloud_get_app_repository` | Show which repository an app is linked to. |
| `cloud_set_app_repository` | Link an app to a repository. |
| `cloud_delete_app_repository` | Unlink an app from its repository. |

### cloud-apps

| Tool | Description |
| --- | --- |
| `cloud_create_app` | Create an app in an organization. |
| `cloud_list_apps` | List the apps of an organization. |
| `cloud_get_app` | Get a single app. |
| `cloud_update_app` | Update an app. |

### cloud-git

| Tool | Description |
| --- | --- |
| `cloud_list_git_connections` | List the Git connections of an organization. |
| `cloud_get_git_connection` | Get a single Git connection. |
| `cloud_create_git_connection` | Create a token or HTTP(S) Git connection. |
| `cloud_update_git_connection` | Update a Git connection. |
| `cloud_delete_git_connection` | Delete a Git connection. |
| `cloud_list_git_repositories` | Browse the repositories available through a connection. |

### cloud-jobs

| Tool | Description |
| --- | --- |
| `cloud_list_jobs` | List the jobs of an organization, filtered by status. |
| `cloud_get_job` | Get a single job. |
| `cloud_cancel_job` | Cancel a running build or deployment. |
| `cloud_diagnose_job` | Fetch the log tail and an AI failure summary for a job. |

### cloud-license-keys

| Tool | Description |
| --- | --- |
| `cloud_list_license_keys` | List the license keys of an organization. |
| `cloud_get_license_key` | Get a single license key. |
| `cloud_create_license_key` | Create a license key and assign packages to it. |
| `cloud_update_license_key` | Update a license key. |
| `cloud_rotate_license_key` | Rotate a license key. The old key stops working immediately. |
| `cloud_delete_license_key` | Delete a license key. |

### cloud-organizations

| Tool | Description |
| --- | --- |
| `cloud_get_current_user` | Show which account the token belongs to. |
| `cloud_list_organizations` | List the organizations you have access to. |
| `cloud_get_organization` | Get a single organization. |
| `cloud_create_organization` | Create an organization, optionally with a trial code. |
| `cloud_update_organization` | Update an organization. |
| `cloud_list_members` | List the members of an organization. |
| `cloud_delete_member` | Remove a member from an organization. |
| `cloud_list_invitations` | List the pending invitations of an organization. |
| `cloud_create_invitation` | Invite someone to an organization with a given role. |
| `cloud_delete_invitation` | Revoke a pending invitation. |

### cloud-teams

| Tool | Description |
| --- | --- |
| `cloud_list_teams` | List the teams of an organization. |
| `cloud_get_team` | Get a team with its apps and members. |
| `cloud_create_team` | Create a team. |
| `cloud_update_team` | Rename a team and add or remove apps and members. |
| `cloud_delete_team` | Delete a team. |

## Working with secrets

A few tools accept sensitive values — environment secrets, signing certificates, and app store credentials. Anything you pass to a tool becomes part of the conversation and is sent to your AI provider, and it may end up in chat history or logs you don't control.

!!! warning "Use the CLI for production secrets"

    Set production secrets, upload signing certificates, and connect store destinations with the [CLI](../../cloud/cli/index.md) or the [Console](https://console.cloud.capawesome.io){:target="_blank"} instead. Keep the MCP server for reading and for values you'd be fine seeing in a transcript.

## Rate limits

The endpoint is limited to **100 requests per minute per IP**. Requests over the limit are answered with `429 Too Many Requests`; retry after a short wait.

## Privacy

Your IP address is processed for rate limiting only. Queries and tool arguments are not stored, not logged beyond Cloudflare's standard edge logs, and never used for training. Your API token is used to authenticate against the Capawesome Cloud API on your behalf and is not stored by the server. See our [privacy policy](https://capawesome.io/legal/privacy-policy/){:target="_blank"} for details.

## Related servers

- [Capacitor MCP Server](capacitor.md) — the official Capacitor documentation, the official and community plugin list, and the Capacitor posts from the Ionic blog.
- [Ionic Framework MCP Server](ionic-framework.md) — the official Ionic Framework documentation, its component API reference, and the usage examples for Angular, React, Vue and vanilla JavaScript.

## Next steps

- [LLMs](../llms.md) — `llms.txt` files and Markdown endpoints that make the docs readable by any model.
- [Skills](../skills/index.md) — on-demand agent skills that automate migrations and Cloud setup.
- [Editor Rules](../rules.md) — always-on project rules that keep generated code consistent.
