Agentbrisk
project-management TypeScript

Asana MCP Server

Give AI agents access to Asana tasks, projects, and comments to read and update project work


The Asana MCP Server is a community implementation that gives AI agents read and write access to Asana workspaces, including tasks, projects, sections, comments, and user assignments. It authenticates via a personal access token and exposes the core Asana API surface needed for project management automation and agent-assisted workflow management.

Project management tools hold a specific kind of valuable data: the current state of work, who owns it, what is blocked, what is due. For AI agents that assist with engineering, operations, or any team-based workflow, Asana access means the agent can answer "what's actually going on" without someone having to manually export a task list or describe the project state in a prompt.

The Asana MCP Server makes that access available through the Model Context Protocol. It is a community implementation, Asana has not released an official server, but the available implementations cover the core use cases well enough for practical agent-assisted project workflows.

What the server exposes

The tool surface maps to Asana's core data model:

Workspaces and projects. The agent can list the workspaces your account belongs to and enumerate projects within them. For agents working across multiple teams or initiatives, this overview is the starting point for navigating to specific work. Project metadata includes the project name, owner, and high-level status.

Sections. Asana projects are organized into sections (sometimes called columns in board view). The server can list sections within a project, which lets the agent understand the workflow stages before querying tasks. This context matters for questions like "what's in the review section of the backend project right now".

Tasks. The most-used part of the tool surface. The agent can search for tasks across a workspace, list tasks in a specific project or section, read full task details (description, assignee, due date, tags, custom fields, parent task), create new tasks, and update existing task properties. Task comments are readable and writable too, which means the agent can see the discussion history on a task and add follow-up comments.

Subtasks. Asana supports task hierarchies where tasks have subtasks. The server exposes subtask relationships, so the agent can navigate from a parent task to its children and understand the breakdown of work without losing the hierarchical context.

Users and team members. The agent can retrieve user information including display names and email addresses, which is useful for task assignment and for generating reports by assignee.

Setup

Asana Personal Access Tokens are the simplest auth path and the one most community implementations support.

Generate a Personal Access Token:

Go to the Asana developer console (accessible from your Asana profile menu under "My Settings" then "Apps", or directly at the Asana developer portal). Create a new personal access token, give it a name that identifies its purpose (like "MCP Agent"), and copy the token. You typically cannot retrieve it after this screen.

Install and test:

ASANA_ACCESS_TOKEN=your-token npx -y @roychri/mcp-server-asana

If it starts successfully, the token is valid and the server can reach the Asana API.

Add to Claude Desktop at ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "asana": {
      "command": "npx",
      "args": ["-y", "@roychri/mcp-server-asana"],
      "env": {
        "ASANA_ACCESS_TOKEN": "your-personal-access-token"
      }
    }
  }
}

For Claude Code, add the same block to ~/.claude/mcp.json.

Do not embed the token value directly if this config file is under version control. Use an environment variable reference and set the actual value in your shell environment.

Real use cases

Daily standup prep. The agent can pull all tasks assigned to you across active projects that are due today or overdue, summarize their current state, and flag anything that looks blocked (no recent activity, waiting on dependency). This produces a standup agenda in seconds rather than clicking through multiple project views.

Sprint and project status reporting. "Summarize the current state of the Q2 backend project" is a reasonable agent prompt with Asana access. The agent reads the project, lists tasks by section, notes completion percentages and upcoming due dates, and produces a plain-language summary. For engineering managers running multiple projects, this cuts report preparation time significantly.

Task creation from other contexts. When a bug is found during a code review, when a customer request comes in via Slack MCP, or when a meeting produces action items, the agent can create the corresponding Asana task with the right description, assignee, and due date without switching tools. The task gets created with context from the conversation rather than a minimal title.

Dependency tracking. Complex projects have tasks that depend on other tasks. The agent can query the state of blocking tasks, surface which blocked tasks are now unblocked, and suggest which items are ready to pick up. This kind of dependency awareness is tedious to maintain manually in any project tool.

Retrospective data gathering. At the end of a sprint or project phase, the agent can pull all completed tasks, group them by section or assignee, count what was delivered versus planned, and surface any tasks that were carried over. This is the raw data for a retrospective that would otherwise require manual export and counting.

Comment triage. On active projects with many stakeholders, tasks can accumulate many comments. The agent can read the comment history on specific tasks, summarize the current state of the discussion, and identify action items or open questions that have not been resolved.

Security and access considerations

The personal access token gives the agent the same access your Asana account has. A few things to keep in mind:

