Google Tasks · Capability

Google Tasks API

Google Tasks API. 13 operations. Lead operation: Clear completed tasks. Self-contained Naftiko capability covering one Google Tasks business surface.

Run with Naftiko Google TasksGoogle Tasks API

What You Can Do

POST
Cleartasks — Clear completed tasks
/v1/lists/{tasklistid}/clear
GET
Listtasks — List tasks
/v1/lists/{tasklistid}/tasks
POST
Inserttask — Create a task
/v1/lists/{tasklistid}/tasks
GET
Gettask — Get a task
/v1/lists/{tasklistid}/tasks/{taskid}
PUT
Updatetask — Update a task
/v1/lists/{tasklistid}/tasks/{taskid}
DELETE
Deletetask — Delete a task
/v1/lists/{tasklistid}/tasks/{taskid}
POST
Movetask — Move a task
/v1/lists/{tasklistid}/tasks/{taskid}/move
GET
Listtasklists — List task lists
/v1/users/me/lists
POST
Inserttasklist — Create a task list
/v1/users/me/lists
GET
Gettasklist — Get a task list
/v1/users/me/lists/{tasklistid}
PUT
Updatetasklist — Update a task list
/v1/users/me/lists/{tasklistid}
PATCH
Patchtasklist — Patch a task list
/v1/users/me/lists/{tasklistid}
DELETE
Deletetasklist — Delete a task list
/v1/users/me/lists/{tasklistid}

MCP Tools

clear-completed-tasks

Clear completed tasks

list-tasks

List tasks

read-only idempotent
create-task

Create a task

get-task

Get a task

read-only idempotent
update-task

Update a task

idempotent
delete-task

Delete a task

idempotent
move-task

Move a task

list-task-lists

List task lists

read-only idempotent
create-task-list

Create a task list

get-task-list

Get a task list

read-only idempotent
update-task-list

Update a task list

idempotent
patch-task-list

Patch a task list

idempotent
delete-task-list

Delete a task list

idempotent

Capability Spec

