Asana MCP server for your Slack AI agent

Integrate Asana MCP server into your Slack workspace for instant access to your AI agent.

Back to MCP Servers
Asana
Asana
Work anytime, anywhere with Asana. Keep remote and distributed teams, and your entire organization, focused on their goals, projects, and tasks with Asana.

Categories

Productivity

Available Tools

Tools that your AI agent can use through this MCP server to interact with Asana

Update Task

Updates one or more fields on an existing Asana task (name, assignee, due date, completion status, notes, custom fields, etc.). All fields are optional — supply only the ones you want to change; unchanged fields retain their current values. Use Find Task by ID or Search Tasks to obtain the task GID first. Returns the updated task record. Example: call with task_gid: '1202345678901234', completed: true → marks the task complete and returns the updated record. See the documentation

Get list of user projects

Returns all projects in an Asana workspace where the specified user is a member. Omit user (or pass "me") for the authenticated user's own projects — don't guess a GID from List Users when the request is about "my" projects. Results are workspace-wide and not scoped to any portfolio; archived projects may be included. If you need portfolio-scoped results, use List Portfolios and List Portfolio Items instead. Example: call with workspace: '1200123456789012' (no user) → returns [{gid: '1204567890123456', name: 'Website Redesign'}, ...] for projects the authenticated user is a member of. See the documentation

Search Tasks

Searches for Asana tasks by name within a project, section, or by assignee. Must specify exactly one of: project, section, or assignee (project + section together is also valid). The name filter is a client-side substring match applied after fetching. For cross-project full-text search, use Search Tasks Premium instead. Returns task records with gid and name (plus any requested optFields). Example: call with workspace: '1200123456789012', project: '1204567890123456', name: 'Q3' → returns tasks in that project whose names contain 'Q3'. See the documentation

Search Tasks Premium

Searches for tasks across an Asana workspace by name, assignee, section, project, completed since, and/or modified since. Requires a Premium Asana account. Use this over Search Tasks when you need cross-project full-text search or date-range filters not available on the basic endpoint. Results are capped at 100 by the Asana search API — pagination is not supported on this endpoint; narrow your filters (name, assignee, modified_since) if you expect more than 100 matches. Example: call with workspace: '1200123456789012', name: 'Q3', assignee: '1198765432109876' → returns up to 100 tasks whose text contains 'Q3' assigned to that user. See the documentation

Search Sections

Searches for sections by name within an Asana project. Use this to find section GIDs before calling Add Task to Section or when filtering tasks by section. The sectionName filter is a client-side substring match. Returns section records with gid and name. Example: call with project: '1204567890123456', sectionName: 'In Progress' → returns [{gid: '1203456789012345', name: 'In Progress'}]. See the documentation

Search Projects

Finds projects across an entire Asana workspace, optionally filtered by name (e.g. Website Redesign). Results are workspace-wide and are not limited to any portfolio, and there is no due-date filter. Archived projects are included unless you set archived: false. Every result includes workspace.gid — reuse that value directly for the workspace param on a follow-up action like Create Task, no need to look it up separately. If you need portfolio-scoped results, use List Portfolios and List Portfolio Items instead. Example: call with workspace: '1200123456789012', name: 'Marketing' → returns [{gid: '1204567890123456', name: 'Q4 Marketing Campaign', workspace: {gid: '1200123456789012'}}, ...]. See the documentation

List Workspaces

Lists all Asana workspaces available to the authenticated account. Use this to get workspace GIDs required by List Teams, List Users, Search Tasks, Create Task, and other workspace-scoped actions. Pass a returned next_offset as offset to fetch additional pages. Example: call with no params → returns {data: [{gid: '1200123456789012', name: 'Acme Corp'}, ...]} (pass optFields: ['is_organization'] to also get whether each workspace is an organization). See the documentation

List Users

Retrieves all users in a specified Asana workspace. Use this to get user GIDs for assignee or owner fields in Create Task or Update Task. Requires a workspace GID from List Workspaces. Results are paginated; pass the returned next_offset as offset to fetch additional pages. Example: call with workspace: '1200123456789012', optFields: ['name','email'] → returns {data: [{gid: '1198765432109876', name: 'Jane Doe', email: 'jane@acme.com'}, ...]}. See the documentation

List Teams

Retrieves all teams in a specified Asana workspace. Use this action to discover available team GIDs for creating projects or organizing work by department. Requires a workspace GID from List Workspaces. Results are paginated (default 25 per page); pass the returned next_offset as offset to fetch additional pages. Consider following up with Create Project to create a project under a team. Example: call with workspace: '1200123456789012' → returns {data: [{gid: '1203456789012345', name: 'Design'}, ...], next_offset: null}. See the documentation

List Task Templates

Returns task templates in an Asana project, up to 100 by default (increase maxResults for more) — not guaranteed to include every template in a project with many. Use this to discover task template GIDs before calling Create Task from Template (the taskTemplate prop). Example: call with project: '1204567890123456' → returns templates like [{gid: '1205678901234567', name: 'Bug Report Template'}]. See the documentation

List Task Stories

Returns all stories (comments, activity log entries, system messages) for an Asana task. Use this to retrieve the comment history and audit trail for a task. Set commentsOnly: true to filter to only comment stories. Returns an array of story records each with gid, type, text, and created_at. Example: call with project: '1204567890123456', taskId: '1202345678901234' → returns stories including {gid: '1209012345678901', type: 'comment', text: 'Approved!', created_at: '2026-09-01T10:00:00Z'}. See the documentation

List Tags