The token covers all your workspaces. If your Asana account spans multiple organizations or workspaces, the token does too. There is no scope restriction at the API key level for personal access tokens. Guide the agent with specific workspace or project context in your prompts to avoid accidental cross-workspace operations.

Write access is real. The agent can create tasks, update assignees, and add comments to your live workspace. For write operations, use specific prompts and review what the agent reports doing. Avoid broad instructions like "archive all completed tasks" without understanding exactly what the agent will do.

Keep the token out of version control. If your MCP config file is in a git repository, do not embed the token value. Use an environment variable or a secrets management tool.

Revoke and regenerate if exposed. Asana personal access tokens can be revoked in the developer console. If a token is accidentally committed or exposed, revoke it immediately and generate a new one.

Evaluating the implementation

Because this is a community server, the quality of the implementation matters. The roychri/mcp-server-asana repository is one of the established options in the community, but you should verify its current state before depending on it:

Check the date of the most recent commit. Asana's API changes over time, and an unmaintained server may have outdated tool implementations. Check the open issues for reports of broken tools. Read the README for the complete list of available tools and confirm it covers the Asana objects you need.

If roychri's implementation does not meet your needs, search the MCP server directory and GitHub for alternative Asana implementations. The community has produced several options with different coverage and maintenance levels.

Pairing with other servers

Asana MCP pairs well with communication and development tools. Combined with Slack MCP, the agent can pull task status and post updates to a channel, or create Asana tasks from messages in Slack. Combined with GitHub MCP, the agent can link code changes to Asana tasks, query open issues alongside open tasks, and help maintain the connection between code work and project tracking.

For CRM-adjacent workflows, combining Asana MCP with HubSpot MCP lets the agent move from a closed deal to the corresponding onboarding project, checking both what the customer agreed to and what the team has been assigned to deliver.

Bottom line

The Asana MCP Server gives AI agents access to the kind of project state information that is currently scattered across dashboards, exports, and manual checking. For any team-based workflow where the question "what's actually happening on this project" matters, the server provides a practical answer path without manual navigation.

The community nature of the available implementations deserves your attention during evaluation. Check maintenance status and test the tools against your actual workflows before deploying. Within those due diligence steps, this is a useful addition to any agent setup that touches project management.

Features

  • Search and list tasks within workspaces and projects
  • Read task details including descriptions, assignees, due dates, and custom fields
  • Create new tasks and subtasks
  • Update task properties including status, assignee, and due date
  • Add comments to tasks
  • List projects and sections within a workspace
  • Retrieve team members and user information
  • Authenticates via Asana Personal Access Token

How to set up the Asana MCP Server MCP server

  1. Generate an Asana Personal Access Token from myasana.com/0/my-apps or asana.com developer console
  2. Install the server via npx or clone the roychri/mcp-server-asana repository
  3. Add the server block to your Claude Desktop or Claude Code MCP config
  4. Set ASANA_ACCESS_TOKEN in the env block of the config
  5. Restart your MCP client and verify Asana tools appear in the tool list

Frequently Asked Questions

What is the Asana MCP Server?
The Asana MCP Server is a community-maintained implementation that connects AI agents to the Asana project management API through the Model Context Protocol. It gives agents tools to search tasks, read project state, create work items, update task status, and add comments, covering the core operations you would otherwise do in the Asana interface.
Is the Asana MCP Server official?
No. Asana has not released an official Model Context Protocol server. The available implementations are community projects. The roychri/mcp-server-asana repository is one of the more established options with active maintenance. As with any community server, check the repository's recent activity before depending on it.
How does the Asana MCP Server authenticate?
It uses an Asana Personal Access Token. You generate this in your Asana developer console at the Asana developer page or via your Asana account settings under apps and integrations. The token grants access to all workspaces and projects your Asana account can access, so treat it like a password.
Can the Asana MCP Server write to Asana?
Yes. The server supports creating tasks, updating task fields, adding comments, and other write operations. The personal access token has the same permissions as your Asana account, so write operations affect your live workspace. Use specific, reviewed prompts for write operations and avoid broad instructions like "clean up all incomplete tasks".
Does the Asana MCP Server support custom fields?
The Asana API exposes custom fields on tasks and projects, and most implementations surface them. Whether the specific implementation you use exposes them fully depends on how thoroughly the developer covered the API. Check the tool list after installing to see what custom field access is available.
Can I scope the Asana MCP Server to a specific workspace?
The personal access token covers all workspaces your account belongs to. You can guide the agent to work within a specific workspace or project by naming it in your prompts, but there is no built-in scope restriction at the server configuration level. If you need strict isolation, a dedicated Asana account with access only to the relevant workspace is the safest pattern.
Search