Asana MCP Server
MCP ServerFreeCreate and manage Asana tasks, projects, and workspaces via MCP.
Capabilities14 decomposed
mcp-protocol task creation and mutation with schema validation
Medium confidenceExposes asana_create_task and asana_update_task tools that translate MCP tool call requests into Asana REST API mutations, with built-in JSON schema validation for required fields (name, projects, assignee, due_date, custom_fields). The tool-handler layer validates input against Asana's API contract before dispatching to the asana-client-wrapper, which constructs authenticated HTTP requests and handles response transformation into structured JSON for AI clients.
Implements MCP tool schema validation layer that pre-validates inputs against Asana's API contract before making HTTP requests, reducing round-trip failures and providing AI clients with immediate feedback on malformed requests. Uses TypeScript type definitions to enforce strict input contracts at the tool-handler level.
Tighter validation than raw Asana API clients because schema enforcement happens before network calls, reducing wasted API quota on invalid requests and enabling Claude to self-correct invalid inputs in real-time.
full-text task search with workspace-scoped filtering
Medium confidenceImplements asana_search_tasks tool that queries Asana's search API with optional filters for workspace, project, assignee, and tag. The tool constructs parameterized API requests that leverage Asana's server-side search indexing, returning paginated results with task metadata (gid, name, assignee, due_date, status). Search results are transformed into structured JSON for AI consumption, enabling semantic understanding of task relationships and status.
Wraps Asana's native search API with MCP tool schema, enabling AI clients to perform structured queries without understanding Asana's REST API syntax. Includes optional multi-filter support (workspace, project, assignee, tag) that are composed into a single API call, reducing round-trips.
More efficient than fetching all tasks and filtering client-side because search filtering happens server-side in Asana's indexed search engine, reducing payload size and latency for large workspaces.
asana api client wrapper with authenticated request handling
Medium confidenceImplements asana-client-wrapper.ts that encapsulates Asana REST API communication, handling authentication (Bearer token in Authorization header), request construction, error handling, and response transformation. The wrapper abstracts Asana's API details (endpoint URLs, query parameters, pagination) from tool handlers, providing a clean interface for CRUD operations. All requests include the Asana Personal Access Token from environment variables, and responses are transformed into structured JSON for MCP clients.
Provides a lightweight, MCP-integrated Asana API wrapper that handles authentication and response transformation without external dependencies. Abstracts Asana's REST API details, enabling tool handlers to focus on business logic rather than HTTP mechanics.
Simpler than the official Asana Node.js SDK because it's tailored for MCP use cases and avoids SDK overhead, reducing bundle size and startup latency for serverless deployments.
tool handler registration and request dispatching
Medium confidenceImplements tool-handler.ts that registers all 22 Asana tools with the MCP server and dispatches incoming tool call requests to appropriate handlers. The handler layer validates tool arguments against JSON schemas, constructs API requests via the asana-client-wrapper, and transforms responses into structured JSON for MCP clients. Tool registration includes metadata (name, description, input schema) that enables Claude to understand tool capabilities and invoke them with correct arguments.
Centralizes tool registration and dispatching in a single handler module, enabling consistent argument validation and error handling across all 22 Asana tools. Tool schemas are defined declaratively, making it easy to add new tools or modify existing ones.
More maintainable than scattered tool implementations because all tool logic is centralized, reducing duplication and making it easier to add cross-cutting concerns like logging or rate limiting.
prompt handler with ai-optimized workflow templates
Medium confidenceImplements prompt-handler.ts that registers three MCP prompts (task-summary, task-completeness, create-task) with the MCP server. Each prompt includes instructions that guide Claude's reasoning for specific Asana workflows, along with argument schemas for required inputs (task GID, creation parameters). Prompts are returned as structured MCP prompt objects that Claude can discover and invoke, enabling guided workflows without explicit tool calls.
Provides MCP prompts as first-class resources that guide Claude's reasoning for Asana workflows, enabling structured guidance without explicit tool calls. Prompts are discoverable via MCP protocol, allowing Claude to invoke them contextually.
More effective than generic Claude instructions because prompts are Asana-specific and pre-optimized for common workflows, improving consistency and reducing the need for manual prompt engineering.
resource handler with uri-based workspace and project access
Medium confidenceImplements resource-handler.ts that exposes Asana workspaces and projects as MCP resources with URI schemes (asana://workspace/{gid}, asana://project/{gid}). The handler maintains an in-memory cache of resource metadata and returns structured JSON when resources are accessed. This enables AI clients to reference and cache project/workspace data via URIs, reducing repeated API calls and providing a consistent interface for resource navigation.
Implements MCP resource protocol for Asana workspaces and projects, enabling URI-based access and in-memory caching of frequently-used metadata. Resources are discoverable and referenceable without repeated API calls.
More efficient than tool-only access because resources enable caching and URI-based references, reducing API calls and improving latency for context-aware workflows.
project and section hierarchy navigation with resource uris
Medium confidenceExposes asana_get_project and asana_list_sections tools that retrieve project metadata and section hierarchies from Asana, with results accessible via MCP resource URIs (asana://project/{gid}). The resource-handler layer caches project and section data, enabling AI clients to navigate organizational structure without repeated API calls. Section data includes ordering and task counts, supporting agentic workflows that need to understand project layout.
Implements MCP resource protocol for project and section data, enabling AI clients to reference and cache project structure via URIs (asana://project/{gid}) rather than repeated API calls. Resource handler maintains in-memory cache of project metadata, reducing latency for repeated access patterns.
More efficient than raw Asana API clients because resource caching eliminates redundant API calls for frequently-accessed project metadata, and URI-based references enable Claude to maintain context across multiple tool invocations without re-fetching.
workspace enumeration and context discovery
Medium confidenceImplements asana_list_workspaces tool that retrieves all workspaces accessible to the authenticated user, returning workspace metadata (gid, name, is_organization) as structured JSON. This tool serves as the entry point for workspace-scoped operations, enabling AI clients to discover available workspaces and resolve workspace identifiers for downstream tool calls. Results are cached via the resource handler for repeated access.
Provides workspace enumeration as a foundational MCP tool, enabling AI clients to discover and resolve workspace identifiers without prior knowledge of GIDs. Acts as the entry point for workspace-scoped resource navigation.
Simpler than requiring users to manually provide workspace GIDs because the tool auto-discovers accessible workspaces, reducing configuration friction for multi-workspace setups.
task dependency and blocking relationship management
Medium confidenceExposes asana_add_task_dependency and asana_remove_task_dependency tools that manage task blocking relationships (task A blocks task B, or task A depends on task B). These tools translate MCP requests into Asana's dependency API, maintaining task relationship graphs. The implementation validates that both task GIDs exist before creating dependencies, preventing orphaned relationships. Dependency data is returned as structured JSON indicating dependency type (blocks vs depends_on).
Implements MCP tools for task dependency mutations, enabling AI clients to build and modify task relationship graphs programmatically. Validates task existence before creating dependencies, reducing API errors from invalid GIDs.
More reliable than manual dependency creation because validation happens before API calls, preventing orphaned relationships and providing immediate feedback on invalid task references.
task comment and story thread management
Medium confidenceExposes asana_add_task_story (for comments) and asana_get_task_stories tools that manage task activity streams and comments. The add_task_story tool appends comments to task activity threads, while get_task_stories retrieves the full comment history with timestamps and author information. Stories are returned as structured JSON arrays with text, author, and created_at metadata, enabling AI clients to understand task history and context.
Provides MCP tools for task comment management, enabling AI clients to add status updates and retrieve task history without requiring direct Asana UI access. Story retrieval includes full metadata (author, timestamp) for audit and context purposes.
More integrated than external logging because comments are stored in Asana's activity stream, providing team visibility and audit trails without separate systems.
task tag assignment and filtering
Medium confidenceImplements asana_add_task_tag and asana_remove_task_tag tools that manage task tags (labels/categories). Tags are applied to tasks for organization and filtering, and the tools validate that tags exist in the workspace before assignment. Tag data is returned as structured JSON with tag gid and name. The search_tasks tool includes optional tag filtering, enabling AI clients to query tasks by tag without manual iteration.
Provides MCP tools for tag assignment and removal, enabling AI clients to organize tasks by category without UI access. Integrates with search_tasks for tag-based filtering, supporting tag-driven workflows.
More flexible than hardcoded task properties because tags are user-defined and can be applied dynamically, enabling teams to adapt task organization without schema changes.
ai-optimized prompt templates for common workflows
Medium confidenceExposes three MCP prompts (task-summary, task-completeness, create-task) that provide AI-optimized instructions for common Asana workflows. Prompts are templates that guide Claude's reasoning and tool usage for specific tasks: task-summary generates concise task overviews, task-completeness checks if a task has all required fields, and create-task provides step-by-step guidance for task creation. Prompts are registered in the prompt-handler and returned as structured MCP prompt objects with instructions and argument schemas.
Implements MCP prompt protocol to provide AI-optimized workflow templates that guide Claude's reasoning for common Asana tasks. Prompts are registered as first-class MCP resources, enabling Claude to discover and invoke them without explicit tool calls.
More effective than generic Claude instructions because prompts are Asana-specific and pre-optimized for common workflows, reducing prompt engineering overhead and improving consistency.
read-only mode enforcement with capability gating
Medium confidenceImplements environment variable-based access control (READ_ONLY_MODE=true) that gates write operations (create_task, update_task, add_task_story, add_task_tag, add_task_dependency) while preserving read operations (search_tasks, get_project, list_workspaces, get_task_stories). The server initialization checks READ_ONLY_MODE and conditionally registers tool handlers, preventing mutation tools from being exposed to MCP clients. This enables safe, read-only Asana integration for audit, reporting, or preview workflows.
Implements server-side capability gating via environment variable, preventing write operations from being registered as MCP tools when read-only mode is enabled. This is enforced at tool registration time, not at request time, ensuring mutations are impossible without server restart.
More secure than API-level permission checks because mutations are prevented before reaching Asana's API, reducing risk of accidental changes and providing clear capability boundaries to AI clients.
mcp stdio transport with json-rpc protocol handling
Medium confidenceImplements the MCP server using Node.js stdio transport, communicating with MCP clients via JSON-RPC 2.0 protocol over stdin/stdout. The server initialization (src/index.ts) creates an MCP Server instance, registers tool, prompt, and resource handlers, and starts listening for incoming JSON-RPC requests. The transport layer handles message framing, error handling, and response serialization, enabling integration with any MCP-compatible client (Claude Desktop, custom agents, etc.) without additional configuration.
Implements full MCP server specification with stdio transport, enabling seamless integration with Claude Desktop and other MCP clients without custom protocol implementation. Uses TypeScript for type safety and leverages the official MCP SDK for protocol compliance.
More standardized than custom REST APIs because MCP is a protocol standard supported by multiple AI clients, reducing integration friction and enabling portability across different agentic platforms.
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.
@roychri/mcp-server-asana
MCP Server for Asana
@roychri/mcp-server-asana
MCP Server for Asana
Todoist
** - Full implementation of Todoist Rest API for MCP server
Taskade
** – Connect to the [Taskade platform](https://www.taskade.com/) via MCP. Access tasks, projects, workflows, and AI agents in real-time through a unified workspace and API.
Zapier
** - Connect your AI Agents to 8,000 apps instantly.
Dart
** - Interact with task, doc, and project data in [Dart](https://itsdart.com), an AI-native project management tool
Best For
- ✓AI agent builders integrating Asana into Claude Desktop or custom MCP clients
- ✓teams automating task creation from AI-generated project plans
- ✓developers building agentic workflows that need write access to Asana
- ✓AI agents that need to query task state before making mutations (e.g., checking if a task exists before creating a duplicate)
- ✓teams building task dashboards or status reports via Claude
- ✓developers implementing task-aware agentic workflows that require context about existing work
- ✓developers building MCP servers or integrations with Asana
- ✓teams needing a lightweight Asana API client without external dependencies
Known Limitations
- ⚠Requires explicit project GID (global ID) — no fuzzy project name matching; must pre-resolve project identifiers
- ⚠Custom field validation is schema-based but doesn't validate field-specific constraints (e.g., enum values, numeric ranges) beyond type checking
- ⚠No transaction support — partial failures in multi-task creation leave orphaned tasks
- ⚠Asana API rate limits (150 requests/min for standard accounts) not enforced client-side; requests will fail if quota exceeded
- ⚠Search is keyword-based on task name and description only — no full-text search on custom fields or comments
- ⚠Pagination requires manual iteration; no built-in cursor-based streaming for large result sets
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 →