Skip to content

Claude App Setup

How do I connect Claude web, Desktop or Cowork?

Section titled “How do I connect Claude web, Desktop or Cowork?”

Connect through a remote MCP connector, complete OAuth, then verify the account inside Claude. Custom connectors work on Free, Pro, Max, Team, and Enterprise. Free allows one. Anthropic documents connector availability. Paid plans can also install plugins in Claude web, Desktop’s Chat tab, and Cowork. See plugin availability. The Controller AI plugin bundles the same endpoint and eleven skills.

In the Controller AI app: open Connect and find Set up your coding agent. Select the copy icon beside the prompt to copy instructions for a coding assistant. That prompt does not create a Claude connector. cai agent setup links to manual instructions for Claude and Cowork. Neither is an accepted --client value. If you work in a terminal, follow Claude Code setup instead.

On an individual account, open Customize → Connectors → + → Add custom connector. Name it Controller AI, enter the URL below, select Add, then select Connect. Leave the optional OAuth Client ID and Client Secret blank. Follow Anthropic’s connector steps.

SettingValuePurpose
Server URLhttps://mcp.getcontroller.ai/mcpController AI’s remote endpoint.
TransportStreamable HTTPCarries remote tool calls.
AuthenticationOAuthOpens browser authorization.

On Team or Enterprise, an owner adds it under Organization settings → Connectors → Add → Custom → Web. Members then select Customize → Connectors → Connect. Enable it per conversation through + → Connectors. See organization and conversation controls. Sign in through the browser. Do not paste a Claude or Controller AI API key into these fields.

Open Cowork first, then open Customize → Plugins → Personal plugins → + → Add marketplace → Add from a repository. The same plugin controls also serve web chat and Desktop Chat. Anthropic documents these controls. Enter Controller-AI/controllerai-claude-plugin, browse that marketplace, and install controllerai.

Installing the plugin does not authorize the account on its own. Open Controller AI plugin details → Connectors, select Connect for controllerai, and complete OAuth. Then start a fresh Cowork task. If repository installation is unavailable, use the custom connector above. The remote guides below provide the instructions.

Allow full access appears only when Claude requested controller:full. Continue read-only appears only when Claude requested controller:read. If the choice you need is unavailable, change the host’s requested scope and reconnect. The consent screen cannot grant access that was not requested. See Assistant access and security.

Next choose My Controller account → Continue or Separate agent account → Use agent account. The separate option creates or continues an assistant account with no email and no password. Choosing it again can reuse that identity. For your existing account, Connect your Controller account displays the signed-in email. Check it before selecting Connect account.

In the enabled conversation or Cowork task, call account_status with {}. Inspect user, account.kind, account.accessMode, and grantedScopes. The value credentialKind: "host-managed-oauth" describes Claude’s grant. A local CLI login proves a different credential.

account.kind is member, agent, or claimed. An unclaimed agent returns user.email: null. Unconfirmed member emails are also hidden, so a null email alone does not prove the wrong account. Compare the kind and the user and organization details you can see with the identity selected during consent.

For agent, explain the limited allowance in usage.planAllowanceCents, then offer optional claiming. Call account_claim_start with the owner’s email. Then call account_claim_verify with the six-digit code they receive. Both require controller:full and fail on /mcp/readonly. Claiming removes the unverified cap and enables email recovery. Rerun account_status to verify claimed.

How do I fetch guidance and verify access?

Section titled “How do I fetch guidance and verify access?”

Ask Claude to call guide_list with {}, then guide_get with name: "controllerai-start". The list reports names, versions, and reference paths. Fetching a guide returns instructions and references from the server bundle, and installs no local files. MCP stores no workflow pin. Scoped calls need an explicit workflowId, and you supply instruction and file content inline rather than as local paths.

In the app: open Agents. You have no agents yet is a valid empty inventory, and that screen has no search control. Otherwise, search for Support helper. All agents includes shared agents, while ownership: "mine" below returns only your own.

For an independently connected CLI, these commands report the CLI’s identity and its matching agents. They are account-level, so they assume no workflow pin and need no --workflow flag:

Terminal window
cai auth status --json
cai agent list --ownership mine --search "Support helper" --json

In Claude, use agent_list with ownership: "mine" and search: "Support helper". Report names and IDs, and create nothing. An empty result is valid, because Support helper is a teaching example rather than an account default.

For web chat, check + → Connectors. If a Desktop connector has the wrong URL, remove it under Customize → Connectors and add it again, because custom connectors cannot be edited. To repeat authentication, disconnect it there. See Claude’s removal and permission controls. For Cowork, reconnect in the plugin details and start a fresh task.

If Controller’s account-link screen shows the wrong email, open the Controller app and choose user menu → Log out. Sign in to the intended account, then restart the connection from Claude. If it says This connection request is no longer valid, start a new connection from Claude. After a repair, repeat account_status and the inventory.

Next: build Support helper, then use Skills and updates for maintenance.