Bryan Thompson 088bee4070
Migrate Asana plugin to V2 MCP server (#4895)
* Migrate Asana plugin to V2 MCP server

The V1 beta server (https://mcp.asana.com/sse) is deprecated and shuts down
on 2026-08-05. Asana's V2 server (https://mcp.asana.com/v2/mcp) requires each
user to register their own Asana OAuth app and does not support Dynamic Client
Registration. A plugin manifest cannot carry per-user OAuth credentials, so the
bundled MCP server entry is removed in favor of a documented one-time
`claude mcp add` setup (per Asana's official Claude Code instructions).

- Remove dead V1 sse .mcp.json
- Add README with V2 OAuth setup + troubleshooting
- Add /asana-setup slash command to guide the one-time setup
- Update plugin + marketplace descriptions to reference V2

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* plugin-dev: stop using deprecated Asana V1 SSE endpoint in examples

The Asana V1 SSE server (https://mcp.asana.com/sse) is deprecated and shuts
down on 2026-08-05, and Asana V2 is streamable HTTP with manual OAuth — not
SSE with automatic (DCR) OAuth. Replace the Asana SSE examples in the
mcp-integration skill with neutral placeholders so the tutorial no longer
teaches a dead endpoint or implies Asana is a zero-config SSE/OAuth server.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Greg Dardis <86272347+greg-dardis@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-06 13:50:27 -07:00

1.9 KiB

description argument-hint
Set up the Asana V2 MCP server connection (one-time OAuth app + claude mcp add) [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)

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).