MCP server

Note: Cloudfleet AI Agents is the preferred way to connect Claude Code, Codex, GitHub Copilot CLI, Antigravity CLI, Cursor and Kiro CLI to Cloudfleet. Run cloudfleet agents setup to install the Cloudfleet plugin, which includes this MCP server and adds Cloudfleet skills. Configure the MCP server by hand only for agents without plugin support, or if you want only the MCP tools.

The Cloudfleet CLI includes a built-in Model Context Protocol (MCP) server. The server lets AI assistants such as Claude, Cursor, and other MCP-compatible tools interact with your Cloudfleet infrastructure. You can query clusters, inspect Kubernetes resources, and file support tickets through natural language conversations. Cluster and Kubernetes data are read-only. The support ticket tools can create and reply to tickets in your organization.

Prerequisites

Before you use the MCP server, make sure you have:

  • The Cloudfleet CLI version 0.6.30 or later installed and configured
  • At least one authentication profile configured (see CLI authentication)
  • An MCP-compatible AI assistant or IDE

To check your CLI version, run:

bash
cloudfleet --version

Configuration

To enable the Cloudfleet MCP server in your AI assistant, add the following configuration to your MCP settings file.

Edit your Claude Desktop configuration file:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{
  "mcpServers": {
    "cloudfleet": {
      "command": "cloudfleet",
      "args": ["mcp"]
    }
  }
}

Add the server for your user, so it is available in every project:

bash
claude mcp add --scope user cloudfleet -- cloudfleet mcp

The Cloudfleet plugin includes this server, so skip this step if you installed the plugin.

Edit your Cursor MCP configuration file at ~/.cursor/mcp.json:

json
{
  "mcpServers": {
    "cloudfleet": {
      "command": "cloudfleet",
      "args": ["mcp"]
    }
  }
}

Edit your VS Code MCP configuration file at .vscode/mcp.json in your workspace:

json
{
  "servers": {
    "cloudfleet": {
      "command": "cloudfleet",
      "args": ["mcp"]
    }
  }
}

Edit your Windsurf MCP configuration file at ~/.codeium/windsurf/mcp_config.json:

json
{
  "mcpServers": {
    "cloudfleet": {
      "command": "cloudfleet",
      "args": ["mcp"]
    }
  }
}

Edit your Gemini CLI settings file at ~/.gemini/settings.json:

json
{
  "mcpServers": {
    "cloudfleet": {
      "command": "cloudfleet",
      "args": ["mcp"]
    }
  }
}

For other MCP-compatible AI tools, see their documentation for how to configure MCP servers. The server command and arguments are the same:

  • Command: cloudfleet
  • Arguments: ["mcp"] or ["mcp", "--profile", "your-profile-name"]

Using a specific profile

If you have multiple CLI profiles configured for different organizations, specify which profile to use with the --profile flag:

json
{
  "mcpServers": {
    "cloudfleet": {
      "command": "cloudfleet",
      "args": ["mcp", "--profile", "organization-1"]
    }
  }
}

The --profile flag is optional. If you omit it, the CLI uses the default profile.

Available tools

The MCP server exposes the following tools to AI assistants:

Tool Description
who_am_i Returns information about the authenticated user, including user ID, email, name, organization ID, and admin status
clusters_list Lists all Kubernetes clusters in your Cloudfleet organization
clusters_get Returns detailed information about a specific cluster by cluster ID
clusters_fleets_list Lists the Fleets of a cluster with their configuration: enabled cloud providers, capacity limits, constraints, taints, scaling profile, and readiness. Secrets are never returned
clusters_fleets_get Returns the full configuration of one Fleet by cluster ID and Fleet name
clusters_query Queries the Kubernetes API of a cluster directly, with access to any valid Kubernetes API endpoint (for example, /api/v1/namespaces, /apis/apps/v1/deployments)
tickets_list Lists support tickets for your organization, newest first, with status, category, summary, and timestamps
tickets_get Fetches a single support ticket by ID, including the full customer and agent message thread
tickets_create Opens a new support ticket with a category (technical, billing, or general), a markdown body, and optional properties such as cluster_id. You cannot upload attachments over MCP, so paste logs inline instead
tickets_reply Appends a customer reply to an open ticket. Fails if the ticket is closed
tickets_grant_support_access Grants Cloudfleet support staff access to your organization’s resources while the ticket is open. You cannot revoke the access. It ends when the ticket is closed
feedback_send Sends feedback about Cloudfleet to the Cloudfleet team. The team reads it but does not reply, so open a support ticket when you need an answer

Example usage

After you configure the MCP server, you can use prompts like these with your AI assistant:

Cluster management

  • “List all my Cloudfleet clusters”
  • “What is the status of my production cluster?”
  • “Show me the Kubernetes version running on cluster xyz”

Kubernetes queries

  • “List all Pods in the default namespace of my cluster”
  • “Show me the deployments in the production namespace”
  • “What nodes are currently running in my cluster?”
  • “Are there any Pods in a failed state?”

Infrastructure overview

  • “Give me an overview of my Cloudfleet infrastructure”
  • “Which cloud providers are connected to my cluster?”
  • “Show me the resource usage across my clusters”

Support tickets

  • “Open a Cloudfleet technical ticket for cluster prod-eu about load balancer backends draining, and include the latest kubectl describe service output.”
  • “List my open Cloudfleet tickets and summarize the latest reply on each.”
  • “Check ticket 60c72b2f9f1b2c001f8e4d3a and tell me if support has replied.”
  • “Reply to the most recent technical ticket confirming the fix worked.”

For more on how ticket workflows fit together, see the Support tickets documentation.

Multiple organizations

If you work with multiple Cloudfleet organizations, configure a separate MCP server entry for each:

json
{
  "mcpServers": {
    "cloudfleet-org-1": {
      "command": "cloudfleet",
      "args": ["mcp", "--profile", "organization-1"]
    },
    "cloudfleet-org-2": {
      "command": "cloudfleet",
      "args": ["mcp", "--profile", "organization-2"]
    }
  }
}

To work with a specific organization, reference the matching server in your conversations.

Security considerations

The MCP server uses the authentication token of your configured CLI profile and inherits its permissions. Cluster and Kubernetes data are read-only. The server can describe any cluster and namespace that your user or API token can view, but it cannot change cluster state. The support ticket tools can create new tickets and reply to existing ones in your organization. Treat ticket creation as a sensitive action and configure your assistant to confirm before posting on your behalf. Granting support access through tickets_grant_support_access cannot be undone while the ticket is open, so confirm it explicitly as well.

On this page