Asana MCP server

Endpoint: https://mcp.asana.com/v2/mcp · Authentication: Sign in with OAuth

Asana's hosted MCP server connects assistants to tasks, projects, teams, comments, and work-management context.

How do I authenticate?

Add the endpoint in your client, start Connect or Sign in, approve the requested scopes, and return to the client. OAuth discovery finds the authorization server; client registration requirements vary by provider. Follow the provider guidance and client setup below.

Authentication and connection guide

Connection specification

Remote endpoint
https://mcp.asana.com/v2/mcp
Browser access
Not yet measured
Declared MCP transport
Streamable HTTP
Live-validated MCP transport
Not yet verified — Latest validation did not verify a transport
Declared authentication
OAuth 2.1
Detected authentication
OAuth 2.1 detected or retained from publisher evidence
Protocol lifecycle
Not yet negotiated
Authorization server
https://app.asana.com

Product documentation · Official listing documentation

Provider guidance

  • OAuth clients must be pre-registered with Asana client credentials; the server does not advertise Dynamic Client Registration.

More Project Management MCP servers · Browse all MCP servers · Test this endpoint in the MCP Playground

Authorization setup

Hosted mcptest operator setup required

A user-created Asana app and secret work with documented supported clients that can protect the secret. Hosted mcptest cannot accept the secret in the browser or use that app automatically; Retry remains unavailable until the mcptest operator configures a confidential binding server-side.

Publisher evidence reviewed .

Client ID
Required
Client secret
Required — never enter it in a browser
Browser/public client
Not supported

Required non-secret settings

App type
MCP app (required)
App name
A recognizable integration name (required)
Distribution
Specific test workspaces or any workspace (required)
Scope
Omit scope or use default (optional)

Callback URIs

  • https://mcptest.io/oauth/callback
  • http://localhost:8080/callback
  • cursor://anysphere.cursor-mcp/oauth/callback
  • http://127.0.0.1:33418/
  • https://vscode.dev/redirect
  • http://localhost:3334/oauth/callback

Provider setup steps

  1. Create a new application in the Asana developer console and select MCP app as the app type.
  2. Give the app a recognizable name and retain its client ID in protected configuration.
  3. Register the exact callback URI for the client that will perform authorization.
  4. Under Manage distribution, select specific workspaces and add each test workspace, or select any workspace.
  5. Use the app and secret with a documented supported client that can protect the secret; creating the app alone does not enable hosted mcptest.
  6. For hosted mcptest, its operator must configure the client ID and secret as a confidential server-side binding before Retry becomes available; never paste the secret into mcptest in a browser.

Open provider setup or application page

Publisher documentation

Connect it

Live-validated endpoint: https://mcp.asana.com/v2/mcp · Streamable HTTP. Hosted mcptest operator setup required: A user-created Asana app and secret work with documented supported clients that can protect the secret. Hosted mcptest cannot accept the secret in the browser or use that app automatically; Retry remains unavailable until the mcptest operator configures a confidential binding server-side.

Agent prompt for Claude Code or Codex
Add the Asana MCP server to my MCP client configuration and verify that it works.

What it is: Asana's hosted MCP server connects assistants to tasks, projects, teams, comments, and work-management context.
Server URL: https://mcp.asana.com/v2/mcp
Transport: Streamable HTTP (remote MCP server, no local install).
Authentication: OAuth 2.1. Hosted mcptest operator setup required: A user-created Asana app and secret work with documented supported clients that can protect the secret. Hosted mcptest cannot accept the secret in the browser or use that app automatically; Retry remains unavailable until the mcptest operator configures a confidential binding server-side.
Tools: not yet observed by mcptest; tools/list will show them.
Reference: https://mcptest.io/servers/asana/

Steps:
1. Work out which MCP client I use (Claude Code, Codex, Cursor, VS Code or another) and add the server under the name "asana" in that client's MCP configuration, user scope unless I ask otherwise.
   Claude Code: claude mcp add --transport http --scope user --client-id "${ASANA_CLIENT_ID}" --client-secret --callback-port 8080 'asana' 'https://mcp.asana.com/v2/mcp'
   Other clients: use the setup for that client on the reference page.
