# 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** — Streamable HTTP 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 using the Streamable HTTP transport.
- **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:

- **`/` (all methods)** — The MCP endpoint. Handles the full Streamable HTTP protocol -- `POST` for client messages, `GET` to optionally upgrade to a server-initiated stream, `DELETE` to end a session -- all on this single path.
- **`GET /health`** — Returns `{"status":"healthy"}`. 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
