naftiko: 1.0.0-alpha2 info: label: Postmark Server API — Messages API description: 'Postmark Server API — Messages API. 11 operations. Lead operation: Postmark Inbound message search. Self-contained Naftiko capability covering one Postmark business surface.' tags: - Postmark - Messages API created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: POSTMARK_API_KEY: POSTMARK_API_KEY capability: consumes: - type: http namespace: server-messages-api baseUri: https://api.postmarkapp.com description: Postmark Server API — Messages API business capability. Self-contained, no shared references. resources: - name: messages-inbound path: /messages/inbound operations: - name: searchinboundmessages method: GET description: Postmark Inbound message search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: count in: query type: integer description: Number of messages to return per request. Max 500. required: true - name: offset in: query type: integer description: Number of messages to skip required: true - name: recipient in: query type: string description: Filter by the user who was receiving the email - name: fromemail in: query type: string description: Filter by the sender email address - name: subject in: query type: string description: Filter by email subject - name: mailboxhash in: query type: string description: Filter by mailboxhash - name: tag in: query type: string description: Filter by tag - name: status in: query type: string description: Filter by status (`blocked`, `processed`, `queued`, `failed`, `scheduled`) - name: todate in: query type: string description: Filter messages up to the date specified. e.g. `2014-02-01` - name: fromdate in: query type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` - name: messages-inbound-messageid-bypass path: /messages/inbound/{messageid}/bypass operations: - name: bypassrulesforinboundmessage method: PUT description: Postmark Bypass rules for a blocked inbound message outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: messageid in: path type: string description: The ID of the message which should bypass inbound rules. required: true - name: messages-inbound-messageid-details path: /messages/inbound/{messageid}/details operations: - name: getinboundmessagedetails method: GET description: Postmark Inbound message details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: messageid in: path type: string description: The ID of the message for which to details will be retrieved. required: true - name: messages-inbound-messageid-retry path: /messages/inbound/{messageid}/retry operations: - name: retryinboundmessageprocessing method: PUT description: Postmark Retry a failed inbound message for processing outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: messageid in: path type: string description: The ID of the inbound message on which we should retry processing. required: true - name: messages-outbound path: /messages/outbound operations: - name: searchoutboundmessages method: GET description: Postmark Outbound message search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: count in: query type: integer description: Number of messages to return per request. Max 500. required: true - name: offset in: query type: integer description: Number of messages to skip required: true - name: recipient in: query type: string description: Filter by the user who was receiving the email - name: fromemail in: query type: string description: Filter by the sender email address - name: tag in: query type: string description: Filter by tag - name: status in: query type: string description: Filter by status (`queued` or `sent`) - name: todate in: query type: string description: Filter messages up to the date specified. e.g. `2014-02-01` - name: fromdate in: query type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` - name: messages-outbound-clicks path: /messages/outbound/clicks operations: - name: searchclicksforoutboundmessages method: GET description: Postmark Clicks for a all messages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: count in: query type: integer description: Number of message clicks to return per request. Max 500. required: true - name: offset in: query type: integer description: Number of messages to skip required: true - name: recipient in: query type: string description: Filter by To, Cc, Bcc - name: tag in: query type: string description: Filter by tag - name: client_name in: query type: string description: Filter by client name, i.e. Outlook, Gmail - name: client_company in: query type: string description: Filter by company, i.e. Microsoft, Apple, Google - name: client_family in: query type: string description: Filter by client family, i.e. OS X, Chrome - name: os_name in: query type: string description: Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7 - name: os_family in: query type: string description: Filter by kind of OS used without specific version, i.e. OS X, Windows - name: os_company in: query type: string description: Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation - name: platform in: query type: string description: Filter by platform, i.e. webmail, desktop, mobile - name: country in: query type: string description: Filter by country messages were opened in, i.e. Denmark, Russia - name: region in: query type: string description: Filter by full name of region messages were opened in, i.e. Moscow, New York - name: city in: query type: string description: Filter by full name of region messages were opened in, i.e. Moscow, New York - name: messages-outbound-clicks-messageid path: /messages/outbound/clicks/{messageid} operations: - name: getclicksforsingleoutboundmessage method: GET description: Postmark Retrieve Message Clicks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: messageid in: path type: string description: The ID of the Outbound Message for which click statistics should be retrieved. required: true - name: count in: query type: integer description: Number of message clicks to return per request. Max 500. required: true - name: offset in: query type: integer description: Number of messages to skip. required: true - name: messages-outbound-opens path: /messages/outbound/opens operations: - name: searchopensforoutboundmessages method: GET description: Postmark Opens for all messages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: count in: query type: integer description: Number of message opens to return per request. Max 500. required: true - name: offset in: query type: integer description: Number of messages to skip required: true - name: recipient in: query type: string description: Filter by To, Cc, Bcc - name: tag in: query type: string description: Filter by tag - name: client_name in: query type: string description: Filter by client name, i.e. Outlook, Gmail - name: client_company in: query type: string description: Filter by company, i.e. Microsoft, Apple, Google - name: client_family in: query type: string description: Filter by client family, i.e. OS X, Chrome - name: os_name in: query type: string description: Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7 - name: os_family in: query type: string description: Filter by kind of OS used without specific version, i.e. OS X, Windows - name: os_company in: query type: string description: Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation - name: platform in: query type: string description: Filter by platform, i.e. webmail, desktop, mobile - name: country in: query type: string description: Filter by country messages were opened in, i.e. Denmark, Russia - name: region in: query type: string description: Filter by full name of region messages were opened in, i.e. Moscow, New York - name: city in: query type: string description: Filter by full name of region messages were opened in, i.e. Moscow, New York - name: messages-outbound-opens-messageid path: /messages/outbound/opens/{messageid} operations: - name: getopensforsingleoutboundmessage method: GET description: Postmark Retrieve Message Opens outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: messageid in: path type: string description: The ID of the Outbound Message for which open statistics should be retrieved. required: true - name: count in: query type: integer description: Number of message opens to return per request. Max 500. required: true - name: offset in: query type: integer description: Number of messages to skip. required: true - name: messages-outbound-messageid-details path: /messages/outbound/{messageid}/details operations: - name: getoutboundmessagedetails method: GET description: Postmark Outbound message details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: messageid in: path type: string description: The ID of the message for which to retrieve details. required: true - name: messages-outbound-messageid-dump path: /messages/outbound/{messageid}/dump operations: - name: getoutboundmessagedump method: GET description: Postmark Outbound message dump outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Postmark-Server-Token in: header type: string description: The token associated with the Server on which this request will operate. required: true - name: messageid in: path type: string description: The ID of the message for which to retrieve a dump. required: true exposes: - type: rest namespace: server-messages-api-rest port: 8080 description: REST adapter for Postmark Server API — Messages API. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/messages/inbound name: messages-inbound description: REST surface for messages-inbound. operations: - method: GET name: searchinboundmessages description: Postmark Inbound message search call: server-messages-api.searchinboundmessages with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token count: rest.count offset: rest.offset recipient: rest.recipient fromemail: rest.fromemail subject: rest.subject mailboxhash: rest.mailboxhash tag: rest.tag status: rest.status todate: rest.todate fromdate: rest.fromdate outputParameters: - type: object mapping: $. - path: /v1/messages/inbound/{messageid}/bypass name: messages-inbound-messageid-bypass description: REST surface for messages-inbound-messageid-bypass. operations: - method: PUT name: bypassrulesforinboundmessage description: Postmark Bypass rules for a blocked inbound message call: server-messages-api.bypassrulesforinboundmessage with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token messageid: rest.messageid outputParameters: - type: object mapping: $. - path: /v1/messages/inbound/{messageid}/details name: messages-inbound-messageid-details description: REST surface for messages-inbound-messageid-details. operations: - method: GET name: getinboundmessagedetails description: Postmark Inbound message details call: server-messages-api.getinboundmessagedetails with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token messageid: rest.messageid outputParameters: - type: object mapping: $. - path: /v1/messages/inbound/{messageid}/retry name: messages-inbound-messageid-retry description: REST surface for messages-inbound-messageid-retry. operations: - method: PUT name: retryinboundmessageprocessing description: Postmark Retry a failed inbound message for processing call: server-messages-api.retryinboundmessageprocessing with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token messageid: rest.messageid outputParameters: - type: object mapping: $. - path: /v1/messages/outbound name: messages-outbound description: REST surface for messages-outbound. operations: - method: GET name: searchoutboundmessages description: Postmark Outbound message search call: server-messages-api.searchoutboundmessages with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token count: rest.count offset: rest.offset recipient: rest.recipient fromemail: rest.fromemail tag: rest.tag status: rest.status todate: rest.todate fromdate: rest.fromdate outputParameters: - type: object mapping: $. - path: /v1/messages/outbound/clicks name: messages-outbound-clicks description: REST surface for messages-outbound-clicks. operations: - method: GET name: searchclicksforoutboundmessages description: Postmark Clicks for a all messages call: server-messages-api.searchclicksforoutboundmessages with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token count: rest.count offset: rest.offset recipient: rest.recipient tag: rest.tag client_name: rest.client_name client_company: rest.client_company client_family: rest.client_family os_name: rest.os_name os_family: rest.os_family os_company: rest.os_company platform: rest.platform country: rest.country region: rest.region city: rest.city outputParameters: - type: object mapping: $. - path: /v1/messages/outbound/clicks/{messageid} name: messages-outbound-clicks-messageid description: REST surface for messages-outbound-clicks-messageid. operations: - method: GET name: getclicksforsingleoutboundmessage description: Postmark Retrieve Message Clicks call: server-messages-api.getclicksforsingleoutboundmessage with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token messageid: rest.messageid count: rest.count offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/messages/outbound/opens name: messages-outbound-opens description: REST surface for messages-outbound-opens. operations: - method: GET name: searchopensforoutboundmessages description: Postmark Opens for all messages call: server-messages-api.searchopensforoutboundmessages with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token count: rest.count offset: rest.offset recipient: rest.recipient tag: rest.tag client_name: rest.client_name client_company: rest.client_company client_family: rest.client_family os_name: rest.os_name os_family: rest.os_family os_company: rest.os_company platform: rest.platform country: rest.country region: rest.region city: rest.city outputParameters: - type: object mapping: $. - path: /v1/messages/outbound/opens/{messageid} name: messages-outbound-opens-messageid description: REST surface for messages-outbound-opens-messageid. operations: - method: GET name: getopensforsingleoutboundmessage description: Postmark Retrieve Message Opens call: server-messages-api.getopensforsingleoutboundmessage with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token messageid: rest.messageid count: rest.count offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/messages/outbound/{messageid}/details name: messages-outbound-messageid-details description: REST surface for messages-outbound-messageid-details. operations: - method: GET name: getoutboundmessagedetails description: Postmark Outbound message details call: server-messages-api.getoutboundmessagedetails with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token messageid: rest.messageid outputParameters: - type: object mapping: $. - path: /v1/messages/outbound/{messageid}/dump name: messages-outbound-messageid-dump description: REST surface for messages-outbound-messageid-dump. operations: - method: GET name: getoutboundmessagedump description: Postmark Outbound message dump call: server-messages-api.getoutboundmessagedump with: X-Postmark-Server-Token: rest.X-Postmark-Server-Token messageid: rest.messageid outputParameters: - type: object mapping: $. - type: mcp namespace: server-messages-api-mcp port: 9090 transport: http description: MCP adapter for Postmark Server API — Messages API. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: postmark-inbound-message-search description: Postmark Inbound message search hints: readOnly: true destructive: false idempotent: true call: server-messages-api.searchinboundmessages with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token count: tools.count offset: tools.offset recipient: tools.recipient fromemail: tools.fromemail subject: tools.subject mailboxhash: tools.mailboxhash tag: tools.tag status: tools.status todate: tools.todate fromdate: tools.fromdate outputParameters: - type: object mapping: $. - name: postmark-bypass-rules-blocked-inbound description: Postmark Bypass rules for a blocked inbound message hints: readOnly: false destructive: false idempotent: true call: server-messages-api.bypassrulesforinboundmessage with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token messageid: tools.messageid outputParameters: - type: object mapping: $. - name: postmark-inbound-message-details description: Postmark Inbound message details hints: readOnly: true destructive: false idempotent: true call: server-messages-api.getinboundmessagedetails with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token messageid: tools.messageid outputParameters: - type: object mapping: $. - name: postmark-retry-failed-inbound-message description: Postmark Retry a failed inbound message for processing hints: readOnly: false destructive: false idempotent: true call: server-messages-api.retryinboundmessageprocessing with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token messageid: tools.messageid outputParameters: - type: object mapping: $. - name: postmark-outbound-message-search description: Postmark Outbound message search hints: readOnly: true destructive: false idempotent: true call: server-messages-api.searchoutboundmessages with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token count: tools.count offset: tools.offset recipient: tools.recipient fromemail: tools.fromemail tag: tools.tag status: tools.status todate: tools.todate fromdate: tools.fromdate outputParameters: - type: object mapping: $. - name: postmark-clicks-all-messages description: Postmark Clicks for a all messages hints: readOnly: true destructive: false idempotent: true call: server-messages-api.searchclicksforoutboundmessages with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token count: tools.count offset: tools.offset recipient: tools.recipient tag: tools.tag client_name: tools.client_name client_company: tools.client_company client_family: tools.client_family os_name: tools.os_name os_family: tools.os_family os_company: tools.os_company platform: tools.platform country: tools.country region: tools.region city: tools.city outputParameters: - type: object mapping: $. - name: postmark-retrieve-message-clicks description: Postmark Retrieve Message Clicks hints: readOnly: true destructive: false idempotent: true call: server-messages-api.getclicksforsingleoutboundmessage with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token messageid: tools.messageid count: tools.count offset: tools.offset outputParameters: - type: object mapping: $. - name: postmark-opens-all-messages description: Postmark Opens for all messages hints: readOnly: true destructive: false idempotent: true call: server-messages-api.searchopensforoutboundmessages with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token count: tools.count offset: tools.offset recipient: tools.recipient tag: tools.tag client_name: tools.client_name client_company: tools.client_company client_family: tools.client_family os_name: tools.os_name os_family: tools.os_family os_company: tools.os_company platform: tools.platform country: tools.country region: tools.region city: tools.city outputParameters: - type: object mapping: $. - name: postmark-retrieve-message-opens description: Postmark Retrieve Message Opens hints: readOnly: true destructive: false idempotent: true call: server-messages-api.getopensforsingleoutboundmessage with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token messageid: tools.messageid count: tools.count offset: tools.offset outputParameters: - type: object mapping: $. - name: postmark-outbound-message-details description: Postmark Outbound message details hints: readOnly: true destructive: false idempotent: true call: server-messages-api.getoutboundmessagedetails with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token messageid: tools.messageid outputParameters: - type: object mapping: $. - name: postmark-outbound-message-dump description: Postmark Outbound message dump hints: readOnly: true destructive: false idempotent: true call: server-messages-api.getoutboundmessagedump with: X-Postmark-Server-Token: tools.X-Postmark-Server-Token messageid: tools.messageid outputParameters: - type: object mapping: $.