# Connect an AI assistant (/docs/agents/connect)



Connect Domino to Claude, ChatGPT, Claude Code, VS Code or Cursor to ask about your projects in plain language: how a campaign is doing, who is waiting for review, where a member stands. The assistant can also try a quest end to end in your test environment with a test member. It never changes your live project.

## Connect [#connect]

### 1. Add Domino's server [#1-add-dominos-server]

Domino's server URL is:

```text
https://mcp.domino.run
```

**Claude or ChatGPT:** add a custom connector (in ChatGPT, an app) with this URL.

**Claude Code:** run this in a terminal, then run `/mcp` in Claude Code and choose `domino` to sign in:

```sh
claude mcp add --transport http domino https://mcp.domino.run
```

**VS Code:** run **MCP: Open User Configuration** from the Command Palette, add Domino under `servers`, and start it. VS Code opens the sign-in the first time.

```json
{
  "servers": {
    "domino": { "type": "http", "url": "https://mcp.domino.run" }
  }
}
```

**Cursor:** add Domino to `~/.cursor/mcp.json`, or to `.cursor/mcp.json` in a project, with Domino's client ID for Cursor. Cursor then lists `domino` on its **Customize** page, where you sign in.

```json
{
  "mcpServers": {
    "domino": {
      "url": "https://mcp.domino.run",
      "auth": {
        "CLIENT_ID": "https://mcp.domino.run/oauth/clients/cursor.json",
        "scopes": ["openid", "profile", "email", "offline_access"]
      }
    }
  }
}
```

### 2. Sign in [#2-sign-in]

The assistant opens Domino's sign-in. Sign in with the account you use for Console, and allow the connection when asked. The assistant then acts as you, with the access you already have.

### 3. Ask a question [#3-ask-a-question]

Start with "List my Domino projects", then ask about one of them, such as "Which submissions in the Launch project are waiting for review?" The assistant reads the test environment unless you ask about live.

> [!DEV]
> The server speaks MCP over Streamable HTTP at `POST https://mcp.domino.run/`, without sessions, and answers JSON. A request without a token gets `401` with `WWW-Authenticate: Bearer resource_metadata="https://mcp.domino.run/.well-known/oauth-protected-resource"`, which names the authorization server. That request does not count against the client, and neither does a token Clerk recognizes but has expired. Once an API server has refused one address 60 times within 10 minutes, for tokens Clerk does not recognize, other refused credentials or unknown paths, it answers that address `429` `rate-limited` with `Retry-After` until the 10 minutes end. Tokens are OAuth access tokens issued for that resource. The tools that list quests, campaigns, offers, submissions, audit events and leaderboard standings answer `items` and `nextCursor`; pass `nextCursor` back as `cursor` for the next page. Submissions, audit events and standings also carry `total`, and standings the board's own fields. `find_member` answers `{ items, total }` with no cursor, `list_projects` `{ projects }`, and `list_analytics_metrics` `{ metrics }`. A submission's `code` comes with `codeSource`: `relay` when Domino wrote it, `evaluator` when the quest's own rejection did.
>
> Directories that list servers can read the tools, with their descriptions and input schemas, without signing in, from the server card at `https://mcp.domino.run/.well-known/mcp/server-card.json`. Calling a tool still needs a token. Clients sign in with an OAuth Client ID Metadata Document; the authorization server offers no dynamic client registration. Cursor registers clients only dynamically or by a fixed client ID, so Domino publishes a metadata document for it at `https://mcp.domino.run/oauth/clients/cursor.json` and that URL is Cursor's client ID. It lists Cursor's web callback and its desktop app's, `http://localhost:8787/callback`. Without `scopes`, Cursor asks for every scope the authorization server lists.

## What the assistant can do [#what-the-assistant-can-do]

**Read, in test and live:**

| Ask about     | What it reads                                                                                                                                                       |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Projects      | Your projects, their live app, and counts of quests, members and pending reviews.                                                                                   |
| Quests        | Status, current release, whether someone paused it, rewards, prerequisites and budgets, including [per-giver caps](/docs/build/trackers#cap-what-each-giver-gives). |
| Campaigns     | Each campaign's window, whether members must enroll, and its quests.                                                                                                |
| Submissions   | Status, why one is waiting, and what the member sent.                                                                                                               |
| Members       | Find by ID, name or email; accounts, point balances, groups and progress.                                                                                           |
| Leaderboards  | Standings.                                                                                                                                                          |
| Offers        | Cost in points, stock and redemptions.                                                                                                                              |
| Usage         | Active members this month against your plan's limit.                                                                                                                |
| Analytics     | One metric from Domino's analytics catalog over a range, by day or week.                                                                                            |
| Audit history | Reviews, reward changes, configuration, and actions as test members.                                                                                                |

**Change, in test only:**

* **Create test members** to try your quests.
* **Act as a test member**, submitting a quest through the same checks and rewards a real member gets.
* **Reset a test member**, deleting them and everything they did. This can't be undone.
* **Review a submission** waiting for review: accept it, which awards its rewards, or reject it, with a reason the audit history keeps.
* **Delete a submission's evidence**, the photo, text, link or quiz answers a member sent, once the submission is decided, with a reason the audit history keeps. The submission keeps its outcome and rewards. This can't be undone.

## What it can't do [#what-it-cant-do]

* **No live changes.** Every change in live is refused: publishing, reviews and member changes in live happen in Console.
* **No more than you can.** Your roles apply. Test members need permission to publish, and reviewing needs the review permission.
* **No administration.** It can't publish quests, award points, deploy, or change who has access.
* **No billing.** Usage shows numbers only. Plans and billing are in Console.

## Revoke access [#revoke-access]

Remove the Domino connector in Claude or ChatGPT, or the `domino` server in Claude Code (`claude mcp remove domino`), VS Code or Cursor, to disconnect it. Domino verifies the connection's token on every request, so a revoked token stops working at once.

Your access follows your organization membership. When an organization admin removes you, or changes your project roles in Console, the assistant's next request uses your new access.

> [!DEV]
> Each tool call reaches the management API as you, with the same membership checks and permission grants as Console and the administration limits of a CLI session. Every change in live is refused with `403` `console-approval-required`, including the few a `domino login` session may make there; see [what each credential may do in live](/docs/concepts/access#what-each-credential-may-do-in-live).
