Install the MCP server

Connect the Tap & Scale MCP server to Claude Code, a claude.ai connector, or Codex.

The MCP server lives at /api/mcp on your app's origin. Authentication is OAuth 2.1 — there is no token to mint, copy, or store. Every client discovers the authorization server from the endpoint and sends you to a browser to approve. A headless agent with no browser sends a tsk_ API key as the Bearer instead — see Authentication & scopes.

Personal access tokens (asa_…) were removed. If you have an older asa_ token in a config file, delete the header — it no longer authenticates anything.

An OAuth session is always workspace-scoped with write access: every account in the workspace, setup tools, proposals, and approvals.

Add the server

Install the plugin bundle — it ships the asa_* tools plus setup / audit / optimize / report / approvals slash commands:

claude --plugin-url https://your-app-domain/api/mcp/plugin.zip

Or add just the server, without the plugin:

claude mcp add --transport http tapandscale https://your-app-domain/api/mcp

Either way, run /mcp and authorize tapandscale in the browser on first use.

Use the Copy MCP install command item in any page's "Copy page" menu to get this line with your real origin already filled in.

First calls

List accounts and grab a projectId before anything account-specific — a session reaches the whole workspace, so account-scoped tools need to be told which account you mean:

// 1. Which accounts are in this workspace?
asa_list_ad_accounts()
// → { ok: true, accounts: [{ projectId: "…", name: "…", asaOrgId: "…" }, …] }

// 2. Then pass projectId to account-scoped tools:
asa_get_optimization_plan({ projectId: "…" })

Setup is drivable over MCP up to the credential step: connection status, discover/import orgs, trigger and inspect syncs, set targets. The credentials themselves must be pasted by a human in the settings page — there's no OAuth consent screen for Apple's Campaign Management API. See Connect an account.

On this page