2. Never write a credential value into a file that could be committed; reference an environment variable or the client's secret store, and ask me for any value you need.
3. Verify: connect to the server and call tools/list. Confirm the tools above are listed, and report any sign-in step I still have to complete.
MCP client

Claude Code setup

Run in a terminal. This user-scoped entry is available across projects.

claude mcp add --transport http --scope user --client-id "${ASANA_CLIENT_ID}" --client-secret --callback-port 8080 'asana' 'https://mcp.asana.com/v2/mcp'
  • Register this exact Claude Code redirect URL: http://localhost:8080/callback.
  • The bare --client-secret option opens Claude Code's masked prompt; the secret is stored securely instead of appearing in the command or configuration file.

Codex CLI setup

Add to ~/.codex/config.toml. This publisher-documented bridge requires Node.js, which serializes the OAuth client information at execution time.

[mcp_servers.asana]
command = "node"
args = [
  "-e",
  "const { spawnSync } = require(\"node:child_process\"); const [endpoint, callbackPort, resource] = process.argv.slice(1); const clientInfo = JSON.stringify({ client_id: process.env[\"ASANA_CLIENT_ID\"], client_secret: process.env[\"ASANA_CLIENT_SECRET\"] }); const result = spawnSync(\"npx\", [\"-y\", \"mcp-remote@latest\", endpoint, callbackPort, \"--static-oauth-client-info\", clientInfo, \"--resource\", resource], { stdio: \"inherit\" }); if (result.error) throw result.error; process.exit(result.status === null ? 1 : result.status);",
  "https://mcp.asana.com/v2/mcp",
  "3334",
  "https://mcp.asana.com/v2"
]
env_vars = ["ASANA_CLIENT_ID", "ASANA_CLIENT_SECRET"]
  • Register this exact Codex redirect URL: http://localhost:3334/oauth/callback.
  • This is Asana's publisher-documented mcp-remote compatibility setup. The publisher warns that mcp-remote is experimental community software; review it before use.
  • Store ASANA_CLIENT_ID and ASANA_CLIENT_SECRET in a protected environment or secret manager; never commit their values.

Cursor setup

Add to .cursor/mcp.json for this project, or ~/.cursor/mcp.json for all projects.

{
  "mcpServers": {
    "asana": {
      "url": "https://mcp.asana.com/v2/mcp",
      "auth": {
        "CLIENT_ID": "${env:ASANA_CLIENT_ID}",
        "CLIENT_SECRET": "${env:ASANA_CLIENT_SECRET}"
      }
    }
  }
}
  • Register this exact Cursor redirect URL: cursor://anysphere.cursor-mcp/oauth/callback.
  • Cursor Static OAuth reads the client ID and secret from the named environment variables; never commit either value.

VS Code setup

Run “MCP: Add Server”, choose HTTP, enter this URL and name, then choose Workspace or Global scope. VS Code will prompt for the registered credentials when the server starts.

{
  "servers": {
    "asana": {
      "type": "http",
      "url": "https://mcp.asana.com/v2/mcp"
    }
  }
}
  • Register these exact VS Code redirect URLs: http://127.0.0.1:33418/, https://vscode.dev/redirect.
  • Start the server after adding it. VS Code detects that Dynamic Client Registration is unavailable and natively prompts first for the client ID and then for the client secret; it stores the credentials securely and manages token refresh.

Claude setup

Add the endpoint above in Claude:

  • Customize > Connectors > Add custom connector
  • Team/Enterprise: Organization settings > Connectors > Add > Custom > Web

Claude Desktop setup

Add the endpoint above in Claude Desktop:

  • Remote: Customize > Connectors (same as claude.ai)
  • Local: Settings > Developer > Edit Config, or Settings > Extensions for .mcpb files
  • ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), local servers only

ChatGPT setup

Add the endpoint above in ChatGPT:

  • ChatGPT web: Plugins > Add custom MCP server, then configure authentication and accept the risk warning

Windsurf setup

Add the endpoint above in Windsurf:

  • ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows), serverUrl or url
  • Cascade panel > ... > MCPs > Open MCP config file

