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: $.