> ## Documentation Index
> Fetch the complete documentation index at: https://www.qovery.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Server

> Connect any MCP-compatible client to your Qovery infrastructure

## Overview

The Qovery MCP Server lets you interact with your Qovery infrastructure from any MCP-compatible client (Claude, Claude Code, ChatGPT, etc.) using natural language.

<Info>
  **What is MCP?** The Model Context Protocol is an open standard developed by Anthropic that allows AI assistants to interact with external tools and systems. [Learn more →](https://modelcontextprotocol.io)
</Info>

<Tip>
  **Want to deploy a new application from source code?** The MCP Server is for managing *existing* infrastructure. To deploy a new application from your codebase using an AI agent, install the [Qovery Agent Skill](/getting-started/quickstart/ai-agent) instead — it works with Claude Code, Cursor, OpenCode, and 30+ AI coding tools. The skill and MCP Server complement each other: use the skill to deploy, then the MCP Server to manage.
</Tip>

## Prerequisites

* **MCP-Compatible Client**: Any MCP-compatible application
* **Qovery Account**: Active account with infrastructure

## Setup

The Qovery MCP Server is accessible at `https://mcp.qovery.com/mcp`. You can find this URL and manage your MCP access in the Console under **Settings > MCP Server**. Choose one of the two authentication methods below to connect your MCP client.

<Tabs>
  <Tab title="OAuth (recommended)">
    If your MCP client supports OAuth, this is the easiest option — no token generation required. The client will handle authentication automatically.

    **Example with Claude Code:**

    ```bash theme={null}
    # Read-only (default)
    claude mcp add --transport http qovery https://mcp.qovery.com/mcp --callback-port 4242

    # Read/write
    claude mcp add --transport http qovery "https://mcp.qovery.com/mcp?read_write=true" --callback-port 4242
    ```

    Refer to your MCP client's documentation for how to configure OAuth with a custom server URL.
  </Tab>

  <Tab title="API Token">
    If your MCP client doesn't support OAuth, generate a Qovery API token and pass it via the URL.

    **Step 1 — Generate a token:**

    <Steps>
      <Step title="Open Qovery Console">
        Go to [console.qovery.com](https://console.qovery.com)
      </Step>

      <Step title="Navigate to Settings">
        Click on the settings icon in your organization
      </Step>

      <Step title="Access API Tokens">
        Go to **API Tokens** section
      </Step>

      <Step title="Generate Token">
        Click "Generate Token" and copy it

        <Warning>
          Save this token securely. You won't be able to see it again!
        </Warning>
      </Step>
    </Steps>

    **Step 2 — Configure your MCP client:**

    Use the following URL format, replacing `your_qovery_token` with your token:

    ```
    # Read-only (default)
    https://mcp.qovery.com/mcp?token=your_qovery_token

    # Read/write
    https://mcp.qovery.com/mcp?token=your_qovery_token&read_write=true
    ```

    You can also pass the token via an `Authorization` header instead:

    If you want to use a Qovery API token, for example to be able to limit the permission of what can be done.
    You can create a token with read/view only permission so you are guaranteed no destructive action can be taken.

    <Tabs>
      <Tab title="Claude Code">
        Configure claude code to add your Qovery token in the HTTP headers

        ```bash theme={null}
        claude mcp add --transport http qovery https://mcp.qovery.com/mcp --header 'Authorization: Token qov_xxxx'
        ```

        ```
        Authorization: Token your_qovery_token
        ```
      </Tab>
    </Tabs>
  </Tab>
</Tabs>

<Info>
  The Qovery MCP Server is also available through the [MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=com.qovery).
</Info>

## Access Modes

| Mode       | Default                | Description                                                                       |
| ---------- | ---------------------- | --------------------------------------------------------------------------------- |
| Read-only  | Yes                    | Can query and list resources (environments, services, deployments, etc.)          |
| Read/write | No (`read_write=true`) | Can also trigger deployments, update configurations, and perform write operations |

<Info>
  The `devops_copilot` tool depends on two settings in your Qovery Console:

  1. **Copilot must be enabled** — if disabled, the tool will not be accessible at all, regardless of your MCP configuration
  2. **Write access must be enabled** — required to use the tool in read/write mode (in addition to the `read_write=true` URL parameter)
</Info>

<Warning>
  Enable write mode only when needed. Prefer read-only mode to limit the blast radius of unintended AI actions.
</Warning>

## Usage Examples

Once connected, you can interact with your infrastructure naturally:

```
"Show me all my environments"
"What services are running in production?"
"List projects in my organization"
```

## Troubleshooting

### MCP Server Not Connecting

**Issue**: Client doesn't show Qovery tools or cannot connect

**Solutions**:

1. Verify the MCP Server URL is correct: `https://mcp.qovery.com/mcp`
2. Check your internet connection
3. Restart your MCP client
4. Contact Qovery Support if the issue persists

### Authentication Errors

**Issue**: "Authentication failed" or "Invalid token" errors

**Solutions**:

1. Verify your API token is correct (check for copy-paste errors)
2. Ensure the token hasn't been revoked or expired
3. Generate a new API token if needed from Qovery Console

## Security Best Practices

<Warning>
  **API Token Security**:

  * Never share your API tokens publicly
  * Don't commit tokens to version control
  * Revoke tokens you no longer need from Qovery Console
  * Use tokens with the minimum required permissions
  * Rotate tokens regularly
</Warning>

### Token Permissions

The API token has the same permissions as the role you selected during creation:

* Can only access resources within your organization
* Respects organization RBAC policies
* All actions are audited in Qovery Console

## Next Steps

<CardGroup cols={2}>
  <Card title="Console Copilot" icon="browser" href="/copilot/console">
    Use the built-in Console Copilot for quick help
  </Card>

  <Card title="Slack Bot" icon="https://mintcdn.com/qovery/Nvnl0g5BHzA0XQmy/images/logos/slack-icon.svg?fit=max&auto=format&n=Nvnl0g5BHzA0XQmy&q=85&s=fa9fe6399994b9124e77f1d1120d41bb" href="/copilot/slack-bot" width="24" height="24" data-path="images/logos/slack-icon.svg">
    Set up the Slack Bot for team collaboration
  </Card>

  <Card title="View Capabilities" icon="list" href="/copilot/capabilities/infrastructure-management">
    Explore everything Copilot can do
  </Card>

  <Card title="Common Tasks" icon="book" href="/copilot/examples/common-tasks">
    Practical examples and use cases
  </Card>
</CardGroup>

## Resources

* **MCP Protocol**: [modelcontextprotocol.io](https://modelcontextprotocol.io)
* **Claude**: [claude.ai](https://claude.ai)
* **Technical Blog**: [How We Built an Agentic DevOps Copilot](https://www.qovery.com/blog/how-we-built-an-agentic-devops-copilot-to-automate-infrastructure-tasks-and-beyond)

<div className="cta-banner">
  <div className="cta-banner-text">
    <h3>Manage your infrastructure and applications with natural language</h3>
    <p className="cta-banner-subtitle">Ask Claude to list environments, check application status, tail logs, or trigger a deploy. All through Qovery's MCP Server. No kubectl needed.</p>
  </div>

  <a href="https://console.qovery.com" className="cta-banner-button">Try Qovery free →</a>
</div>
