Asana MCP Server
Asana tasks, projects, and workspaces access for your AI assistant.
Data last scanned today · Reviewed yesterday
Overview
This implementation enables AI assistants to interact directly with the Asana API. It allows users to perform operations such as searching for projects within specific workspaces, listing available workspaces, and querying tasks using various filters like completion status, subtasks, or blocking dependencies. The server supports configuration via environment variables, including an optional read-only mode to prevent unintended modifications to workspace data. It is designed to work with standard MCP clients, including the Claude Desktop application.
Our verdict
With a high-risk security score of 30/100, this server should be used with caution. The primary concern is the lack of a dedicated authentication method, meaning anyone with access to the configuration can utilize the server. Additionally, it is a community-maintained project rather than an official vendor tool, and it has not undergone editorial review. Users should prioritize enabling the read-only mode to mitigate risks associated with write operations.
- Includes an optional read-only mode to restrict write access
- Small dependency footprint with only three direct dependencies
- Documented support for advanced task filtering options
- Lacks native authentication mechanisms for protected access
- Community-maintained rather than supported by the official vendor
- No official homepage link provided
Setup
{
"mcpServers": {
"mcp-server-asana": {
"args": [
"-y",
"@roychri/mcp-server-asana"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| asana_list_workspaces | List all available workspaces in Asana | low |
| asana_search_projects | Search for projects in Asana using name pattern matching | low |
| asana_search_tasks | Search tasks in a workspace with advanced filtering options | low |
| asana_get_task | Get detailed information about a specific task | low |
| asana_create_task | Create a new task in a project | medium |
| asana_get_task_stories | Get comments and stories for a specific task | low |
| asana_update_task | Update an existing task's details | medium |
| asana_get_project | Get detailed information about a specific project | low |
| asana_get_project_task_counts | Get the number of tasks in a project | low |
| asana_get_project_sections | Get sections in a project | low |
| asana_create_task_story | Create a comment or story on a task | medium |
| asana_add_task_dependencies | Set dependencies for a task | medium |
| asana_add_task_dependents | Set dependents for a task (tasks that depend on this task) | medium |
| asana_create_subtask | Create a new subtask for an existing task | medium |
| asana_get_multiple_tasks_by_gid | Get detailed information about multiple tasks by their GIDs (maximum 25 tasks) | low |
| asana_get_project_status | Get a project status update | low |
| asana_get_project_statuses | Get all status updates for a project | low |
| asana_create_project_status | Create a new status update for a project | medium |
| asana_delete_project_status | Delete a project status update | high |
| asana_set_parent_for_task | Set the parent of a task and position the subtask within the other subtasks of that parent | medium |
| asana_get_tag | Get detailed information about a specific tag | low |
| asana_get_tags_for_task | Get a task's tags | low |
| asana_get_tasks_for_tag | Get tasks for a specific tag | low |
| asana_get_tags_for_workspace | Get tags in a workspace | low |
| asana_update_tag | Update an existing tag | medium |
| asana_delete_tag | Delete a tag | high |
| asana_create_tag_for_workspace | Create a new tag in a workspace | medium |
| asana_add_tag_to_task | Add a tag to a task | medium |
| asana_remove_tag_from_task | Remove a tag from a task | medium |
| asana_add_project_to_task | Add an existing task to a project | medium |
| asana_remove_project_from_task | Remove a task from a project | medium |
| asana_delete_task | Delete a task permanently | high |
| asana_create_project | Create a new project in a workspace or team | medium |
| asana_update_project | Update a project's details (name, description, etc.) | medium |
| asana_create_section | Create a new section in a project | medium |
| asana_update_section | Update a section (rename it) | medium |
| asana_delete_section | Delete a section from a project | high |
| asana_add_task_to_section | Move a task to a section within its project | medium |
| asana_get_subtasks | Get all subtasks of a given task. Returns a compact representation of each subtask. | low |
| asana_get_tasks_for_project | Get all tasks in a project. Use this instead of search_tasks when you need to list tasks in a specific project. Works on free Asana plans (unlike search_tasks which requires premium). Supports pagination and optional field selection. | low |
| asana_get_my_tasks | Get tasks from the authenticated user's 'My Tasks' list in a workspace | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›What configuration is required to run the Asana MCP server?
You must provide an ASANA_ACCESS_TOKEN via an environment variable to authorize the server.
›Can I prevent the MCP server from modifying my Asana data?
Yes, you can set the READ_ONLY_MODE environment variable to 'true' to disable all create, update, and delete operations.
›How can I improve the chances of the LLM selecting the right Asana tool?
Mentioning the word 'asana' in your prompt will help the AI identify that it should use the Asana tools.
›Does the server support filtering tasks by their status or attributes?
Yes, the asana_search_tasks tool supports various filters including completed status, resource subtype, subtask status, and attachment presence.
Alternatives
Badge
Maintain this server? Add the live badge to your README.