asana-setup — Claude Code command: connect the Asana MCP server
Walks you through a one-time Asana OAuth app and adds the V2 MCP server to Claude. Useful when you want your agent to reach Asana tasks.
/plugin install asana@claude-plugins-officialWhat asana-setup does
The command prints three steps: register an app in the Asana developer console, add the MCP server, then authenticate and check the result. Pass a Client ID as an argument and it replaces the YOUR_CLIENT_ID placeholder in the command.
The redirect URL has to be exactly http://localhost:8080/callback, and the port in --callback-port must match it. Asana's V2 server has no Dynamic Client Registration, so you supply your own client_id and client_secret.
It will not run claude mcp add for you. The secret goes in through a hidden terminal prompt, which is why you run that line yourself rather than letting the agent do it. The secret is kept in your OS keychain. On first use Claude opens a browser for Asana consent, and /mcp confirms whether asana is connected.
What it helps with
- register an Asana OAuth app with the right redirect
- add the Asana MCP server to Claude
- enter a client secret without leaking it into shell history
- confirm the asana server shows as connected
- recover from an invalid_redirect_uri error
Example prompts for the agent
- Set up the Asana connection for Claude
- Run asana-setup with my client_id
- Show me the steps to add the Asana MCP server
How to install asana-setup
1Plugin marketplace
/plugin install asana@claude-plugins-official2Manually: put the files in place
.claude/commands/asana-setup.mdCall it with /asana-setup. For all projects use ~/.claude/commands/
Manually: put the files in place
~/.codex/prompts/asana-setup.mdCall it with /prompts:asana-setup. Codex marks this format deprecated in favour of skills
Manually: put the files in place
.github/prompts/asana-setup.prompt.mdManually: put the files in place
.gemini/commands/asana-setup.tomlGemini stores commands as TOML: the prompt text goes into the prompt field
Questions about asana-setup
How do I install asana-setup in Claude Code?
From the marketplace: run /plugin marketplace add anthropics/claude-plugins-official, then /plugin install asana@claude-plugins-official.
What does asana-setup do?
It prints the steps for creating an Asana OAuth app and adding https://mcp.asana.com/v2/mcp to Claude, including consent and a check with /mcp.
Why doesn't the command run claude mcp add itself?
The --client-secret prompt needs a hidden TTY prompt, so that line has to be run by hand in your own terminal.
Source text
asana-setup.md · Apache-2.0
--- description: Set up the Asana V2 MCP server connection (one-time OAuth app + claude mcp add) argument-hint: "[client_id]" --- The user wants to connect Claude Code to Asana's V2 MCP server. Guide them through the one-time setup below. Do NOT run `claude mcp add` yourself — the `--client-secret` prompt needs a real terminal (a hidden TTY prompt), so the user must run it in their own terminal. Their Asana OAuth Client ID (if provided): `$1` Print these steps clearly, substituting the Client ID into the command if `$1` is non-empty (otherwise leave the `YOUR_CLIENT_ID` placeholder): ## Step 1 — Create an Asana OAuth app (one time) 1. Open the Asana developer console: https://app.asana.com/0/my-apps 2. Create a new app. 3. Under **OAuth**, add this exact **Redirect URL**: ``` http://localhost:8080/callback ``` 4. Copy the **Client ID** and **Client Secret**. Note: `localhost` is correct — Claude Code is a local client and catches the OAuth callback on your own machine. Asana's V2 server does not support Dynamic Client Registration, so you must bring your own client_id + client_secret. ## Step 2 — Add the server (run this in YOUR terminal) ```bash claude mcp add --transport http \ --client-id YOUR_CLIENT_ID --client-secret \ --callback-port 8080 \ asana https://mcp.asana.com/v2/mcp ``` - `--client-secret` (no value) triggers a hidden prompt; paste the Client Secret there. It is stored in your OS keychain. - The port in `--callback-port` must match the `http://localhost:8080/callback` redirect you registered. ## Step 3 — Authenticate & verify 1. On first use, Claude Code opens your browser for Asana consent — approve it. 2. Run `/mcp` and confirm `asana` shows as **connected**. 3. Test it: ask "list my Asana workspaces". After printing the steps, offer to help troubleshoot if they hit `invalid_redirect_uri` (redirect/port mismatch) or `invalid_client` (wrong id/secret).
© Asana · Apache-2.0 · anthropics/claude-plugins-official