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

# Installation

> Install the ai-cmo.dev MCP server and set up your first session.

The ai-cmo.dev MCP server runs as a local stdio process and proxies the ai-cmo.dev API. This page takes you from a clean machine to a verified, responding server.

## Prerequisites

Node.js 20 or later is required. Verify your version:

```sh theme={null}
node --version
```

## Install and connect

<Steps>
  <Step title="Start the ai-cmo.dev web app">
    Start the app locally and keep it running:

    ```sh theme={null}
    cd apps/web
    npm run dev
    ```

    The app listens on `http://127.0.0.1:3000` by default. To point the server at a different instance, set `AICMO_BASE_URL` (see [Environment variables](#environment-variables)).
  </Step>

  <Step title="Add the server to your MCP client">
    Register the server with your client's CLI, or declare it in its config file:

    <CodeGroup>
      ```sh Claude CLI theme={null}
      claude mcp add ai-cmo -- npx -y ai-cmo-mcp
      ```

      ```json JSON config theme={null}
      {
        "mcpServers": {
          "ai-cmo": {
            "command": "npx",
            "args": ["-y", "ai-cmo-mcp"]
          }
        }
      }
      ```
    </CodeGroup>

    <Warning>
      `npx -y` downloads and executes the latest `ai-cmo-mcp` package from npm
      without a prompt. To pin a version, use `npx -y ai-cmo-mcp@<version>` or
      install the package globally and reference the binary directly.
    </Warning>
  </Step>

  <Step title="Authorize in the browser on first run">
    On first use, ai-cmo.dev opens your browser so you can choose a workspace and approve access. No API-key copying is required — the approved credential is written to `~/.ai-cmo/credentials.json` and reused on later runs. See the [authorization guide](authorization) for the full flow.

    To skip the browser flow (for example in CI), set `AICMO_API_KEY`. When set, the device flow is skipped entirely.
  </Step>

  <Step title="Verify the server responds">
    Once authorized, try asking your assistant:

    * Show my ai-cmo.dev score and scoreboard.
    * List the latest recommendations and runs.
    * Ask ai-cmo.dev what I should improve next.

    Each prompt should trigger the matching MCP tool. To verify initialization without contacting the web app, run the [stdio handshake smoke test](troubleshooting#stdio-handshake-smoke-test).
  </Step>
</Steps>

## Environment variables

| Variable         | Default                 | Description                                                                                              |
| ---------------- | ----------------------- | -------------------------------------------------------------------------------------------------------- |
| `AICMO_BASE_URL` | `http://127.0.0.1:3000` | Base URL of the ai-cmo.dev web app                                                                       |
| `AICMO_API_KEY`  | —                       | API key to use instead of the browser authorization flow. When set, the device flow is skipped entirely. |

> The legacy env var names `NOISEMAKER_BASE_URL` and `NOISEMAKER_API_KEY` are still recognized as fallbacks.

Next: browse the [tool reference](tools) for all 10 tools, or follow the [usage examples](usage-examples).
