asana-mcp
Provides tools for managing Asana tasks, projects, tags, and custom fields, enabling AI agents to create, update, and search Asana items programmatically.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@asana-mcpCreate a task in the Marketing project to draft the quarterly update"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
asana-mcp
A minimal, zero-destructive MCP server for Asana — built because the official Anthropic/Asana connector is broken.
Why this exists
The official Asana connector surfaced in Claude Code as mcp__claude_ai_Asana__* tools. As of mid-2026 it stopped working — claude.ai's registry returns "Server not found" and Asana's /sse endpoint has been deprecated. There's no ETA on a fix.
Rather than wait, this is a clean TypeScript MCP server using the official asana npm SDK (v3.x) and a Personal Access Token. It gives Claude Code full Asana access with no third-party middleman, no destructive operations, and a minimal dependency footprint.
Related MCP server: MCP Server for Asana
Features
26 tools — 13 read, 13 write, 0 destructive (no delete operations)
Custom field support — set enum, multi-enum, number, text, and date custom fields on create and update
Read-only mode — set
READ_ONLY_MODE=trueto hide all write toolsMinimal deps —
asanaSDK,zod,@modelcontextprotocol/sdk,dotenv
Tools
Category | Tools |
Tasks |
|
Projects |
|
Tags |
|
Misc |
|
Requirements
Node.js ≥ 18
An Asana account with a Personal Access Token
Setup
1. Get an Asana PAT
Go to Asana → Settings → Developer apps → Personal access tokens and create a token.
2. Configure environment
cp .env.example .env
# Edit .env and fill in your values.env:
ASANA_ACCESS_TOKEN=your_token_here
ASANA_WORKSPACE_ID=your_workspace_gid
ASANA_DEFAULT_PROJECT_ID=your_default_project_gid # optional fallback
READ_ONLY_MODE=falseFinding your Workspace GID: Open Asana in a browser and navigate to any project. The URL looks like https://app.asana.com/0/<workspace_gid>/<project_gid>. The first long number after /0/ is your workspace GID. Alternatively, after setup you can call asana_list_workspaces and it will return it.
Note: Always pass
projectexplicitly when creating tasks. If omitted, the server falls back toASANA_DEFAULT_PROJECT_ID.
3. Build
npm install
npm run build4. Register with Claude Code
claude mcp add asana -s user -- node /absolute/path/to/asana-mcp/dist/index.jsOr with env vars inline (if you prefer not to use a .env file):
claude mcp add asana -s user \
-e ASANA_ACCESS_TOKEN=your_token \
-e ASANA_WORKSPACE_ID=your_workspace_gid \
-- node /absolute/path/to/asana-mcp/dist/index.jsRestart Claude Code, then enable via /mcp.
Custom fields
asana_create_task and asana_update_task accept a custom_fields object. Keys are custom-field GIDs; value shape depends on field type:
{
"custom_fields": {
"1234567890000001": "9876543210000001",
"1234567890000002": ["9876543210000002", "9876543210000003"],
"1234567890000003": 42,
"1234567890000004": "plain text",
"1234567890000005": { "date": "2026-12-31" }
}
}Field type | Value |
Single-select enum | Option GID string |
Multi-select enum | Array of option GID strings |
Number | Number |
Text | String |
Date |
|
The field must be enabled on the task's project/portfolio for the API to accept it.
Development
npm run build # tsc → dist/After rebuilding, restart your Claude Code session — stdio MCP servers are spawned at session start and don't hot-reload.
License
UNLICENSED
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dyanko89/asana-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server