Asana · Capability
Asana Tasks API — Tasks
Asana Tasks API — Tasks. 9 operations. Lead operation: Asana Get tasks from a project. Self-contained Naftiko capability covering one Asana business surface.
What You Can Do
GET
Gettasksforproject
— Asana Get tasks from a project
/v1/projects/{project-gid}/tasks
GET
Gettasks
— Asana Get multiple tasks
/v1/tasks
POST
Createtask
— Asana Create a task
/v1/tasks
GET
Gettask
— Asana Get a task
/v1/tasks/{task-gid}
PUT
Updatetask
— Asana Update a task
/v1/tasks/{task-gid}
DELETE
Deletetask
— Asana Delete a task
/v1/tasks/{task-gid}
GET
Getsubtasksfortask
— Asana Get subtasks from a task
/v1/tasks/{task-gid}/subtasks
POST
Createsubtaskfortask
— Asana Create a subtask
/v1/tasks/{task-gid}/subtasks
GET
Searchtasksforworkspace
— Asana Search tasks in a workspace
/v1/workspaces/{workspace-gid}/tasks/search
MCP Tools
asana-get-tasks-project
Asana Get tasks from a project
read-only
idempotent
asana-get-multiple-tasks
Asana Get multiple tasks
read-only
idempotent
asana-create-task
Asana Create a task
asana-get-task
Asana Get a task
read-only
idempotent
asana-update-task
Asana Update a task
idempotent
asana-delete-task
Asana Delete a task
idempotent
asana-get-subtasks-task
Asana Get subtasks from a task
read-only
idempotent
asana-create-subtask
Asana Create a subtask
asana-search-tasks-workspace
Asana Search tasks in a workspace
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Asana Tasks API — Tasks
description: 'Asana Tasks API — Tasks. 9 operations. Lead operation: Asana Get tasks from a project. Self-contained Naftiko
capability covering one Asana business surface.'
tags:
- Asana
- Tasks
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
ASANA_API_KEY: ASANA_API_KEY
capability:
consumes:
- type: http
namespace: tasks-tasks
baseUri: https://app.asana.com/api/1.0
description: Asana Tasks API — Tasks business capability. Self-contained, no shared references.
resources:
- name: projects-project_gid-tasks
path: /projects/{project_gid}/tasks
operations:
- name: gettasksforproject
method: GET
description: Asana Get tasks from a project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: project_gid
in: path
type: string
required: true
- name: completed_since
in: query
type: string
- name: limit
in: query
type: integer
- name: offset
in: query
type: string
- name: tasks
path: /tasks
operations:
- name: gettasks
method: GET
description: Asana Get multiple tasks
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: project
in: query
type: string
- name: section
in: query
type: string
- name: workspace
in: query
type: string
- name: assignee
in: query
type: string
- name: completed_since
in: query
type: string
- name: modified_since
in: query
type: string
- name: limit
in: query
type: integer
- name: offset
in: query
type: string
- name: createtask
method: POST
description: Asana Create a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: tasks-task_gid
path: /tasks/{task_gid}
operations:
- name: gettask
method: GET
description: Asana Get a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: task_gid
in: path
type: string
required: true
- name: updatetask
method: PUT
description: Asana Update a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: task_gid
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deletetask
method: DELETE
description: Asana Delete a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: task_gid
in: path
type: string
required: true
- name: tasks-task_gid-subtasks
path: /tasks/{task_gid}/subtasks
operations:
- name: getsubtasksfortask
method: GET
description: Asana Get subtasks from a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: task_gid
in: path
type: string
required: true
- name: limit
in: query
type: integer
- name: offset
in: query
type: string
- name: createsubtaskfortask
method: POST
description: Asana Create a subtask
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: task_gid
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: workspaces-workspace_gid-tasks-search
path: /workspaces/{workspace_gid}/tasks/search
operations:
- name: searchtasksforworkspace
method: GET
description: Asana Search tasks in a workspace
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: workspace_gid
in: path
type: string
required: true
- name: text
in: query
type: string
- name: assignee.any
in: query
type: string
- name: projects.any
in: query
type: string
- name: tags.any
in: query
type: string
- name: completed
in: query
type: boolean
- name: is_subtask
in: query
type: boolean
- name: sort_by
in: query
type: string
- name: sort_ascending
in: query
type: boolean
authentication:
type: bearer
token: '{{env.ASANA_API_KEY}}'
exposes:
- type: rest
namespace: tasks-tasks-rest
port: 8080
description: REST adapter for Asana Tasks API — Tasks. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/projects/{project-gid}/tasks
name: projects-project-gid-tasks
description: REST surface for projects-project_gid-tasks.
operations:
- method: GET
name: gettasksforproject
description: Asana Get tasks from a project
call: tasks-tasks.gettasksforproject
with:
project_gid: rest.project_gid
completed_since: rest.completed_since
limit: rest.limit
offset: rest.offset
outputParameters:
- type: object
mapping: $.
- path: /v1/tasks
name: tasks
description: REST surface for tasks.
operations:
- method: GET
name: gettasks
description: Asana Get multiple tasks
call: tasks-tasks.gettasks
with:
project: rest.project
section: rest.section
workspace: rest.workspace
assignee: rest.assignee
completed_since: rest.completed_since
modified_since: rest.modified_since
limit: rest.limit
offset: rest.offset
outputParameters:
- type: object
mapping: $.
- method: POST
name: createtask
description: Asana Create a task
call: tasks-tasks.createtask
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/tasks/{task-gid}
name: tasks-task-gid
description: REST surface for tasks-task_gid.
operations:
- method: GET
name: gettask
description: Asana Get a task
call: tasks-tasks.gettask
with:
task_gid: rest.task_gid
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updatetask
description: Asana Update a task
call: tasks-tasks.updatetask
with:
task_gid: rest.task_gid
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletetask
description: Asana Delete a task
call: tasks-tasks.deletetask
with:
task_gid: rest.task_gid
outputParameters:
- type: object
mapping: $.
- path: /v1/tasks/{task-gid}/subtasks
name: tasks-task-gid-subtasks
description: REST surface for tasks-task_gid-subtasks.
operations:
- method: GET
name: getsubtasksfortask
description: Asana Get subtasks from a task
call: tasks-tasks.getsubtasksfortask
with:
task_gid: rest.task_gid
limit: rest.limit
offset: rest.offset
outputParameters:
- type: object
mapping: $.
- method: POST
name: createsubtaskfortask
description: Asana Create a subtask
call: tasks-tasks.createsubtaskfortask
with:
task_gid: rest.task_gid
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/workspaces/{workspace-gid}/tasks/search
name: workspaces-workspace-gid-tasks-search
description: REST surface for workspaces-workspace_gid-tasks-search.
operations:
- method: GET
name: searchtasksforworkspace
description: Asana Search tasks in a workspace
call: tasks-tasks.searchtasksforworkspace
with:
workspace_gid: rest.workspace_gid
text: rest.text
assignee.any: rest.assignee.any
projects.any: rest.projects.any
tags.any: rest.tags.any
completed: rest.completed
is_subtask: rest.is_subtask
sort_by: rest.sort_by
sort_ascending: rest.sort_ascending
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: tasks-tasks-mcp
port: 9090
transport: http
description: MCP adapter for Asana Tasks API — Tasks. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: asana-get-tasks-project
description: Asana Get tasks from a project
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.gettasksforproject
with:
project_gid: tools.project_gid
completed_since: tools.completed_since
limit: tools.limit
offset: tools.offset
outputParameters:
- type: object
mapping: $.
- name: asana-get-multiple-tasks
description: Asana Get multiple tasks
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.gettasks
with:
project: tools.project
section: tools.section
workspace: tools.workspace
assignee: tools.assignee
completed_since: tools.completed_since
modified_since: tools.modified_since
limit: tools.limit
offset: tools.offset
outputParameters:
- type: object
mapping: $.
- name: asana-create-task
description: Asana Create a task
hints:
readOnly: false
destructive: false
idempotent: false
call: tasks-tasks.createtask
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: asana-get-task
description: Asana Get a task
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.gettask
with:
task_gid: tools.task_gid
outputParameters:
- type: object
mapping: $.
- name: asana-update-task
description: Asana Update a task
hints:
readOnly: false
destructive: false
idempotent: true
call: tasks-tasks.updatetask
with:
task_gid: tools.task_gid
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: asana-delete-task
description: Asana Delete a task
hints:
readOnly: false
destructive: true
idempotent: true
call: tasks-tasks.deletetask
with:
task_gid: tools.task_gid
outputParameters:
- type: object
mapping: $.
- name: asana-get-subtasks-task
description: Asana Get subtasks from a task
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.getsubtasksfortask
with:
task_gid: tools.task_gid
limit: tools.limit
offset: tools.offset
outputParameters:
- type: object
mapping: $.
- name: asana-create-subtask
description: Asana Create a subtask
hints:
readOnly: false
destructive: false
idempotent: false
call: tasks-tasks.createsubtaskfortask
with:
task_gid: tools.task_gid
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: asana-search-tasks-workspace
description: Asana Search tasks in a workspace
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.searchtasksforworkspace
with:
workspace_gid: tools.workspace_gid
text: tools.text
assignee.any: tools.assignee.any
projects.any: tools.projects.any
tags.any: tools.tags.any
completed: tools.completed
is_subtask: tools.is_subtask
sort_by: tools.sort_by
sort_ascending: tools.sort_ascending
outputParameters:
- type: object
mapping: $.