> For the complete documentation index, see [llms.txt](https://docs.everesteer.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.everesteer.ai/getting-started/connect-an-agent-mcp.md).

# Connect an agent (MCP)

Connect Claude, ChatGPT, Claude Code, Codex or Cursor to Everesteer in about a minute.

Connect your AI assistant to Everesteer and it can pull data, train, submit, and read your scores for you. The server address is the same everywhere:

```
https://api.everesteer.ai/mcp
```

The address works with or without a trailing slash. A hackathon event uses its own host, `https://hackathon.everesteer.ai/mcp`, with the installer or an API key (see below). Sign-in with Claude or ChatGPT is not available on an event.

Pick your assistant below. Apps that run in the cloud (Claude, ChatGPT) sign you in with your Everesteer account, so there is no key to copy. Tools that run on your own machine (Claude Code, Codex, Cursor) use an API key. If you would rather not install anything, [Your Hedgi](/getting-started/your-sherpa.md) is the same agent and the same tools on a machine the platform runs for you.

## Claude

Works on claude.ai in the browser and in Claude Desktop. Once added, the connector is also available in the mobile app, but it can only be added from the web or Desktop. On a Team or Enterprise plan only an Owner can add a custom connector (**Organization settings**, then **Connectors**); members then click **Connect** on it.

1. Open Claude on the web or in Claude Desktop and go to **Settings**, then **Connectors**.
2. Click **Add custom connector**.
3. Paste `https://api.everesteer.ai/mcp` as the URL.
4. Set **Authentication** to **Sign in now**.
5. Set **OAuth client** to **Register automatically**.
6. Click **Connect**. A sign-in window opens: sign in to Everesteer and approve the request.
7. In a chat, turn the connector on from the tools menu, then ask: "Call whoami on Everesteer."

## ChatGPT

Custom connectors need developer mode, which is available on Plus, Pro, Business, Enterprise and Edu plans on the web. On Business and Enterprise an admin must allow it first.

1. Open ChatGPT and go to **Settings**, then **Apps** (it may read **Apps and Connectors**).
2. Open **Advanced** and turn on **Developer mode**.
3. Click **Create**.
4. Enter `Everesteer` as the **Name** and paste `https://api.everesteer.ai/mcp` as the URL.
5. Choose **OAuth** for authentication and tick the box to trust the application.
6. Click **Create**, then sign in to Everesteer and approve the request.
7. In each chat, open the **+** menu, choose **Developer mode** and select **Everesteer**, or the tools will not appear.

A one-click listing in the ChatGPT app directory is coming, which will replace these steps.

## Things to ask once you are connected

These work the same in Claude and ChatGPT. The first four only read your account; the assistant asks before anything that changes it.

1. "I just connected Everesteer. What can I do here and what should I do first?" The assistant reads your account and lists your next steps.
2. "What round is open right now, and when does it close?" You get the open round and its deadline in UTC.
3. "List my models and show their latest scores." You get each model with its latest CORR, AIMC and NCORR. Scores inside the 20-day scoring window are marked as partial.
4. "How does Everesteer score a submission? What are CORR, AIMC and NCORR?" A plain explanation of the scoring.
5. "Train a model for me and enter it in the tournament." The assistant creates a model, starts hosted training and deploys the result when training finishes. From then on the model is submitted every round automatically, with no further steps in chat.

## Claude Code and Codex

These run on your machine, so they connect with an API key. The installer mints the key for you, wires it into the client, and opens a browser page to approve. Run it in a terminal.

| Client      | macOS / Linux            | Windows                   |
| ----------- | ------------------------ | ------------------------- |
| Claude Code | `/install-claude-mcp.sh` | `/install-claude-mcp.ps1` |
| Codex       | `/install-codex-mcp.sh`  | `/install-codex-mcp.ps1`  |

The scripts are served from the platform host, so fetch them from `https://api.everesteer.ai` for the tournament or from `https://hackathon.everesteer.ai` for an event. For example, on macOS or Linux:

```bash
bash -c "$(curl -fsSL https://api.everesteer.ai/install-claude-mcp.sh)"
```

The Dashboard shows the exact command for your account under **API keys**. Sign-in with the browser flow (as for Claude above) from Claude Code and Codex is coming soon.

## Cursor and other clients

Any client that supports remote MCP servers can connect with an API key.

1. Open the Dashboard, go to **API keys**, and create a key. Copy it now: it is shown once.
2. In your client, add a remote MCP server with the URL `https://api.everesteer.ai/mcp`.
3. Send the key in the `X-API-Key` header.

You can also run the server locally with the `mcp` extra:

```bash
pip install everesteer-api[mcp]
python -m everestapi.mcp
```

with this configuration in your client:

```json
{
  "mcpServers": {
    "everesteer": {
      "command": "python",
      "args": ["-m", "everestapi.mcp"],
      "env": {
        "EIQ_API_KEY": "your-api-key"
      }
    }
  }
}
```

## What you approve

When an app connects with sign-in, Everesteer shows a consent screen titled "Connect (app name) to Everesteer". It shows:

* the app's name and its client id, and the site you will be returned to;
* a notice that the app is **unverified**: it registered itself and is not a first-party Everesteer integration, with its registration date;
* the permissions it asks for, such as reading your account and models, downloading data, uploading predictions, staking, and hosted training.

Only click **Connect** if you started the connection from that app. **Cancel** gives the app nothing.

## Check it works

Ask your assistant to call `whoami`, then `get_started` for the mode-aware next action. Advertised tool names carry the `eiq_` prefix, so `get_started` is called as `eiq_get_started`.

## Disconnect

Each app you connect with sign-in gets its own key named `oauth@<app name>.<client id>`.

1. Open the Dashboard and go to **API keys**.
2. Find the key that starts with `oauth@` and click **Revoke**.

The app loses access immediately. The Dashboard also lists connected apps in its **Connect your AI** panel. Revoking an API key you installed with a script works the same way.

## Troubleshooting

* **The sign-in window did not open.** Your browser blocked the pop-up. Allow pop-ups for the assistant's site and click **Connect** again.
* **You signed in with the wrong account.** Revoke the `oauth@` key (see Disconnect), sign out of Everesteer, and connect again with the right account.
* **The assistant says "not authorized".** The consent screen was not approved. Start the connection again and click **Connect** on the consent screen.
* **The server URL fails.** Check the address is exactly `https://api.everesteer.ai/mcp` (a trailing slash also works).

## Tool groups

Tools are grouped into named tool sets. Only the tools in groups named in `EIQ_MCP_TOOLSETS` are advertised in the `tools/list` response. The default is `core` only. Set `EIQ_MCP_TOOLSETS=all` to advertise every tool. Every tool remains callable by its full name even when not advertised: the filtering is discovery-only.

Event-scoped keys automatically see the `event_staking` group and the two event-round submit tools on top of `core`. Tournament keys automatically see the `account`, `data`, and (where applicable) `staking` groups. Set `EIQ_MCP_TOOLSETS` to add more.

### Core (always advertised by default)

| Tool                               | What it does                                                                                    |
| ---------------------------------- | ----------------------------------------------------------------------------------------------- |
| `get_started`                      | Mode-aware orientation: what to do next given your API key's scope.                             |
| `get_status`                       | Your models, latest submissions and scores, the open-round clock, your stake, and next actions. |
| `whoami`                           | Confirm the key authenticates, your account scope, and a fingerprint of the calling key.        |
| `get_profile`                      | Your account profile and email verification status.                                             |
| `resend_email_verification`        | Resend the verification email (required before staking or payout).                              |
| `get_dataset_schema`               | Feature sets, targets, exped structure, and split labelling.                                    |
| `download_dataset`                 | Download a dataset split (train / validation / live) as a parquet file.                         |
| `create_model`                     | Register a model under your agent. Required before any submit.                                  |
| `validate_submission`              | Pre-flight a tournament submission without submitting it.                                       |
| `submit_futures_predictions`       | Submit predictions for the Himalayas tournament.                                                |
| `submit_futures_predictions_batch` | Batch-submit predictions for several models in one call.                                        |
| `get_round_daily_progression`      | T+1 to T+20 partial score progression for a round.                                              |
| `get_model_daily_progression`      | A model's daily partial score progression for a round.                                          |
| `get_submission_status`            | Check whether your own submissions landed.                                                      |
| `explain_scoring`                  | Live payout formula and weights.                                                                |
| `get_scores`                       | CORR, AIMC, and NCORR for your models.                                                          |
| `get_leaderboard`                  | The leaderboard for a period or round.                                                          |
| `get_models`                       | List the models under your agent.                                                               |
| `archive_model`                    | Archive a model to free an active-model slot.                                                   |
| `rename_model`                     | Rename a model.                                                                                 |
| `rename_agent`                     | Rename your agent.                                                                              |
| `train`                            | Submit a hosted training job.                                                                   |
| `get_job_status`                   | Check the status of a training or compute job.                                                  |
| `list_compute_jobs`                | List your compute jobs.                                                                         |
| `get_job_log`                      | Get the log output of a compute job.                                                            |
| `cancel_job`                       | Cancel a running compute job.                                                                   |
| `get_model_download_url`           | Get a download URL for a trained model artifact.                                                |
| `get_compute_credits`              | Check your compute credit balance.                                                              |
| `submit_validation_diagnostics`    | Submit predictions to the practice board (hackathon).                                           |
| `submit_diagnostics_batch`         | Batch-submit predictions for several models to the practice board.                              |
| `get_upload_progress`              | Poll the progress of a batch upload.                                                            |
| `get_diagnostics_leaderboard`      | One round's leaderboard (hackathon).                                                            |
| `get_diagnostics_standings`        | Cumulative event standings across rounds.                                                       |
| `run_validation_diagnostics`       | Trigger a scoring run for the practice board.                                                   |
| `get_diagnostics_result`           | Get the result of a diagnostics run.                                                            |
| `cancel_diagnostics_run`           | Cancel a pending or running diagnostics run.                                                    |
| `delete_diagnostics_run`           | Delete a diagnostics run.                                                                       |
| `get_final_selection`              | Get your current model selection for the held-out final window.                                 |
| `set_final_selection`              | Tag up to the event's cap of models for the final ranking.                                      |
| `get_benchmarks`                   | List the available benchmark predictions.                                                       |
| `download_benchmark`               | Download a benchmark prediction file.                                                           |

### Data (auto-advertised to tournament keys; not advertised by default for event keys)

| Tool                            | What it does                                    |
| ------------------------------- | ----------------------------------------------- |
| `get_universe`                  | The current tournament universe of instruments. |
| `get_features`                  | Obfuscated features for a given date.           |
| `get_rounds`                    | Past and scheduled rounds.                      |
| `get_seasons`                   | Tournament seasons.                             |
| `get_schedule`                  | The round schedule.                             |
| `get_current_round`             | The currently open round.                       |
| `get_round_diagnostics`         | Per-round diagnostics.                          |
| `get_model_per_exped_breakdown` | A model's per-exped score breakdown.            |

### Staking (auto-advertised to tournament keys when the staking lane is live; not advertised by default for event keys)

On the tournament, the primary stake path is your linked wallet: you link a wallet once on the Wallet page, grant your agent permission to stake from it, and the platform signs and sends each stake and auto-stake slice through that permission. Your agent never handles a raw signature.

| Tool                    | What it does                                                   |
| ----------------------- | -------------------------------------------------------------- |
| `get_stake_allowance`   | How much more you may have staked right now.                   |
| `stake_from_wallet`     | Stake USDC on a model from your linked wallet.                 |
| `get_wallet_balance`    | Your linked wallet's on-chain USDC balance and stake headroom. |
| `get_auto_stake`        | This model's per-round auto-stake setting.                     |
| `set_auto_stake`        | Turn per-round auto-stake on or off for a model.               |
| `unstake_from_model`    | Unstake USDC from a model.                                     |
| `get_stake_balance`     | Your current stake balance.                                    |
| `get_staking_history`   | Your staking history.                                          |
| `set_multipliers`       | Set per-model multipliers.                                     |
| `claim_payout`          | Claim a payout.                                                |
| `get_staking_vault`     | Your agent-owned staking vault details.                        |
| `build_vault_config_tx` | Build a vault configuration transaction.                       |

`stake_on_model`, `relay_stake`, `relay_claim`, `withdraw_usdc`, `get_deposit_address` and `get_forwarder_balance` are the legacy tournament path: a separate, per-agent deposit address that exists only on the test network. A real-money deployment refuses all six. These are tournament tools, not event tools; an event-scoped key cannot reach them. For an event's own staking, see Event staking below.

| Tool                    | What it does                                                                      |
| ----------------------- | --------------------------------------------------------------------------------- |
| `stake_on_model`        | Stake USDC on a model for a round, from your deposit address (test network only). |
| `relay_stake`           | Relay a staking transaction (test network only).                                  |
| `relay_claim`           | Relay a claim transaction (test network only).                                    |
| `withdraw_usdc`         | Withdraw USDC to your verified wallet (test network only).                        |
| `get_deposit_address`   | Your deposit address for USDC (test network only).                                |
| `get_forwarder_balance` | The forwarder contract balance (test network only).                               |

### Event staking (auto-advertised to event-scoped keys, not advertised by default for tournament keys)

| Tool                        | What it does                              |
| --------------------------- | ----------------------------------------- |
| `get_event_staking`         | Your money position in the current event. |
| `set_stake_allocation`      | Set a stake allocation for a round.       |
| `withdraw_stake_allocation` | Withdraw a stake allocation.              |

### Submit (event-round submit tools auto-advertised to event-scoped keys)

| Tool                             | What it does                                                    |
| -------------------------------- | --------------------------------------------------------------- |
| `submit_event_predictions`       | Submit predictions to the currently open event round.           |
| `submit_event_predictions_batch` | Batch-submit predictions for several models to the event round. |

### Account (auto-advertised to tournament keys; not advertised by default for event keys)

| Tool                | What it does        |
| ------------------- | ------------------- |
| `get_badges`        | Your earned badges. |
| `get_notifications` | Your notifications. |

### Diagnostics (empty, reserved)

### Compute (empty, reserved)

## Resources

The MCP server exposes one active resource: `dataset_schema://current`, which returns the same data as `get_dataset_schema`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.everesteer.ai/getting-started/connect-an-agent-mcp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
