# atmos mcp start

Use this command to start the Atmos Model Context Protocol (MCP) server. The MCP server exposes Atmos AI tools through the [MCP open standard](https://modelcontextprotocol.io), enabling any compatible AI client — Claude Desktop, Claude Code, VS Code, Cursor, and [many others](https://modelcontextprotocol.io/clients) — to connect to your infrastructure tools.

> ⚠️ Experimental

**Configure MCP**

Learn how to configure MCP server and AI tool settings in your atmos.yaml.

Configuration Reference[Read more](/cli/configuration/mcp)

## Prerequisites

The MCP server must be explicitly enabled in `atmos.yaml`:

```yaml
mcp:
  enabled: true
ai:
  enabled: true
  tools:
    enabled: true
```

The MCP server is **disabled by default**. Enabling AI features alone (`ai.enabled: true`) does not enable MCP.

## Description

The `atmos mcp start` command starts the Atmos MCP server, enabling AI clients to query your infrastructure using Atmos tools.

The server supports two transport protocols:

- **stdio** (default) — Standard input/output for desktop apps like Claude Desktop, VS Code, and Cursor
- **http** — HTTP with Server-Sent Events (SSE) for remote access, shared servers, and CI/CD

## Usage

```shell
atmos mcp start [flags]
```

### Flags

- **`--transport`**
  Transport type: 
  `stdio`
   (default) or 
  `http`
- **`--host`**
  Host to bind HTTP server (HTTP transport only). Default: 
  `localhost`
- **`--port`**
  Port to bind HTTP server (HTTP transport only). Default: 
  `8080`

### Examples

```shell
# Start MCP server with stdio transport (default, for desktop clients)
atmos mcp start

# Start MCP server with HTTP transport
atmos mcp start --transport http

# Start HTTP server on custom host and port
atmos mcp start --transport http --host 127.0.0.1 --port 3000
```

## Transport Modes

- **How it works**
  **stdio (default):**
   Client spawns Atmos as a subprocess; communication over stdin/stdout. 
  **HTTP:**
   Atmos listens on an HTTP port with SSE.
- **Best for**
  **stdio:**
   Desktop apps, local development. 
  **HTTP:**
   Remote access, shared servers, CI/CD.
- **Multiple clients**
  **stdio:**
   No (1:1 with client). 
  **HTTP:**
   Yes.
- **Network exposure**
  **stdio:**
   None. 
  **HTTP:**
   Requires security measures.

### HTTP Endpoints

When running with `--transport http`, the server exposes:

- **`GET /sse`**
  Server-Sent Events stream for client communication.
- **`POST /message`**
  JSON-RPC 2.0 message endpoint.
- **`GET /health`**
  Returns 
  `{"status":"healthy","clients":N}`
  . Use for monitoring and liveness probes.

:::warning HTTP Transport
When using `--transport http`, the server has no built-in authentication. Always add firewall rules, VPN, or a reverse proxy before exposing it on a network. The default **stdio** transport has no network exposure.
:::

## Related
