naftiko: 1.0.0-alpha2 info: label: Microsoft Project Online REST API — Projects description: 'Microsoft Project Online REST API — Projects. 9 operations. Lead operation: Microsoft Project List Projects. Self-contained Naftiko capability covering one Microsoft Project business surface.' tags: - Microsoft Project - Projects 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-projects baseUri: https://{tenant}.sharepoint.com/sites/pwa/_api/ProjectServer description: Microsoft Project Online REST API — Projects business capability. Self-contained, no shared references. resources: - name: Projects path: /Projects operations: - name: listprojects method: GET description: Microsoft Project List Projects outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createproject method: POST description: Microsoft Project Create Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: Projects('{projectId}') path: /Projects('{projectId}') operations: - name: getproject method: GET description: Microsoft Project Get Project outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleteproject method: DELETE description: Microsoft Project Delete Project outputRawFormat: json outputParameters: - name: result type: object value: $. - name: Projects('{projectId}')-Draft-checkIn(force={force}) path: /Projects('{projectId}')/Draft/checkIn(force={force}) operations: - name: checkinproject method: POST description: Microsoft Project Check in Project Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: force in: query type: boolean description: Whether to force check-in - name: Projects('{projectId}')-Draft-publish(checkIn={checkIn}) path: /Projects('{projectId}')/Draft/publish(checkIn={checkIn}) operations: - name: publishproject method: POST description: Microsoft Project Publish Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: checkIn in: query type: boolean description: Whether to check in after publishing - name: Projects('{projectId}')-QueueJobs path: /Projects('{projectId}')/QueueJobs operations: - name: listprojectqueuejobs method: GET description: Microsoft Project List Project Queue Jobs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: Projects('{projectId}')-checkOut() path: /Projects('{projectId}')/checkOut() operations: - name: checkoutproject method: POST description: Microsoft Project Check Out Project outputRawFormat: json outputParameters: - name: result type: object value: $. - name: Projects('{projectId}')-submitToWorkflow() path: /Projects('{projectId}')/submitToWorkflow() operations: - name: submitprojecttoworkflow method: POST description: Microsoft Project Submit Project to Workflow outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.MICROSOFT_PROJECT_API_KEY}}' exposes: - type: rest namespace: rest-projects-rest port: 8080 description: REST adapter for Microsoft Project Online REST API — Projects. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/projects name: projects description: REST surface for Projects. operations: - method: GET name: listprojects description: Microsoft Project List Projects call: rest-projects.listprojects outputParameters: - type: object mapping: $. - method: POST name: createproject description: Microsoft Project Create Project call: rest-projects.createproject with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects-projectid name: projects-projectid description: REST surface for Projects('{projectId}'). operations: - method: GET name: getproject description: Microsoft Project Get Project call: rest-projects.getproject outputParameters: - type: object mapping: $. - method: DELETE name: deleteproject description: Microsoft Project Delete Project call: rest-projects.deleteproject outputParameters: - type: object mapping: $. - path: /v1/projects-projectid/draft/checkin-force-force name: projects-projectid-draft-checkin-force-force description: REST surface for Projects('{projectId}')-Draft-checkIn(force={force}). operations: - method: POST name: checkinproject description: Microsoft Project Check in Project Draft call: rest-projects.checkinproject with: force: rest.force outputParameters: - type: object mapping: $. - path: /v1/projects-projectid/draft/publish-checkin-checkin name: projects-projectid-draft-publish-checkin-checkin description: REST surface for Projects('{projectId}')-Draft-publish(checkIn={checkIn}). operations: - method: POST name: publishproject description: Microsoft Project Publish Project call: rest-projects.publishproject with: checkIn: rest.checkIn outputParameters: - type: object mapping: $. - path: /v1/projects-projectid/queuejobs name: projects-projectid-queuejobs description: REST surface for Projects('{projectId}')-QueueJobs. operations: - method: GET name: listprojectqueuejobs description: Microsoft Project List Project Queue Jobs call: rest-projects.listprojectqueuejobs outputParameters: - type: object mapping: $. - path: /v1/projects-projectid/checkout name: projects-projectid-checkout description: REST surface for Projects('{projectId}')-checkOut(). operations: - method: POST name: checkoutproject description: Microsoft Project Check Out Project call: rest-projects.checkoutproject outputParameters: - type: object mapping: $. - path: /v1/projects-projectid/submittoworkflow name: projects-projectid-submittoworkflow description: REST surface for Projects('{projectId}')-submitToWorkflow(). operations: - method: POST name: submitprojecttoworkflow description: Microsoft Project Submit Project to Workflow call: rest-projects.submitprojecttoworkflow outputParameters: - type: object mapping: $. - type: mcp namespace: rest-projects-mcp port: 9090 transport: http description: MCP adapter for Microsoft Project Online REST API — Projects. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: microsoft-project-list-projects description: Microsoft Project List Projects hints: readOnly: true destructive: false idempotent: true call: rest-projects.listprojects outputParameters: - type: object mapping: $. - name: microsoft-project-create-project description: Microsoft Project Create Project hints: readOnly: false destructive: false idempotent: false call: rest-projects.createproject with: body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-project-get-project description: Microsoft Project Get Project hints: readOnly: true destructive: false idempotent: true call: rest-projects.getproject outputParameters: - type: object mapping: $. - name: microsoft-project-delete-project description: Microsoft Project Delete Project hints: readOnly: false destructive: true idempotent: true call: rest-projects.deleteproject outputParameters: - type: object mapping: $. - name: microsoft-project-check-project-draft description: Microsoft Project Check in Project Draft hints: readOnly: true destructive: false idempotent: false call: rest-projects.checkinproject with: force: tools.force outputParameters: - type: object mapping: $. - name: microsoft-project-publish-project description: Microsoft Project Publish Project hints: readOnly: false destructive: false idempotent: false call: rest-projects.publishproject with: checkIn: tools.checkIn outputParameters: - type: object mapping: $. - name: microsoft-project-list-project-queue description: Microsoft Project List Project Queue Jobs hints: readOnly: true destructive: false idempotent: true call: rest-projects.listprojectqueuejobs outputParameters: - type: object mapping: $. - name: microsoft-project-check-out-project description: Microsoft Project Check Out Project hints: readOnly: true destructive: false idempotent: false call: rest-projects.checkoutproject outputParameters: - type: object mapping: $. - name: microsoft-project-submit-project-workflow description: Microsoft Project Submit Project to Workflow hints: readOnly: false destructive: false idempotent: false call: rest-projects.submitprojecttoworkflow outputParameters: - type: object mapping: $.