Returns tags in an Asana workspace, up to 100 by default (increase maxResults for more) — not guaranteed to include every tag in a large workspace. Use this to discover tag GIDs before applying tags to tasks with Create Task or Create Subtask (the tags prop). Example: call with workspace: '1200123456789012' → returns tags like [{gid: '1202345678901234', name: 'urgent'}]. See the documentation

List Portfolios

Returns a list of portfolios in an Asana workspace owned by the given user. Use this to discover portfolio GIDs before calling Get Portfolio or List Portfolio Items. Owner defaults to the authenticated user; regular API users can only list portfolios they own. Example: call with workspace: '1200123456789012' → returns [{gid: '1208901234567890', name: 'Product Launch'}, ...]. See the documentation

List Portfolio Items

Returns a list of the projects in an Asana portfolio. Use this after List Portfolios to enumerate projects within a portfolio and answer count, timing, and spend questions; the default Opt Fields include created_at, start_on, due_on, and custom_fields. Archived filtering happens client-side. Example: call with portfolioId: '1208901234567890', excludeArchived: true → returns active projects like [{gid: '1204567890123456', name: 'Website Redesign', start_on: '2026-01-01', due_on: '2026-06-30'}]. See the documentation

List Organizations Options

Returns all Asana workspaces for the authenticated account that are organizations (i.e. is_organization: true). Use this to obtain organization GIDs for org-scoped actions. Prefer List Workspaces when you need all workspaces including non-organization ones. Returns an array of {label, value} pairs where value is the organization GID. Example: returns [{label: 'Acme Corp', value: '1200123456789012'}]. See the documentation

Get Tasks From Task List

Returns tasks from the authenticated user's personal My Tasks inbox — NOT a project task list. Use this when the user asks for 'my tasks', 'my task list', or 'My Tasks'. Only a workspace GID is needed; no project GID required. Example: call with workspace: '1200123456789012' → returns all tasks in the authenticated user's My Tasks list, e.g. [{gid: '1202345678901234', name: 'Review Q3 report'}]. See the documentation

Get Portfolio

Returns the complete portfolio record for a single portfolio. Use this after List Portfolios to retrieve full portfolio details including custom fields, members, and owner; the optFields prop requests specific properties (e.g. custom_field_settings, members, start_on, due_on). Example: call with portfolioId: '1208901234567890', optFields: ['members','owner','due_on'] → returns {gid: '1208901234567890', name: 'Product Launch', owner: {...}, members: [...]}. See the documentation

Find Task by ID

Retrieves the complete record for a single Asana task by its GID. Use this to fetch full task details (description, assignee, due date, custom fields) after obtaining a task GID from Search Tasks. Use optFields to request additional fields not returned by default. Example: call with task_gid: '1202345678901234', optFields: ['due_on','assignee','custom_fields'] → returns the full task record for that GID. See the documentation

Delete Task

Deletes an Asana task. This moves the task to the deleting user's trash and removes it from active views immediately; it can be recovered for 30 days before Asana permanently removes it. Use Find Task by ID to confirm the task GID before deleting. Returns an empty data object {} on success. Example: call with task_gid: '1202345678901234' → returns {}. See the documentation

Create Task

Creates a new task in Asana. Use this to add a standalone task to a workspace or project. For subtasks, use Create Subtask instead; for template-based tasks, use Create Task from Template. Returns the new task record including its gid. Example: call with taskName: 'Review Q3 report', workspace: '1200123456789012', due_on: '2026-10-01' → returns {gid: '1202345678901234', name: 'Review Q3 report', resource_type: 'task'}. See the documentation

Create Task from Template

Creates a new Asana task by instantiating an existing task template. Use this when a team has a reusable task structure (e.g. a bug-report or onboarding template); for ad-hoc tasks use Create Task. Use List Task Templates to find the template GID. This kicks off an asynchronous job — the response is a job resource, not the finished task; new_task.gid is available immediately but the task's fields may still be populating, so use Find Task by ID if you need to confirm it's ready. The new task's project and memberships are determined by the template itself, not by any project passed here. Example: call with taskTemplateId: '1205678901234567', name: 'Bug: Login page crash' → returns {gid: '1205555555555555', resource_type: 'job', new_task: {gid: '1206789012345678'}}. See the documentation

Create Task Comment

Adds a comment (story) to an existing Asana task. Use this to post a text update or pinned note visible to task followers. Provide either text (plain text) or html_text (HTML-formatted), but not both. Returns the new story record including its gid and type. Example: call with task_gid: '1202345678901234', text: 'Approved — ready to ship!' → returns {gid: '1209012345678901', type: 'comment', text: 'Approved — ready to ship!'}. See the documentation

Create Subtask

Creates a new subtask nested under an existing parent task. Use this when the work is a sub-item of another task; for top-level tasks use Create Task. The parent task GID is required. Returns the new subtask record including its gid. Example: call with task_gid: '1202345678901234', subtaskName: 'Write first draft', due_on: '2026-10-05' → returns {gid: '1207890123456789', name: 'Write first draft', resource_type: 'task'}. See the documentation

Create Project

Creates a new project in an Asana workspace or team. Use this to set up a new initiative, sprint, or work stream. For organization workspaces you must supply a team GID (use List Teams to find it). Returns the new project record including its gid. Example: call with projectName: 'Q4 Marketing Campaign', workspace: '1200123456789012', team: '1203456789012345', defaultView: 'board' → returns {gid: '1204567890123456', name: 'Q4 Marketing Campaign'}. See the documentation

Add Task To Section

Moves a task into a specific section within an Asana project, removing it from any other section it currently occupies in that project. Use Search Sections to find the section GID and Search Tasks to find the task GID. Returns an empty object {} on success. Example: call with project: '1204567890123456', task: '1202345678901234', section_gid: '1203456789012345' → task is moved into that section and returns {}. See the documentation