naftiko: 1.0.0-alpha2 info: label: Mailtrap Email Sandbox API — Messages description: 'Mailtrap Email Sandbox API — Messages. 12 operations. Lead operation: List captured messages in an inbox. Self-contained Naftiko capability covering one Mailtrap business surface.' tags: - Mailtrap - Messages created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MAILTRAP_API_KEY: MAILTRAP_API_KEY capability: consumes: - type: http namespace: email-sandbox-messages baseUri: https://sandbox.api.mailtrap.io description: Mailtrap Email Sandbox API — Messages business capability. Self-contained, no shared references. resources: - name: api-accounts-account_id-inboxes-inbox_id-messages path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages operations: - name: listmessages method: GET description: List captured messages in an inbox outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id} operations: - name: getmessage method: GET description: Get a captured message outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatemessage method: PATCH description: Update message attributes (e.g. mark read) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletemessage method: DELETE description: Delete a captured message outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-analyze path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/analyze operations: - name: gethtmlanalyze method: GET description: Get HTML validation and compatibility report outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.eml path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/body.eml operations: - name: getmessageeml method: GET description: Download message in standard .eml format outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.html path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/body.html operations: - name: getmessagebodyhtml method: GET description: Get HTML body of a message outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.raw path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/body.raw operations: - name: getmessagebodyraw method: GET description: Get raw message body outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.txt path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/body.txt operations: - name: getmessagebodytext method: GET description: Get plain text body of a message outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-forward path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/forward operations: - name: forwardmessage method: POST description: Forward a captured message to a confirmed recipient outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-mail_headers path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/mail_headers operations: - name: getmessageheaders method: GET description: Get email headers for a message outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-accounts-account_id-inboxes-inbox_id-messages-message_id-spam_report path: /api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id}/spam_report operations: - name: getspamreport method: GET description: Get spam analysis for a message outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: Api-Token value: '{{env.MAILTRAP_API_KEY}}' placement: header exposes: - type: rest namespace: email-sandbox-messages-rest port: 8080 description: REST adapter for Mailtrap Email Sandbox API — Messages. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages name: api-accounts-account-id-inboxes-inbox-id-messages description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages. operations: - method: GET name: listmessages description: List captured messages in an inbox call: email-sandbox-messages.listmessages with: page: rest.page outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id} name: api-accounts-account-id-inboxes-inbox-id-messages-message-id description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id. operations: - method: GET name: getmessage description: Get a captured message call: email-sandbox-messages.getmessage outputParameters: - type: object mapping: $. - method: PATCH name: updatemessage description: Update message attributes (e.g. mark read) call: email-sandbox-messages.updatemessage with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletemessage description: Delete a captured message call: email-sandbox-messages.deletemessage outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/analyze name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-analyze description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-analyze. operations: - method: GET name: gethtmlanalyze description: Get HTML validation and compatibility report call: email-sandbox-messages.gethtmlanalyze outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/body-eml name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-body-eml description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.eml. operations: - method: GET name: getmessageeml description: Download message in standard .eml format call: email-sandbox-messages.getmessageeml outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/body-html name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-body-html description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.html. operations: - method: GET name: getmessagebodyhtml description: Get HTML body of a message call: email-sandbox-messages.getmessagebodyhtml outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/body-raw name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-body-raw description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.raw. operations: - method: GET name: getmessagebodyraw description: Get raw message body call: email-sandbox-messages.getmessagebodyraw outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/body-txt name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-body-txt description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-body.txt. operations: - method: GET name: getmessagebodytext description: Get plain text body of a message call: email-sandbox-messages.getmessagebodytext outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/forward name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-forward description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-forward. operations: - method: POST name: forwardmessage description: Forward a captured message to a confirmed recipient call: email-sandbox-messages.forwardmessage with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/mail-headers name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-mail-headers description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-mail_headers. operations: - method: GET name: getmessageheaders description: Get email headers for a message call: email-sandbox-messages.getmessageheaders outputParameters: - type: object mapping: $. - path: /v1/api/accounts/{account-id}/inboxes/{inbox-id}/messages/{message-id}/spam-report name: api-accounts-account-id-inboxes-inbox-id-messages-message-id-spam-report description: REST surface for api-accounts-account_id-inboxes-inbox_id-messages-message_id-spam_report. operations: - method: GET name: getspamreport description: Get spam analysis for a message call: email-sandbox-messages.getspamreport outputParameters: - type: object mapping: $. - type: mcp namespace: email-sandbox-messages-mcp port: 9090 transport: http description: MCP adapter for Mailtrap Email Sandbox API — Messages. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-captured-messages-inbox description: List captured messages in an inbox hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.listmessages with: page: tools.page outputParameters: - type: object mapping: $. - name: get-captured-message description: Get a captured message hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.getmessage outputParameters: - type: object mapping: $. - name: update-message-attributes-e-g-mark description: Update message attributes (e.g. mark read) hints: readOnly: false destructive: false idempotent: true call: email-sandbox-messages.updatemessage with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-captured-message description: Delete a captured message hints: readOnly: false destructive: true idempotent: true call: email-sandbox-messages.deletemessage outputParameters: - type: object mapping: $. - name: get-html-validation-and-compatibility description: Get HTML validation and compatibility report hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.gethtmlanalyze outputParameters: - type: object mapping: $. - name: download-message-standard-eml-format description: Download message in standard .eml format hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.getmessageeml outputParameters: - type: object mapping: $. - name: get-html-body-message description: Get HTML body of a message hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.getmessagebodyhtml outputParameters: - type: object mapping: $. - name: get-raw-message-body description: Get raw message body hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.getmessagebodyraw outputParameters: - type: object mapping: $. - name: get-plain-text-body-message description: Get plain text body of a message hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.getmessagebodytext outputParameters: - type: object mapping: $. - name: forward-captured-message-confirmed-recipient description: Forward a captured message to a confirmed recipient hints: readOnly: false destructive: false idempotent: false call: email-sandbox-messages.forwardmessage with: body: tools.body outputParameters: - type: object mapping: $. - name: get-email-headers-message description: Get email headers for a message hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.getmessageheaders outputParameters: - type: object mapping: $. - name: get-spam-analysis-message description: Get spam analysis for a message hints: readOnly: true destructive: false idempotent: true call: email-sandbox-messages.getspamreport outputParameters: - type: object mapping: $.