Labsco
MCP SERVER

Asana

by roychri

Run Asana from your client: search a workspace with Asana's own filter vocabulary, build task structure with subtasks and two-way dependencies, move work between sections and projects, and post the weekly status update.

Project & Task ManagementVerified
Summary
Asana's search grammar becomes something you can ask for in a sentence.

asana_search_tasks is the centre of this set: blocked and blocking, section and portfolio membership, five different date axes, all in one call, which turns questions that need a saved search in the UI into a single request. The writes are structured rather than cosmetic — subtasks, dependencies both ways, re-parenting, and section moves that respect position. It is one token's view of Asana, so whatever that token cannot see does not exist here, and deletion of tasks, tags and sections sits in the same set as the reads.

What it is

A server over the Asana API scoped to one access token's workspaces — tasks, subtasks, dependencies, projects, sections, tags and project status updates in 41 tools.

What you get
  • asana_search_tasks carrying Asana's filter language nearly whole: assignee, creator, project, section, tag, team and portfolio membership, is_blocked and is_blocking, has_attachment, and created, modified, due, start and completed windows in both date and datetime form
  • Task structure written rather than only read — asana_create_subtask, re-parenting through asana_set_parent_for_task, and dependencies in both directions with asana_add_task_dependencies and asana_add_task_dependents
  • Batched reads: asana_get_multiple_tasks_by_gid fetches up to 25 tasks in one call
  • Project status updates as first-class objects with a colour, listable, creatable and deletable
  • Membership as positioned moves — a task added to a project or a section with insert_before or insert_after, or removed from a project without being deleted
  • Tags created at workspace level, attached and detached per task, and used as a query axis through asana_get_tasks_for_tag
  • opt_fields on nearly every read, so a response can be trimmed to the fields the answer actually needs
Requirements

ASANA_ACCESS_TOKEN, and an Asana account whose workspaces that token can reach — asana_list_workspaces is the entry point to everything else. The write surface includes asana_delete_task, which the tool itself describes as permanent and not undoable.

Setup effort

One command plus a key — npx -y @roychri/mcp-server-asana, then supply credentials