Labsco
MCP SERVER

asanamcp

by adlio

All of Asana through eight tools: one fetch, one create, one update, and a search that takes real filters — with recursive traversal down a portfolio.

Project & Task Management
Summary
Eight tools instead of forty, and the traversal depth is why it works.

Collapsing Asana's surface into get, create, update, delete, link and two searches keeps the tool list small enough that a model picks correctly. The detail that makes it more than a thin wrapper is depth: one call can walk a portfolio down through its projects and their tasks, which is otherwise a dozen round trips. Just note that delete is irreversible and named plainly.

What it is

A single Rust binary for the Asana API. Rather than a tool per endpoint, it uses a resource type argument — so one fetch tool covers projects, tasks, portfolios, templates, sections, teams, tags and users, and one create tool covers everything you can make.

What you get
  • asana_get — any resource by type and id, with a traversal depth for portfolios and options to pull a task's subtasks, dependencies and comments
  • asana_create for tasks, subtasks, projects, projects from a template, portfolios, sections, comments, status updates, tags and duplicates
  • asana_update and asana_delete, the latter permanent and irreversible
  • asana_link for relationships: task to project, dependencies and the rest
  • asana_task_search with filters on assignee, due date and more
  • asana_resource_search to find a project, template, user or team by name
  • asana_workspaces for what you have access to
  • A default workspace setting, so workspace-scoped calls do not need the id every time
Requirements

An Asana personal access token as ASANA_TOKEN. Set ASANA_DEFAULT_WORKSPACE if you mostly work in one, which removes the workspace id from most calls. Install from Homebrew or from crates.io. The delete tool is permanent, so scope the token to match how much you trust the assistant.

Setup effort

One command plus a key — brew install adlio/tap/asanamcp, then supply credentials