naftiko: 1.0.0-alpha2 info: label: Microsoft Azure Azure OpenAI — Threads description: 'Microsoft Azure Azure OpenAI — Threads. 19 operations. Lead operation: Microsoft Azure Post Threads. Self-contained Naftiko capability covering one Microsoft Azure business surface.' tags: - Microsoft Azure - Threads created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MICROSOFT_AZURE_API_KEY: MICROSOFT_AZURE_API_KEY capability: consumes: - type: http namespace: azure-openai-threads baseUri: '' description: Microsoft Azure Azure OpenAI — Threads business capability. Self-contained, no shared references. resources: - name: threads path: /threads operations: - name: microsoftazurecreatethread method: POST description: Microsoft Azure Post Threads outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: string required: true - name: threads-runs path: /threads/runs operations: - name: microsoftazurecreatethreadandrun method: POST description: Microsoft Azure Post Threads Runs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: string required: true - name: threads-threadId path: /threads/{threadId} operations: - name: microsoftazuregetthread method: GET description: Microsoft Azure Get Threads Threadid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to retrieve information about. required: true - name: microsoftazuremodifythread method: POST description: Microsoft Azure Post Threads Threadid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to modify. required: true - name: body in: body type: object required: true - name: microsoftazuredeletethread method: DELETE description: Microsoft Azure Delete Threads Threadid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to delete. required: true - name: threads-threadId-messages path: /threads/{threadId}/messages operations: - name: microsoftazurelistmessages method: GET description: Microsoft Azure Get Threads Threadid Messages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to list messages from. required: true - name: limit in: query type: integer description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query type: string description: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - name: after in: query type: string description: A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, end - name: before in: query type: string description: A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, en - name: microsoftazurecreatemessage method: POST description: Microsoft Azure Post Threads Threadid Messages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to create the new message on. required: true - name: body in: body type: object required: true - name: threads-threadId-messages-messageId path: /threads/{threadId}/messages/{messageId} operations: - name: microsoftazuregetmessage method: GET description: Microsoft Azure Get Threads Threadid Messages Messageid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to retrieve the specified message from. required: true - name: messageId in: path type: string description: The ID of the message to retrieve from the specified thread. required: true - name: microsoftazuremodifymessage method: POST description: Microsoft Azure Post Threads Threadid Messages Messageid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread containing the specified message to modify. required: true - name: messageId in: path type: string description: The ID of the message to modify on the specified thread. required: true - name: body in: body type: object required: true - name: threads-threadId-messages-messageId-files path: /threads/{threadId}/messages/{messageId}/files operations: - name: microsoftazurelistmessagefiles method: GET description: Microsoft Azure Get Threads Threadid Messages Messageid Files outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread containing the message to list files from. required: true - name: messageId in: path type: string description: The ID of the message to list files from. required: true - name: limit in: query type: integer description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query type: string description: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - name: after in: query type: string description: A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, end - name: before in: query type: string description: A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, en - name: threads-threadId-messages-messageId-files-fileId path: /threads/{threadId}/messages/{messageId}/files/{fileId} operations: - name: microsoftazuregetmessagefile method: GET description: Microsoft Azure Get Threads Threadid Messages Messageid Files Fileid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread containing the message to get information from. required: true - name: messageId in: path type: string description: The ID of the message to get information from. required: true - name: fileId in: path type: string description: The ID of the file to get information about. required: true - name: threads-threadId-runs path: /threads/{threadId}/runs operations: - name: microsoftazurelistruns method: GET description: Microsoft Azure Get Threads Threadid Runs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to list runs from. required: true - name: limit in: query type: integer description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query type: string description: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - name: after in: query type: string description: A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, end - name: before in: query type: string description: A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, en - name: microsoftazurecreaterun method: POST description: Microsoft Azure Post Threads Threadid Runs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to run. required: true - name: body in: body type: object required: true - name: threads-threadId-runs-runId path: /threads/{threadId}/runs/{runId} operations: - name: microsoftazuregetrun method: GET description: Microsoft Azure Get Threads Threadid Runs Runid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread to retrieve run information from. required: true - name: runId in: path type: string description: The ID of the thread to retrieve information about. required: true - name: microsoftazuremodifyrun method: POST description: Microsoft Azure Post Threads Threadid Runs Runid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread associated with the specified run. required: true - name: runId in: path type: string description: The ID of the run to modify. required: true - name: body in: body type: object required: true - name: threads-threadId-runs-runId-cancel path: /threads/{threadId}/runs/{runId}/cancel operations: - name: microsoftazurecancelrun method: POST description: Microsoft Azure Post Threads Threadid Runs Runid Cancel outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread being run. required: true - name: runId in: path type: string description: The ID of the run to cancel. required: true - name: threads-threadId-runs-runId-steps path: /threads/{threadId}/runs/{runId}/steps operations: - name: microsoftazurelistrunsteps method: GET description: Microsoft Azure Get Threads Threadid Runs Runid Steps outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread that was run. required: true - name: runId in: path type: string description: The ID of the run to list steps from. required: true - name: limit in: query type: integer description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query type: string description: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - name: after in: query type: string description: A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, end - name: before in: query type: string description: A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, en - name: threads-threadId-runs-runId-steps-stepId path: /threads/{threadId}/runs/{runId}/steps/{stepId} operations: - name: microsoftazuregetrunstep method: GET description: Microsoft Azure Get Threads Threadid Runs Runid Steps Stepid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread that was run. required: true - name: runId in: path type: string description: The ID of the specific run to retrieve the step from. required: true - name: stepId in: path type: string description: The ID of the step to retrieve information about. required: true - name: threads-threadId-runs-runId-submit_tool_outputs path: /threads/{threadId}/runs/{runId}/submit_tool_outputs operations: - name: microsoftazuresubmittooloutputstorun method: POST description: Microsoft Azure Post Threads Threadid Runs Runid Submit Tool Outputs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: threadId in: path type: string description: The ID of the thread that was run. required: true - name: runId in: path type: string description: The ID of the run that requires tool outputs. required: true - name: body in: body type: object required: true exposes: - type: rest namespace: azure-openai-threads-rest port: 8080 description: REST adapter for Microsoft Azure Azure OpenAI — Threads. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/threads name: threads description: REST surface for threads. operations: - method: POST name: microsoftazurecreatethread description: Microsoft Azure Post Threads call: azure-openai-threads.microsoftazurecreatethread with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/threads/runs name: threads-runs description: REST surface for threads-runs. operations: - method: POST name: microsoftazurecreatethreadandrun description: Microsoft Azure Post Threads Runs call: azure-openai-threads.microsoftazurecreatethreadandrun with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid} name: threads-threadid description: REST surface for threads-threadId. operations: - method: GET name: microsoftazuregetthread description: Microsoft Azure Get Threads Threadid call: azure-openai-threads.microsoftazuregetthread with: threadId: rest.threadId outputParameters: - type: object mapping: $. - method: POST name: microsoftazuremodifythread description: Microsoft Azure Post Threads Threadid call: azure-openai-threads.microsoftazuremodifythread with: threadId: rest.threadId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: microsoftazuredeletethread description: Microsoft Azure Delete Threads Threadid call: azure-openai-threads.microsoftazuredeletethread with: threadId: rest.threadId outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/messages name: threads-threadid-messages description: REST surface for threads-threadId-messages. operations: - method: GET name: microsoftazurelistmessages description: Microsoft Azure Get Threads Threadid Messages call: azure-openai-threads.microsoftazurelistmessages with: threadId: rest.threadId limit: rest.limit order: rest.order after: rest.after before: rest.before outputParameters: - type: object mapping: $. - method: POST name: microsoftazurecreatemessage description: Microsoft Azure Post Threads Threadid Messages call: azure-openai-threads.microsoftazurecreatemessage with: threadId: rest.threadId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/messages/{messageid} name: threads-threadid-messages-messageid description: REST surface for threads-threadId-messages-messageId. operations: - method: GET name: microsoftazuregetmessage description: Microsoft Azure Get Threads Threadid Messages Messageid call: azure-openai-threads.microsoftazuregetmessage with: threadId: rest.threadId messageId: rest.messageId outputParameters: - type: object mapping: $. - method: POST name: microsoftazuremodifymessage description: Microsoft Azure Post Threads Threadid Messages Messageid call: azure-openai-threads.microsoftazuremodifymessage with: threadId: rest.threadId messageId: rest.messageId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/messages/{messageid}/files name: threads-threadid-messages-messageid-files description: REST surface for threads-threadId-messages-messageId-files. operations: - method: GET name: microsoftazurelistmessagefiles description: Microsoft Azure Get Threads Threadid Messages Messageid Files call: azure-openai-threads.microsoftazurelistmessagefiles with: threadId: rest.threadId messageId: rest.messageId limit: rest.limit order: rest.order after: rest.after before: rest.before outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/messages/{messageid}/files/{fileid} name: threads-threadid-messages-messageid-files-fileid description: REST surface for threads-threadId-messages-messageId-files-fileId. operations: - method: GET name: microsoftazuregetmessagefile description: Microsoft Azure Get Threads Threadid Messages Messageid Files Fileid call: azure-openai-threads.microsoftazuregetmessagefile with: threadId: rest.threadId messageId: rest.messageId fileId: rest.fileId outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/runs name: threads-threadid-runs description: REST surface for threads-threadId-runs. operations: - method: GET name: microsoftazurelistruns description: Microsoft Azure Get Threads Threadid Runs call: azure-openai-threads.microsoftazurelistruns with: threadId: rest.threadId limit: rest.limit order: rest.order after: rest.after before: rest.before outputParameters: - type: object mapping: $. - method: POST name: microsoftazurecreaterun description: Microsoft Azure Post Threads Threadid Runs call: azure-openai-threads.microsoftazurecreaterun with: threadId: rest.threadId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/runs/{runid} name: threads-threadid-runs-runid description: REST surface for threads-threadId-runs-runId. operations: - method: GET name: microsoftazuregetrun description: Microsoft Azure Get Threads Threadid Runs Runid call: azure-openai-threads.microsoftazuregetrun with: threadId: rest.threadId runId: rest.runId outputParameters: - type: object mapping: $. - method: POST name: microsoftazuremodifyrun description: Microsoft Azure Post Threads Threadid Runs Runid call: azure-openai-threads.microsoftazuremodifyrun with: threadId: rest.threadId runId: rest.runId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/runs/{runid}/cancel name: threads-threadid-runs-runid-cancel description: REST surface for threads-threadId-runs-runId-cancel. operations: - method: POST name: microsoftazurecancelrun description: Microsoft Azure Post Threads Threadid Runs Runid Cancel call: azure-openai-threads.microsoftazurecancelrun with: threadId: rest.threadId runId: rest.runId outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/runs/{runid}/steps name: threads-threadid-runs-runid-steps description: REST surface for threads-threadId-runs-runId-steps. operations: - method: GET name: microsoftazurelistrunsteps description: Microsoft Azure Get Threads Threadid Runs Runid Steps call: azure-openai-threads.microsoftazurelistrunsteps with: threadId: rest.threadId runId: rest.runId limit: rest.limit order: rest.order after: rest.after before: rest.before outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/runs/{runid}/steps/{stepid} name: threads-threadid-runs-runid-steps-stepid description: REST surface for threads-threadId-runs-runId-steps-stepId. operations: - method: GET name: microsoftazuregetrunstep description: Microsoft Azure Get Threads Threadid Runs Runid Steps Stepid call: azure-openai-threads.microsoftazuregetrunstep with: threadId: rest.threadId runId: rest.runId stepId: rest.stepId outputParameters: - type: object mapping: $. - path: /v1/threads/{threadid}/runs/{runid}/submit-tool-outputs name: threads-threadid-runs-runid-submit-tool-outputs description: REST surface for threads-threadId-runs-runId-submit_tool_outputs. operations: - method: POST name: microsoftazuresubmittooloutputstorun description: Microsoft Azure Post Threads Threadid Runs Runid Submit Tool Outputs call: azure-openai-threads.microsoftazuresubmittooloutputstorun with: threadId: rest.threadId runId: rest.runId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: azure-openai-threads-mcp port: 9090 transport: http description: MCP adapter for Microsoft Azure Azure OpenAI — Threads. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: microsoft-azure-post-threads description: Microsoft Azure Post Threads hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazurecreatethread with: body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-runs description: Microsoft Azure Post Threads Runs hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazurecreatethreadandrun with: body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid description: Microsoft Azure Get Threads Threadid hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazuregetthread with: threadId: tools.threadId outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-threadid description: Microsoft Azure Post Threads Threadid hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazuremodifythread with: threadId: tools.threadId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-delete-threads-threadid description: Microsoft Azure Delete Threads Threadid hints: readOnly: false destructive: true idempotent: true call: azure-openai-threads.microsoftazuredeletethread with: threadId: tools.threadId outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-2 description: Microsoft Azure Get Threads Threadid Messages hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazurelistmessages with: threadId: tools.threadId limit: tools.limit order: tools.order after: tools.after before: tools.before outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-threadid-2 description: Microsoft Azure Post Threads Threadid Messages hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazurecreatemessage with: threadId: tools.threadId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-3 description: Microsoft Azure Get Threads Threadid Messages Messageid hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazuregetmessage with: threadId: tools.threadId messageId: tools.messageId outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-threadid-3 description: Microsoft Azure Post Threads Threadid Messages Messageid hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazuremodifymessage with: threadId: tools.threadId messageId: tools.messageId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-4 description: Microsoft Azure Get Threads Threadid Messages Messageid Files hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazurelistmessagefiles with: threadId: tools.threadId messageId: tools.messageId limit: tools.limit order: tools.order after: tools.after before: tools.before outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-5 description: Microsoft Azure Get Threads Threadid Messages Messageid Files Fileid hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazuregetmessagefile with: threadId: tools.threadId messageId: tools.messageId fileId: tools.fileId outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-6 description: Microsoft Azure Get Threads Threadid Runs hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazurelistruns with: threadId: tools.threadId limit: tools.limit order: tools.order after: tools.after before: tools.before outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-threadid-4 description: Microsoft Azure Post Threads Threadid Runs hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazurecreaterun with: threadId: tools.threadId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-7 description: Microsoft Azure Get Threads Threadid Runs Runid hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazuregetrun with: threadId: tools.threadId runId: tools.runId outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-threadid-5 description: Microsoft Azure Post Threads Threadid Runs Runid hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazuremodifyrun with: threadId: tools.threadId runId: tools.runId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-threadid-6 description: Microsoft Azure Post Threads Threadid Runs Runid Cancel hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazurecancelrun with: threadId: tools.threadId runId: tools.runId outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-8 description: Microsoft Azure Get Threads Threadid Runs Runid Steps hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazurelistrunsteps with: threadId: tools.threadId runId: tools.runId limit: tools.limit order: tools.order after: tools.after before: tools.before outputParameters: - type: object mapping: $. - name: microsoft-azure-get-threads-threadid-9 description: Microsoft Azure Get Threads Threadid Runs Runid Steps Stepid hints: readOnly: true destructive: false idempotent: true call: azure-openai-threads.microsoftazuregetrunstep with: threadId: tools.threadId runId: tools.runId stepId: tools.stepId outputParameters: - type: object mapping: $. - name: microsoft-azure-post-threads-threadid-7 description: Microsoft Azure Post Threads Threadid Runs Runid Submit Tool Outputs hints: readOnly: false destructive: false idempotent: false call: azure-openai-threads.microsoftazuresubmittooloutputstorun with: threadId: tools.threadId runId: tools.runId body: tools.body outputParameters: - type: object mapping: $.