Asana API MCP server
Tasks, projects, sections, goals, portfolios and workspaces.
The Asana REST API: tasks and subtasks, projects and sections, workspaces and teams, goals, portfolios, custom fields, attachments, stories, tags, users and webhooks, with a personal access token.
Why use the hosted one: Every endpoint of Asana's API behind the gateway's search, with your own Asana personal access token stored encrypted and sent only to Asana.
Needs your Asana personal access token: add it once in the dashboard (get one at Asana). It is stored encrypted and sent only to that API.
Connect
claude mcp add --transport http hj-asana-api https://mcp.hjlabs.in/mcp/asana-api \
--header "Authorization: Bearer YOUR_API_KEY"Create an API key and put it in place of YOUR_API_KEY. Step-by-step guides: claude.ai and ChatGPT connectors, Claude Code, Cursor, VS Code, Claude Desktop, Windsurf, Zed, OpenAI Codex CLI, Gemini CLI.
All 270 tools
Get 123 tools
- Get access requests
get_access_requests - Get a list of agents in a workspace
get_agents_for_workspace - Get an agent
get_agent - Get AI Studio credit utilization
get_ai_studio_runs - Get AI Studio seats
get_ai_studio_seats - Get an allocation
get_allocation - Get multiple allocations
get_allocations - Get an attachment
get_attachment - Get attachments from an object
get_attachments_for_object - Get audit log events
get_audit_log_events - Get all budgets
get_budgets - Get a budget
get_budget - Get a project's custom fields
get_custom_field_settings_for_project - Get a portfolio's custom fields
get_custom_field_settings_for_portfolio - Get a goal's custom fields
get_custom_field_settings_for_goal - Get a team's custom fields
get_custom_field_settings_for_team - Get a custom field
get_custom_field - Get a workspace's custom fields
get_custom_fields_for_workspace - Get all custom types associated with an object
get_custom_types - Get a custom type
get_custom_type - Get events on a resource
get_events - Get a goal relationship
get_goal_relationship - Get goal relationships
get_goal_relationships - Get a goal
get_goal - Get goals
get_goals - Get parent goals from a goal
get_parent_goals_for_goal - Get a job by id
get_job - Get multiple memberships
get_memberships - Get a membership
get_membership - Get notifications for a user
get_notifications_for_user - Get an OOO entry
get_ooo_entry - Get OOO entries for a user
get_ooo_entries - Get details on an org export request
get_organization_export - Get multiple portfolio memberships
get_portfolio_memberships - Get a portfolio membership
get_portfolio_membership - Get memberships from a portfolio
get_portfolio_memberships_for_portfolio - Get multiple portfolios
get_portfolios - Get a portfolio
get_portfolio - Get portfolio items
get_items_for_portfolio - Get a project brief
get_project_brief - Get a project membership
get_project_membership - Get memberships from a project
get_project_memberships_for_project - Get a project portfolio setting
get_project_portfolio_setting - Get project portfolio settings for a project
get_project_portfolio_settings_for_project - Get project portfolio settings for a portfolio
get_project_portfolio_settings_for_portfolio - Get a project status
get_project_status - Get statuses from a project
get_project_statuses_for_project - Get a project template
get_project_template - Get multiple project templates
get_project_templates - Get a team's project templates
get_project_templates_for_team - Get multiple projects
get_projects - Get a project
get_project - Get projects a task is in
get_projects_for_task - Get a team's projects
get_projects_for_team - Get all projects in a workspace
get_projects_for_workspace - Get task count of a project
get_task_counts_for_project - Get multiple rates
get_rates - Get a rate
get_rate - Get reactions with an emoji base on an object.
get_reactions_on_object - Get records in a table
get_records_for_table - Get a record
get_record - Get multiple roles
get_roles - Get a role
get_role - Get a section
get_section - Get sections in a project
get_sections_for_project - Get a status update
get_status - Get status updates from an object
get_statuses_for_object - Get a story
get_story - Get stories from a task
get_stories_for_task - Get stories from a record
get_stories_for_record - Get stories from a goal
get_stories_for_goal - Get tables in a workspace
get_tables_for_workspace - Get a table
get_table - Get a table's custom field settings
get_custom_field_settings_for_table - Get multiple tags
get_tags - Get a tag
get_tag - Get a task's tags
get_tags_for_task - Get tags in a workspace
get_tags_for_workspace - Get multiple task templates
get_task_templates - Get a task template
get_task_template - Get multiple tasks
get_tasks - Get a task
get_task - Get tasks from a project
get_tasks_for_project - Get tasks from a section
get_tasks_for_section - Get tasks from a tag
get_tasks_for_tag - Get tasks from a user task list
get_tasks_for_user_task_list - Get subtasks from a task
get_subtasks_for_task - Get dependencies from a task
get_dependencies_for_task - Get dependents from a task
get_dependents_for_task - Get a task for a given custom ID
get_task_for_custom_id - Get a team membership
get_team_membership - Get team memberships
get_team_memberships - Get memberships from a team
get_team_memberships_for_team - Get memberships from a user
get_team_memberships_for_user - Get a team
get_team - Get teams in a workspace
get_teams_for_workspace - Get teams for a user
get_teams_for_user - Get a time period
get_time_period - Get time periods
get_time_periods - Get a time tracking category
get_time_tracking_category - Get time tracking entries for a time tracking category
get_time_tracking_entries_for_time_tracking_category - Get time tracking categories for a workspace
get_time_tracking_categories - Get time tracking entries for a task
get_time_tracking_entries_for_task - Get a time tracking entry
get_time_tracking_entry - Get multiple time tracking entries
get_time_tracking_entries - Get a timesheet approval status
get_timesheet_approval_status - Get multiple timesheet approval statuses
get_timesheet_approval_statuses - Get a user task list
get_user_task_list - Get a user's task list
get_user_task_list_for_user - Get multiple users
get_users - Get a user
get_user - Get a user's favorites
get_favorites_for_user - Get users in a team
get_users_for_team - Get users in a workspace or organization
get_users_for_workspace - Get a user in a workspace or organization
get_user_for_workspace - Get multiple webhooks
get_webhooks - Get a webhook
get_webhook - Get a workspace membership
get_workspace_membership - Get workspace memberships for a user
get_workspace_memberships_for_user - Get the workspace memberships for a workspace
get_workspace_memberships_for_workspace - Get multiple workspaces
get_workspaces - Get a workspace
get_workspace - Get workspace events
get_workspace_events
Create 38 tools
- Create an access request
create_access_request - Create an allocation
create_allocation - Upload an attachment
create_attachment_for_object - Submit parallel requests
create_batch_request - Create a budget
create_budget - Create a custom field
create_custom_field - Create an enum option
create_enum_option_for_custom_field - Initiate a graph export
create_graph_export - Initiate a resource export
create_resource_export - Create a goal
create_goal - Create a goal metric
create_goal_metric - Create a membership
create_membership - Create an OOO entry
create_ooo_entry - Create an organization export request
create_organization_export - Create a portfolio
create_portfolio - Create a project brief
create_project_brief - Create a project status
create_project_status_for_project - Create a project
create_project - Create a project in a team
create_project_for_team - Create a project in a workspace
create_project_for_workspace - Create a rate
create_rate - Create a record
create_record - Create a role
create_role - Create a section in a project
create_section_for_project - Create a status update
create_status_for_object - Create a story on a task
create_story_for_task - Create a story on a record
create_story_for_record - Create a story on a goal
create_story_for_goal - Create a table
create_table - Create a tag
create_tag - Create a tag in a workspace
create_tag_for_workspace - Create a task
create_task - Create a subtask
create_subtask_for_task - Create a team
create_team - Create a time tracking category
create_time_tracking_category - Create a time tracking entry
create_time_tracking_entry - Create a timesheet approval status
create_timesheet_approval_status - Establish a webhook
create_webhook
Update 29 tools
- Update an allocation
update_allocation - Update a budget
update_budget - Update a custom field
update_custom_field - Update an enum option
update_enum_option - Update a goal relationship
update_goal_relationship - Update a goal
update_goal - Update a goal metric
update_goal_metric - Update a membership
update_membership - Update an OOO entry
update_ooo_entry - Update a portfolio
update_portfolio - Update a project brief
update_project_brief - Update a project portfolio setting
update_project_portfolio_setting - Update a project
update_project - Update a rate
update_rate - Update a record
update_record - Update a role
update_role - Update a section
update_section - Update a story
update_story - Update a table
update_table - Update a tag
update_tag - Update a task
update_task - Update a team
update_team - Update a time tracking category
update_time_tracking_category - Update a time tracking entry
update_time_tracking_entry - Update a timesheet approval status
update_timesheet_approval_status - Update a user
update_user - Update a user in a workspace or organization
update_user_for_workspace - Update a webhook
update_webhook - Update a workspace
update_workspace
Delete 25 tools
- Delete an allocation
delete_allocation - Delete an attachment
delete_attachment - Delete a budget
delete_budget - Delete a custom field
delete_custom_field - Delete a goal
delete_goal - Delete a membership
delete_membership - Delete an OOO entry
delete_ooo_entry - Delete a portfolio
delete_portfolio - Delete a project brief
delete_project_brief - Delete a project status
delete_project_status - Delete a project template
delete_project_template - Delete a project
delete_project - Delete a rate
delete_rate - Delete a record
delete_record - Delete a role
delete_role - Delete a section
delete_section - Delete a status update
delete_status - Delete a story
delete_story - Delete a table
delete_table - Delete a tag
delete_tag - Delete a task template
delete_task_template - Delete a task
delete_task - Delete a time tracking category
delete_time_tracking_category - Delete a time tracking entry
delete_time_tracking_entry - Delete a webhook
delete_webhook
Add 18 tools
- Add a supporting goal relationship
add_supporting_relationship - Add a collaborator to a goal
add_followers - Add a custom field to a goal
add_custom_field_setting_for_goal - Add a portfolio item
add_item_for_portfolio - Add a custom field to a portfolio
add_custom_field_setting_for_portfolio - Add users to a portfolio
add_members_for_portfolio - Add a custom field to a project
add_custom_field_setting_for_project - Add users to a project
add_members_for_project - Add followers to a project
add_followers_for_project - Add task to section
add_task_for_section - Add a custom field to a table
add_custom_field_setting_for_table - Set dependencies for a task
add_dependencies_for_task - Set dependents for a task
add_dependents_for_task - Add a project to a task
add_project_for_task - Add a tag to a task
add_tag_for_task - Add followers to a task
add_followers_for_task - Add a user to a team
add_user_for_team - Add a user to a workspace or organization
add_user_for_workspace
Remove 17 tools
- Removes a supporting goal relationship
remove_supporting_relationship - Remove a collaborator from a goal
remove_followers - Remove a custom field from a goal
remove_custom_field_setting_for_goal - Remove a portfolio item
remove_item_for_portfolio - Remove a custom field from a portfolio
remove_custom_field_setting_for_portfolio - Remove users from a portfolio
remove_members_for_portfolio - Remove a custom field from a project
remove_custom_field_setting_for_project - Remove users from a project
remove_members_for_project - Remove followers from a project
remove_followers_for_project - Remove a custom field from a table
remove_custom_field_setting_for_table - Unlink dependencies from a task
remove_dependencies_for_task - Unlink dependents from a task
remove_dependents_for_task - Remove a project from a task
remove_project_for_task - Remove a tag from a task
remove_tag_for_task - Remove followers from a task
remove_follower_for_task - Remove a user from a team
remove_user_for_team - Remove a user from a workspace or organization
remove_user_for_workspace
Duplicate 3 tools
- Duplicate a portfolio
duplicate_portfolio - Duplicate a project
duplicate_project - Duplicate a task
duplicate_task
Search 3 tools
- Search projects in a workspace
search_projects_for_workspace - Search records in a workspace
search_records_for_workspace - Search tasks in a workspace
search_tasks_for_workspace
Insert 2 tools
- Reorder a custom field's enum
insert_enum_option_for_custom_field - Move or Insert sections
insert_section_for_project
Instantiate 2 tools
- Instantiate a project from a project template
instantiate_project - Instantiate a task from a task template
instantiate_task
Mark 2 tools
- Mark notifications as read
mark_notifications_read_for_user - Mark notifications as unread
mark_notifications_unread_for_user
Rollup 2 tools
- Roll up subtask dates for a project
rollup_project - Roll up subtask dates for a task
rollup_task
Approve 1 tool
- Approve an access request
approve_access_request
Project 1 tool
- Create a project template from a project
project_save_as_template
Reject 1 tool
- Reject an access request
reject_access_request
Set 1 tool
- Set the parent of a task
set_parent_for_task
Trigger 1 tool
- Trigger a rule
trigger_rule
Typeahead 1 tool
- Get objects via typeahead
typeahead_for_workspace
Try asking
List my incomplete tasks due this week across all projects.
Usage and limits
Every account gets a free daily allowance of tool calls; connecting, listing and searching are not counted. See the limits. Only a tool that runs costs a call.