Gemini CLI setup

Add the endpoint above in Gemini CLI:

  • gemini mcp add --transport http <name> <url>
  • ~/.gemini/settings.json (user) or .gemini/settings.json (project), mcpServers

MCP SDK setup

Add the endpoint above in MCP SDK:

  • Programmatic: new Client(...).connect(new StreamableHTTPClientTransport(url))

Notes for every client

  • Provider setup: Create a new application in the Asana developer console and select MCP app as the app type.
  • Provider setup: Give the app a recognizable name and retain its client ID in protected configuration.
  • Provider setup: Register the exact callback URI for the client that will perform authorization.
  • Provider setup: Under Manage distribution, select specific workspaces and add each test workspace, or select any workspace.
  • Provider setup: Use the app and secret with a documented supported client that can protect the secret; creating the app alone does not enable hosted mcptest.
  • Provider setup: For hosted mcptest, its operator must configure the client ID and secret as a confidential server-side binding before Retry becomes available; never paste the secret into mcptest in a browser.
  • Publisher evidence (reviewed 2026-08-24): https://developers.asana.com/docs/connecting-mcp-clients-to-asanas-v2-server
  • Provider guidance: OAuth clients must be pre-registered with Asana client credentials; the server does not advertise Dynamic Client Registration.

Client compatibility

ClientStatusWhy
Claude CodeSupportedClaude Code supports Streamable HTTP servers and OAuth sign-in.
CodexSupportedCodex supports Streamable HTTP servers and OAuth sign-in.
CursorSupportedCursor supports Streamable HTTP servers and OAuth sign-in.
VS CodeSupportedVS Code supports Streamable HTTP servers and OAuth sign-in.
ClaudeSupportedClaude supports Streamable HTTP servers and OAuth sign-in.
Claude DesktopSupportedClaude Desktop supports Streamable HTTP servers and OAuth sign-in.
ChatGPTSupportedChatGPT supports Streamable HTTP servers and OAuth sign-in.
WindsurfPartialWindsurf's documentation does not state support for OAuth with your own client ID.
Gemini CLISupportedGemini CLI supports Streamable HTTP servers and OAuth sign-in.
MCP SDKSupportedMCP SDK supports Streamable HTTP servers and OAuth sign-in.

Computed from this server's validated transport, protocol and authentication against documented client support. Checks the catalog has not observed are not counted.

Similar servers

  • Linear — Remote MCP server for Linear issues, projects, comments, cycles, and roadmap planning context. OAuth 2.1
  • Atlassian — Remote MCP server for Jira, Confluence, Compass, and engineering project context across Atlassian products. OAuth 2.1
  • ClickUp — ClickUp's hosted MCP server connects assistants to tasks, docs, projects, time tracking, and team workflows. OAuth 2.1
  • monday.com — Reads and updates monday.com boards, items, columns, and users. Uses OAuth, with monday.com API tokens also documented; calls count toward monday.com API limits. OAuth 2.1
  • Wrike — Searches, creates, and updates Wrike tasks, folders, and projects and reads reporting data. A Wrike admin creates the OAuth app; each user then signs in. OAuth 2.1
  • Smartsheet — Reads and updates Smartsheet sheets, rows, columns, discussions, workspaces, and reports. Uses OAuth in supported clients, otherwise a personal access token. OAuth 2.1

Guides for this server

Watch this server for breaking changes

Share and embed

Maintain Asana? Embed this badge in your README. It follows the latest catalog validation result and links to this server profile.

mcptest.io: auth required

Latest validation evidence

Validation status
Online when last tested
Validation checked at
Oct 26, 2026 at 2:08 PM
Validation detail
Authentication challenge at https://mcp.asana.com/v2/mcp returned HTTP 401; endpoint was reachable but did not complete an MCP probe; authentication oauth

Tool inventory

Requires authorization; inventory not observed

The catalog validator lists tools only on servers that answer without credentials. Asana asks for OAuth 2.1 sign-in first, so its tools, resources and prompts were not observed. Connect in the Playground with your own credentials to list them.