naftiko: 1.0.0-alpha2 info: label: Postmark API — Inbound description: 'Postmark API — Inbound. 4 operations. Lead operation: Postmark Inbound message search. Self-contained Naftiko capability covering one Postmark business surface.' tags: - Postmark - Inbound created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: POSTMARK_API_KEY: POSTMARK_API_KEY capability: consumes: - type: http namespace: postmark-inbound baseUri: http://{{baseurl}} description: Postmark API — Inbound business capability. Self-contained, no shared references. resources: - name: messages-inbound path: /messages/inbound operations: - name: get method: GET description: Postmark Inbound message search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: count in: query type: string description: Number of bounces to return per request. Max 500. - name: offset in: query type: string description: Number of bounces to skip. - 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: put method: PUT description: Postmark Bypass rules for a blocked inbound message outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: messageid in: path type: string description: The ID of the message which should bypass inbound rules. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: messages-inbound-messageid-details path: /messages/inbound/{messageid}/details operations: - name: get method: GET description: Postmark Inbound message details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: messageid in: path type: string description: The ID of the message which should bypass inbound rules. required: true - name: messages-inbound-messageid-retry path: /messages/inbound/{messageid}/retry operations: - name: put method: PUT description: Postmark Retry a failed inbound message for processing outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: messageid in: path type: string description: The ID of the message which should bypass inbound rules. required: true - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: postmark-inbound-rest port: 8080 description: REST adapter for Postmark API — Inbound. 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: get description: Postmark Inbound message search call: postmark-inbound.get with: 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: put description: Postmark Bypass rules for a blocked inbound message call: postmark-inbound.put with: messageid: rest.messageid body: rest.body 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: get description: Postmark Inbound message details call: postmark-inbound.get with: 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: put description: Postmark Retry a failed inbound message for processing call: postmark-inbound.put with: messageid: rest.messageid body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: postmark-inbound-mcp port: 9090 transport: http description: MCP adapter for Postmark API — Inbound. 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: postmark-inbound.get with: 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: postmark-inbound.put with: messageid: tools.messageid body: tools.body outputParameters: - type: object mapping: $. - name: postmark-inbound-message-details description: Postmark Inbound message details hints: readOnly: true destructive: false idempotent: true call: postmark-inbound.get with: 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: postmark-inbound.put with: messageid: tools.messageid body: tools.body outputParameters: - type: object mapping: $.