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

# Connect MCP

> Call Aeolo through the remote MCP endpoint.

Aeolo exposes remote MCP at:

```txt theme={null}
POST https://mcp.aeolo.io/mcp
```

## Required headers

```http theme={null}
Authorization: Bearer atok_...
Content-Type: application/json
Accept: application/json, text/event-stream
```

The `Accept` header matters because the endpoint uses Streamable HTTP transport.

## Initialize

```bash theme={null}
curl -sS https://mcp.aeolo.io/mcp \
  -H "Authorization: Bearer $AEOLO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": { "name": "example-agent", "version": "0.1.0" }
    }
  }'
```

## List tools

```bash theme={null}
curl -sS https://mcp.aeolo.io/mcp \
  -H "Authorization: Bearer $AEOLO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {}
  }'
```

Expected tool names:

* `aeo_list_domains`
* `aeo_execute_command`

## Execute an Aeolo command

Start by listing domains with `aeo_list_domains`, then pass the selected ID as `domainId`.

```bash theme={null}
curl -sS https://mcp.aeolo.io/mcp \
  -H "Authorization: Bearer $AEOLO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "aeo_execute_command",
      "arguments": {
        "command": "agent context",
        "domainId": "<domain_id>"
      }
    }
  }'
```

See [MCP Tools](/mcp/tools) for schemas and [Command Execution](/mcp/command-execution) for routing behavior.