tasks.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Tasks API
  description: 'Google Tasks API. 13 operations. Lead operation: Clear completed tasks. Self-contained Naftiko capability
    covering one Google Tasks business surface.'
  tags:
  - Google Tasks
  - Google Tasks API
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GOOGLE_TASKS_API_KEY: GOOGLE_TASKS_API_KEY
capability:
  consumes:
  - type: http
    namespace: tasks
    baseUri: https://tasks.googleapis.com/tasks/v1
    description: Google Tasks API business capability. Self-contained, no shared references.
    resources:
    - name: lists-taskListId-clear
      path: /lists/{taskListId}/clear
      operations:
      - name: cleartasks
        method: POST
        description: Clear completed tasks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
    - name: lists-taskListId-tasks
      path: /lists/{taskListId}/tasks
      operations:
      - name: listtasks
        method: GET
        description: List tasks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: maxResults
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        - name: showCompleted
          in: query
          type: boolean
        - name: showHidden
          in: query
          type: boolean
        - name: dueMin
          in: query
          type: string
        - name: dueMax
          in: query
          type: string
      - name: inserttask
        method: POST
        description: Create a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: parent
          in: query
          type: string
        - name: previous
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: lists-taskListId-tasks-taskId
      path: /lists/{taskListId}/tasks/{taskId}
      operations:
      - name: gettask
        method: GET
        description: Get a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: taskId
          in: path
          type: string
          required: true
      - name: updatetask
        method: PUT
        description: Update a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: taskId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deletetask
        method: DELETE
        description: Delete a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: taskId
          in: path
          type: string
          required: true
    - name: lists-taskListId-tasks-taskId-move
      path: /lists/{taskListId}/tasks/{taskId}/move
      operations:
      - name: movetask
        method: POST
        description: Move a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: taskId
          in: path
          type: string
          required: true
        - name: parent
          in: query
          type: string
        - name: previous
          in: query
          type: string
    - name: users-@me-lists
      path: /users/@me/lists
      operations:
      - name: listtasklists
        method: GET
        description: List task lists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: maxResults
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
      - name: inserttasklist
        method: POST
        description: Create a task list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: users-@me-lists-taskListId
      path: /users/@me/lists/{taskListId}
      operations:
      - name: gettasklist
        method: GET
        description: Get a task list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
      - name: updatetasklist
        method: PUT
        description: Update a task list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: patchtasklist
        method: PATCH
        description: Patch a task list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deletetasklist
        method: DELETE
        description: Delete a task list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskListId
          in: path
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.GOOGLE_TASKS_API_KEY}}'
  exposes:
  - type: rest
    namespace: tasks-rest
    port: 8080
    description: REST adapter for Google Tasks API. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/lists/{tasklistid}/clear
      name: lists-tasklistid-clear
      description: REST surface for lists-taskListId-clear.
      operations:
      - method: POST
        name: cleartasks
        description: Clear completed tasks
        call: tasks.cleartasks
        with:
          taskListId: rest.taskListId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/lists/{tasklistid}/tasks
      name: lists-tasklistid-tasks
      description: REST surface for lists-taskListId-tasks.
      operations:
      - method: GET
        name: listtasks
        description: List tasks
        call: tasks.listtasks
        with:
          taskListId: rest.taskListId
          maxResults: rest.maxResults
          pageToken: rest.pageToken
          showCompleted: rest.showCompleted
          showHidden: rest.showHidden
          dueMin: rest.dueMin
          dueMax: rest.dueMax
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: inserttask
        description: Create a task
        call: tasks.inserttask
        with:
          taskListId: rest.taskListId
          parent: rest.parent
          previous: rest.previous
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/lists/{tasklistid}/tasks/{taskid}
      name: lists-tasklistid-tasks-taskid
      description: REST surface for lists-taskListId-tasks-taskId.
      operations:
      - method: GET
        name: gettask
        description: Get a task
        call: tasks.gettask
        with:
          taskListId: rest.taskListId
          taskId: rest.taskId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatetask
        description: Update a task
        call: tasks.updatetask
        with:
          taskListId: rest.taskListId
          taskId: rest.taskId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletetask
        description: Delete a task
        call: tasks.deletetask
        with:
          taskListId: rest.taskListId
          taskId: rest.taskId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/lists/{tasklistid}/tasks/{taskid}/move
      name: lists-tasklistid-tasks-taskid-move
      description: REST surface for lists-taskListId-tasks-taskId-move.
      operations:
      - method: POST
        name: movetask
        description: Move a task
        call: tasks.movetask
        with:
          taskListId: rest.taskListId
          taskId: rest.taskId
          parent: rest.parent
          previous: rest.previous
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/lists
      name: users-me-lists
      description: REST surface for users-@me-lists.
      operations:
      - method: GET
        name: listtasklists
        description: List task lists
        call: tasks.listtasklists
        with:
          maxResults: rest.maxResults
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: inserttasklist
        description: Create a task list
        call: tasks.inserttasklist
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/lists/{tasklistid}
      name: users-me-lists-tasklistid
      description: REST surface for users-@me-lists-taskListId.
      operations:
      - method: GET
        name: gettasklist
        description: Get a task list
        call: tasks.gettasklist
        with:
          taskListId: rest.taskListId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatetasklist
        description: Update a task list
        call: tasks.updatetasklist
        with:
          taskListId: rest.taskListId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: patchtasklist
        description: Patch a task list
        call: tasks.patchtasklist
        with:
          taskListId: rest.taskListId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletetasklist
        description: Delete a task list
        call: tasks.deletetasklist
        with:
          taskListId: rest.taskListId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: tasks-mcp
    port: 9090
    transport: http
    description: MCP adapter for Google Tasks API. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: clear-completed-tasks
      description: Clear completed tasks
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tasks.cleartasks
      with:
        taskListId: tools.taskListId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-tasks
      description: List tasks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks.listtasks
      with:
        taskListId: tools.taskListId
        maxResults: tools.maxResults
        pageToken: tools.pageToken
        showCompleted: tools.showCompleted
        showHidden: tools.showHidden
        dueMin: tools.dueMin
        dueMax: tools.dueMax
      outputParameters:
      - type: object
        mapping: $.
    - name: create-task
      description: Create a task
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tasks.inserttask
      with:
        taskListId: tools.taskListId
        parent: tools.parent
        previous: tools.previous
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-task
      description: Get a task
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks.gettask
      with:
        taskListId: tools.taskListId
        taskId: tools.taskId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-task
      description: Update a task
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: tasks.updatetask
      with:
        taskListId: tools.taskListId
        taskId: tools.taskId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-task
      description: Delete a task
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tasks.deletetask
      with:
        taskListId: tools.taskListId
        taskId: tools.taskId
      outputParameters:
      - type: object
        mapping: $.
    - name: move-task
      description: Move a task
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tasks.movetask
      with:
        taskListId: tools.taskListId
        taskId: tools.taskId
        parent: tools.parent
        previous: tools.previous
      outputParameters:
      - type: object
        mapping: $.
    - name: list-task-lists
      description: List task lists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks.listtasklists
      with:
        maxResults: tools.maxResults
        pageToken: tools.pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: create-task-list
      description: Create a task list
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tasks.inserttasklist
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-task-list
      description: Get a task list
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks.gettasklist
      with:
        taskListId: tools.taskListId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-task-list
      description: Update a task list
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: tasks.updatetasklist
      with:
        taskListId: tools.taskListId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: patch-task-list
      description: Patch a task list
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: tasks.patchtasklist
      with:
        taskListId: tools.taskListId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-task-list
      description: Delete a task list
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tasks.deletetasklist
      with:
        taskListId: tools.taskListId
      outputParameters:
      - type: object
        mapping: $.