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

# Quickstart

> Add Whirl to an MCP client, or make your first API call.

## Connect an MCP client

| | |
| - | - |
| MCP server | `https://api.whirl.sh/mcp` |
| API | `https://api.whirl.sh/api/v1` |

1. Add the MCP server URL above to your assistant. There are [steps for Claude, ChatGPT and Gemini](/connect#install).
2. Sign in to Whirl when the client asks, and approve access.
3. Ask your assistant something like "What's on my Whirl task list?"

On team plans, an admin may need to allow custom servers first. See [Connect with MCP](/connect) for details.

## Use the API

Your app gets a token through the [OAuth authorization-code flow with PKCE](/authentication), with a Whirl user approving access.

### List your workspaces

These examples assume `WHIRL_ACCESS_TOKEN` holds your access token.

```bash theme={null}
curl --fail-with-body \
  -H "Authorization: Bearer $WHIRL_ACCESS_TOKEN" \
  "https://api.whirl.sh/api/v1/workspaces"
```

This needs the `workspace:read` scope. Use the IDs Whirl returns for later calls. A token issued only for `/mcp` won't work for the API.

### See which operations you can call

```bash theme={null}
curl --fail-with-body \
  -H "Authorization: Bearer $WHIRL_ACCESS_TOKEN" \
  "https://api.whirl.sh/api/v1/operations"
```

This lists the operations your token's scopes allow. Each call still checks the user's current access to the workspace or task.

### Call an operation by name

You can also call any operation by name:

```bash theme={null}
curl --fail-with-body \
  -H "Authorization: Bearer $WHIRL_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{}' \
  "https://api.whirl.sh/api/v1/operations/list_workspaces"
```

Put the operation's arguments directly in the JSON body, without an `arguments` or `params` wrapper. See the [API guide](/api) for routes, errors and pagination.

## Next steps

* [Authentication](/authentication): registering your app, PKCE, refreshing and revoking tokens.
* [Scopes](/permissions): what each scope allows.
* [Tasks and approvals](/workflows): starting agents and approving their actions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.