Microsoft Project · Capability

Microsoft Project Online REST API — Tasks

Microsoft Project Online REST API — Tasks. 8 operations. Lead operation: Microsoft Project List Draft Task Links. Self-contained Naftiko capability covering one Microsoft Project business surface.

Run with Naftiko Microsoft ProjectTasks

What You Can Do

GET
Listdrafttasklinks — Microsoft Project List Draft Task Links
/v1/projects-projectid/draft/tasklinks
POST
Createdrafttasklink — Microsoft Project Create Draft Task Link
/v1/projects-projectid/draft/tasklinks
GET
Listdrafttasks — Microsoft Project List Draft Tasks
/v1/projects-projectid/draft/tasks
POST
Createdrafttask — Microsoft Project Create Draft Task
/v1/projects-projectid/draft/tasks
DELETE
Deletedrafttask — Microsoft Project Delete Draft Task
/v1/projects-projectid/draft/tasks-taskid
PATCH
Updatedrafttask — Microsoft Project Update Draft Task
/v1/projects-projectid/draft/tasks-taskid
GET
Listprojecttasks — Microsoft Project List Project Tasks
/v1/projects-projectid/tasks
GET
Getprojecttask — Microsoft Project Get Project Task
/v1/projects-projectid/tasks-taskid

MCP Tools

microsoft-project-list-draft-task

Microsoft Project List Draft Task Links

read-only idempotent
microsoft-project-create-draft-task

Microsoft Project Create Draft Task Link

microsoft-project-list-draft-tasks

Microsoft Project List Draft Tasks

read-only idempotent
microsoft-project-create-draft-task-2

Microsoft Project Create Draft Task

microsoft-project-delete-draft-task

Microsoft Project Delete Draft Task

idempotent
microsoft-project-update-draft-task

Microsoft Project Update Draft Task

idempotent
microsoft-project-list-project-tasks

Microsoft Project List Project Tasks

read-only idempotent
microsoft-project-get-project-task

Microsoft Project Get Project Task

read-only idempotent

Capability Spec

rest-tasks.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Microsoft Project Online REST API — Tasks
  description: 'Microsoft Project Online REST API — Tasks. 8 operations. Lead operation: Microsoft Project List Draft Task
    Links. Self-contained Naftiko capability covering one Microsoft Project business surface.'
  tags:
  - Microsoft Project
  - Tasks
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MICROSOFT_PROJECT_API_KEY: MICROSOFT_PROJECT_API_KEY
capability:
  consumes:
  - type: http
    namespace: rest-tasks
    baseUri: https://{tenant}.sharepoint.com/sites/pwa/_api/ProjectServer
    description: Microsoft Project Online REST API — Tasks business capability. Self-contained, no shared references.
    resources:
    - name: Projects('{projectId}')-Draft-TaskLinks
      path: /Projects('{projectId}')/Draft/TaskLinks
      operations:
      - name: listdrafttasklinks
        method: GET
        description: Microsoft Project List Draft Task Links
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createdrafttasklink
        method: POST
        description: Microsoft Project Create Draft Task Link
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: Projects('{projectId}')-Draft-Tasks
      path: /Projects('{projectId}')/Draft/Tasks
      operations:
      - name: listdrafttasks
        method: GET
        description: Microsoft Project List Draft Tasks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createdrafttask
        method: POST
        description: Microsoft Project Create Draft Task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Projects('{projectId}')-Draft-Tasks('{taskId}')
      path: /Projects('{projectId}')/Draft/Tasks('{taskId}')
      operations:
      - name: deletedrafttask
        method: DELETE
        description: Microsoft Project Delete Draft Task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatedrafttask
        method: PATCH
        description: Microsoft Project Update Draft Task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: Projects('{projectId}')-Tasks
      path: /Projects('{projectId}')/Tasks
      operations:
      - name: listprojecttasks
        method: GET
        description: Microsoft Project List Project Tasks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: Projects('{projectId}')-Tasks('{taskId}')
      path: /Projects('{projectId}')/Tasks('{taskId}')
      operations:
      - name: getprojecttask
        method: GET
        description: Microsoft Project Get Project Task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.MICROSOFT_PROJECT_API_KEY}}'
  exposes:
  - type: rest
    namespace: rest-tasks-rest
    port: 8080
    description: REST adapter for Microsoft Project Online REST API — Tasks. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/projects-projectid/draft/tasklinks
      name: projects-projectid-draft-tasklinks
      description: REST surface for Projects('{projectId}')-Draft-TaskLinks.
      operations:
      - method: GET
        name: listdrafttasklinks
        description: Microsoft Project List Draft Task Links
        call: rest-tasks.listdrafttasklinks
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createdrafttasklink
        description: Microsoft Project Create Draft Task Link
        call: rest-tasks.createdrafttasklink
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects-projectid/draft/tasks
      name: projects-projectid-draft-tasks
      description: REST surface for Projects('{projectId}')-Draft-Tasks.
      operations:
      - method: GET
        name: listdrafttasks
        description: Microsoft Project List Draft Tasks
        call: rest-tasks.listdrafttasks
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createdrafttask
        description: Microsoft Project Create Draft Task
        call: rest-tasks.createdrafttask
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects-projectid/draft/tasks-taskid
      name: projects-projectid-draft-tasks-taskid
      description: REST surface for Projects('{projectId}')-Draft-Tasks('{taskId}').
      operations:
      - method: DELETE
        name: deletedrafttask
        description: Microsoft Project Delete Draft Task
        call: rest-tasks.deletedrafttask
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatedrafttask
        description: Microsoft Project Update Draft Task
        call: rest-tasks.updatedrafttask
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects-projectid/tasks
      name: projects-projectid-tasks
      description: REST surface for Projects('{projectId}')-Tasks.
      operations:
      - method: GET
        name: listprojecttasks
        description: Microsoft Project List Project Tasks
        call: rest-tasks.listprojecttasks
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects-projectid/tasks-taskid
      name: projects-projectid-tasks-taskid
      description: REST surface for Projects('{projectId}')-Tasks('{taskId}').
      operations:
      - method: GET
        name: getprojecttask
        description: Microsoft Project Get Project Task
        call: rest-tasks.getprojecttask
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: rest-tasks-mcp
    port: 9090
    transport: http
    description: MCP adapter for Microsoft Project Online REST API — Tasks. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: microsoft-project-list-draft-task
      description: Microsoft Project List Draft Task Links
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-tasks.listdrafttasklinks
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-project-create-draft-task
      description: Microsoft Project Create Draft Task Link
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-tasks.createdrafttasklink
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-project-list-draft-tasks
      description: Microsoft Project List Draft Tasks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-tasks.listdrafttasks
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-project-create-draft-task-2
      description: Microsoft Project Create Draft Task
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-tasks.createdrafttask
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-project-delete-draft-task
      description: Microsoft Project Delete Draft Task
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: rest-tasks.deletedrafttask
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-project-update-draft-task
      description: Microsoft Project Update Draft Task
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: rest-tasks.updatedrafttask
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-project-list-project-tasks
      description: Microsoft Project List Project Tasks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-tasks.listprojecttasks
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-project-get-project-task
      description: Microsoft Project Get Project Task
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-tasks.getprojecttask
      outputParameters:
      - type: object
        mapping: $.