Asana MCP Server
MCP ServerFreeCreate and manage Asana tasks, projects, and workspaces via MCP.
Capabilities15 decomposed
mcp-native task creation with structured schema validation
Medium confidenceExposes asana_create_task tool through MCP protocol that accepts JSON schema-validated parameters (name, description, assignee, due_date, projects, tags) and translates them into Asana REST API POST requests. Uses TypeScript type definitions and runtime validation to ensure only valid Asana field types are submitted, preventing malformed API calls before they reach Asana's servers.
Implements MCP tool registration with Asana-specific schema constraints (e.g., due_on as ISO8601 string, projects as array of GIDs) rather than generic REST wrapper, enabling AI clients to understand valid parameter combinations without trial-and-error API calls
Tighter validation than raw Asana API SDKs because schema is enforced at MCP protocol layer before reaching Asana, reducing failed requests and API quota waste
workspace-aware task search with multi-field filtering
Medium confidenceImplements asana_search_tasks tool that queries Asana's task search endpoint with filters across workspace, project, assignee, tag, and status fields. Translates MCP parameters into Asana's query syntax (e.g., 'assignee:gid' format) and returns paginated results with task metadata (GID, name, assignee, due date, completion status). Supports both simple text search and structured field-based filtering.
Translates natural MCP filter parameters into Asana's proprietary query syntax (e.g., 'assignee:gid' format) transparently, allowing AI clients to use simple field names without learning Asana's search grammar
More discoverable than raw Asana API because MCP schema explicitly lists available filter fields, whereas Asana's REST API requires reading documentation to know which query operators are valid
project section enumeration and task organization by section
Medium confidenceExposes asana_get_project tool that retrieves full project metadata including sections array with section GIDs and names. Sections are organizational containers within projects that group related tasks. Tool returns section structure enabling AI clients to understand project layout and determine correct section for task placement. Sections are read-only through MCP — creation/deletion not supported.
Exposes sections as part of project metadata rather than separate tool, allowing AI clients to discover section structure in single call and understand project workflow layout
More efficient than separate section-listing tool because sections are included in project metadata, reducing API calls needed to understand project organization
task update with selective field modification
Medium confidenceImplements asana_update_task tool that modifies specific task fields (name, description, assignee, due_date, completed status, custom fields) through Asana's PATCH endpoint. Uses selective field update pattern — only provided fields are modified, leaving others unchanged. Validates field types before submission and returns updated task metadata. Supports both simple fields (name, description) and complex fields (custom fields, assignee).
Implements selective field updates using PATCH semantics rather than full task replacement, allowing AI agents to modify single fields without risk of overwriting other task data
Safer than full task replacement because only specified fields are modified, reducing risk of accidental data loss if AI agent doesn't include all fields in update request
workspace enumeration and multi-workspace navigation
Medium confidenceExposes asana_get_workspaces tool that lists all workspaces accessible to the authenticated user. Returns workspace metadata (GID, name, is_organization) enabling AI clients to discover available workspaces and select correct workspace for subsequent operations. Workspace enumeration is required step before accessing projects or tasks since all Asana entities are scoped to workspaces.
Provides workspace enumeration as dedicated tool rather than requiring users to hardcode workspace GIDs, enabling dynamic workspace discovery for multi-workspace organizations
More flexible than hardcoded workspace GIDs because AI agents can discover available workspaces at runtime and select appropriate workspace for operations
task retrieval with full metadata and custom field expansion
Medium confidenceImplements asana_get_task tool that retrieves complete task metadata including standard fields (name, description, assignee, due_date, completed) and custom fields with their values. Uses Asana's task detail endpoint with field expansion to include related data (assignee details, project info, custom field definitions and values). Returns comprehensive task context enabling AI clients to understand full task state.
Includes custom field expansion in task retrieval, returning both field definitions and values in single call, rather than requiring separate custom field metadata lookups
More complete than basic task retrieval because custom fields are included with values, enabling AI agents to make decisions based on custom metadata without additional API calls
error handling and validation with structured error responses
Medium confidenceImplements error handling layer that catches Asana API errors (4xx, 5xx responses) and validation errors (invalid parameters, missing required fields) and returns structured error responses through MCP protocol. Maps Asana API error codes to human-readable messages and includes error context (which field failed, why) enabling AI clients to understand failure reasons and retry appropriately. Validation happens before API calls to prevent wasted requests.
Validates parameters at MCP schema layer before submitting to Asana API, catching invalid inputs early and reducing failed API calls and quota waste
More efficient than API-first validation because schema validation prevents invalid requests from reaching Asana, reducing API quota consumption and latency
task dependency and blocking relationship management
Medium confidenceExposes asana_add_task_dependency and asana_remove_task_dependency tools that manage task blocking relationships through Asana's dependency API. Translates MCP requests into Asana's dependency endpoint calls, supporting 'blocks' and 'is_blocked_by' relationship types. Validates that both task GIDs exist before attempting relationship creation, preventing orphaned dependencies.
Wraps Asana's dependency API with explicit relationship type parameters ('blocks' vs 'is_blocked_by') in MCP schema, making directionality unambiguous for AI agents that might otherwise confuse blocking semantics
Clearer than Asana's native UI for programmatic dependency creation because MCP schema forces explicit relationship direction, whereas UI can be ambiguous about which task blocks which
project and section structure navigation with resource uris
Medium confidenceImplements asana://project/{gid} and asana://workspace/{gid} resource URIs that expose project metadata (name, description, owner, sections, custom fields) and workspace structure through MCP's resource system. Caches project/workspace data in memory and returns structured JSON containing section lists, allowing AI clients to understand project organization without multiple API calls. Resources are read-only and populated on-demand.
Uses MCP resource URI scheme (asana://project/{gid}) to expose project structure as first-class resources rather than tool outputs, enabling MCP clients to treat Asana projects as navigable entities similar to file system resources
More discoverable than tool-based APIs because resource URIs appear in MCP client UI as browsable resources, whereas tools require explicit invocation and parameter knowledge
task comment and story management with activity tracking
Medium confidenceExposes asana_add_comment and asana_get_task_stories tools that manage task comments (stories) through Asana's stories API. Translates MCP requests into Asana story endpoints, supporting text comment creation and retrieval of full task activity history (comments, field changes, assignments). Returns story metadata including author, timestamp, and comment text, enabling AI clients to understand task discussion context.
Combines comment creation and full story history retrieval in single tool set, allowing AI agents to both log actions and read complete task context including non-comment activity (field changes, assignments) that provides decision history
Richer context than comment-only APIs because story retrieval includes all activity types, not just text comments, enabling AI to understand what changed and why
tag-based task organization and filtering
Medium confidenceImplements asana_add_tag and asana_remove_tag tools that manage task tags through Asana's tag API. Translates MCP requests into Asana tag endpoints, supporting tag addition/removal from tasks. Tags are workspace-level entities that can be used for cross-project organization. Works in conjunction with task search filtering to enable tag-based task discovery and categorization.
Exposes tag operations as separate tools (add_tag, remove_tag) rather than inline task update parameters, allowing AI agents to manage tags independently and combine with search filtering for tag-based workflows
More flexible than inline tag updates because separate tools enable tag management without full task updates, reducing API payload size and allowing tag-only operations
ai-optimized prompt templates for common asana workflows
Medium confidenceProvides three built-in MCP prompts (task-summary, task-completeness, create-task) that guide AI clients through structured workflows for common Asana operations. Prompts are pre-written instructions that help LLMs understand task context, validate task completeness before creation, and summarize task status. Prompts are registered in MCP server and returned via prompts/list endpoint, enabling MCP clients to surface them as suggested workflows.
Implements MCP prompts system to surface Asana-specific workflows as discoverable suggestions in MCP clients, rather than requiring users to manually construct prompts for each Asana operation
More discoverable than generic prompts because they're registered in MCP server and appear in client UI, whereas generic prompts require users to know they exist and manually invoke them
read-only mode enforcement with selective tool disabling
Medium confidenceImplements READ_ONLY_MODE environment variable that dynamically disables write-operation tools (create_task, update_task, add_comment, add_tag, etc.) at server initialization time. When enabled, tool registry excludes mutation tools entirely, and prompts that trigger mutations are hidden. Uses conditional tool registration pattern to enforce access control without runtime checks on every request.
Implements access control at tool registration layer rather than runtime, preventing write tools from appearing in MCP client UI entirely when read-only mode is enabled, rather than accepting requests and rejecting them
More secure than runtime permission checks because tools are completely unavailable to clients, eliminating risk of permission bypass bugs or accidental mutations
asana api token management and authentication bridging
Medium confidenceManages Asana API authentication by accepting personal access tokens or OAuth2 credentials through environment variables (ASANA_TOKEN) and wrapping all Asana API requests with Bearer token authentication. Uses TypeScript Asana SDK or direct HTTP client with Authorization headers. Validates token validity on server startup and fails fast if credentials are invalid, preventing silent authentication failures during tool execution.
Centralizes Asana authentication in wrapper layer that validates tokens at startup and injects Bearer headers into all requests, rather than requiring each tool to handle authentication independently
Simpler than SDK-based approaches because direct HTTP client with Bearer headers requires less dependency management, though less robust than full OAuth2 client libraries
stdio-based mcp protocol transport with request/response marshaling
Medium confidenceImplements MCP server using stdio transport that reads JSON-RPC 2.0 requests from stdin and writes responses to stdout. Uses @modelcontextprotocol/sdk to handle protocol marshaling, request routing, and response serialization. Supports three MCP capabilities: tools (for function calling), prompts (for workflow templates), and resources (for structured data access). Transport is stateless — each request is independent with no session management.
Uses MCP SDK's built-in protocol handling to abstract JSON-RPC marshaling, allowing tool/prompt/resource implementations to focus on business logic rather than protocol details
Simpler than custom JSON-RPC implementation because MCP SDK handles request routing, error serialization, and capability negotiation, reducing boilerplate code
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with Asana MCP Server, ranked by overlap. Discovered automatically through the match graph.
Todoist
** - Full implementation of Todoist Rest API for MCP server
Tasks
** - An efficient task manager. Designed to minimize tool confusion and maximize LLM budget efficiency while providing powerful search, filtering, and organization capabilities across multiple file formats (Markdown, JSON, YAML)
Dart
** - Interact with task, doc, and project data in [Dart](https://itsdart.com), an AI-native project management tool
Task Orchestrator
** - AI-powered task orchestration and workflow automation with specialized agent roles, intelligent task decomposition, and seamless integration across Claude Desktop, Cursor IDE, Windsurf, and VS Code.
Routine
** - MCP server to interact with [Routine](https://routine.co/): calendars, tasks, notes, etc.
@roychri/mcp-server-asana
MCP Server for Asana
Best For
- ✓AI agents (Claude, other LLMs) integrated with Claude Desktop or MCP-compatible clients
- ✓Teams automating task creation from external systems via MCP bridge
- ✓Developers building AI-powered project management workflows
- ✓AI agents needing to understand task state before taking actions
- ✓Automation workflows that filter tasks by multiple criteria
- ✓Non-technical users querying Asana via natural language through AI assistants
- ✓AI agents creating tasks that need to be placed in specific workflow sections
- ✓Automation workflows that route tasks to appropriate sections based on criteria
Known Limitations
- ⚠Requires valid Asana workspace GID and project GID — invalid references fail silently at API level
- ⚠No built-in retry logic for transient API failures — single attempt per request
- ⚠Custom fields beyond standard Asana fields (name, description, assignee, due_date, projects, tags) not supported
- ⚠Asana API rate limits (150 requests/minute) apply — no client-side throttling or queue management
- ⚠Search limited to tasks in accessible workspaces — cross-workspace search not supported
- ⚠Pagination requires manual offset/limit handling — no built-in cursor-based iteration
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
About
Community MCP server for Asana work management platform. Provides tools to create and update tasks, manage projects and sections, search workspaces, and track task dependencies and assignments.
Categories
Alternatives to Asana MCP Server
Are you the builder of Asana MCP Server?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →