naftiko: 1.0.0-alpha2 info: label: Core API — Messages description: 'Core API — Messages. 7 operations. Lead operation: Receive custom messages. Self-contained Naftiko capability covering one Front business surface.' tags: - Front - Messages created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FRONT_API_KEY: FRONT_API_KEY capability: consumes: - type: http namespace: core-messages baseUri: https://api2.frontapp.com description: Core API — Messages business capability. Self-contained, no shared references. resources: - name: channels-channel_id-incoming_messages path: /channels/{channel_id}/incoming_messages operations: - name: receivecustommessages method: POST description: Receive custom messages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1). required: true - name: body in: body type: object description: Request body (JSON). required: false - name: channels-channel_id-messages path: /channels/{channel_id}/messages operations: - name: createmessage method: POST description: Create message outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The sending channel ID. Alternatively, you can supply the sending channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1). required: true - name: body in: body type: object description: Request body (JSON). required: false - name: conversations-conversation_id-messages path: /conversations/{conversation_id}/messages operations: - name: createmessagereply method: POST description: Create message reply outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: conversation_id in: path type: string description: The conversation ID required: true - name: body in: body type: object description: Request body (JSON). required: false - name: inboxes-inbox_id-imported_messages path: /inboxes/{inbox_id}/imported_messages operations: - name: importinboxmessage method: POST description: Import message outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: inbox_id in: path type: string description: The Inbox ID required: true - name: body in: body type: object description: Request body (JSON). required: false - name: messages-message_id path: /messages/{message_id} operations: - name: getmessage method: GET description: Get message outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: message_id in: path type: string description: The message ID required: true - name: messages-message_id-seen path: /messages/{message_id}/seen operations: - name: getmessageseenstatus method: GET description: Get message seen status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: message_id in: path type: string description: The message ID required: true - name: markmessageseen method: POST description: Mark message seen outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: message_id in: path type: string description: The message ID required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.FRONT_API_KEY}}' exposes: - type: rest namespace: core-messages-rest port: 8080 description: REST adapter for Core API — Messages. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/channels/{channel-id}/incoming-messages name: channels-channel-id-incoming-messages description: REST surface for channels-channel_id-incoming_messages. operations: - method: POST name: receivecustommessages description: Receive custom messages call: core-messages.receivecustommessages with: channel_id: rest.channel_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/channels/{channel-id}/messages name: channels-channel-id-messages description: REST surface for channels-channel_id-messages. operations: - method: POST name: createmessage description: Create message call: core-messages.createmessage with: channel_id: rest.channel_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/conversations/{conversation-id}/messages name: conversations-conversation-id-messages description: REST surface for conversations-conversation_id-messages. operations: - method: POST name: createmessagereply description: Create message reply call: core-messages.createmessagereply with: conversation_id: rest.conversation_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/inboxes/{inbox-id}/imported-messages name: inboxes-inbox-id-imported-messages description: REST surface for inboxes-inbox_id-imported_messages. operations: - method: POST name: importinboxmessage description: Import message call: core-messages.importinboxmessage with: inbox_id: rest.inbox_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/messages/{message-id} name: messages-message-id description: REST surface for messages-message_id. operations: - method: GET name: getmessage description: Get message call: core-messages.getmessage with: message_id: rest.message_id outputParameters: - type: object mapping: $. - path: /v1/messages/{message-id}/seen name: messages-message-id-seen description: REST surface for messages-message_id-seen. operations: - method: GET name: getmessageseenstatus description: Get message seen status call: core-messages.getmessageseenstatus with: message_id: rest.message_id outputParameters: - type: object mapping: $. - method: POST name: markmessageseen description: Mark message seen call: core-messages.markmessageseen with: message_id: rest.message_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: core-messages-mcp port: 9090 transport: http description: MCP adapter for Core API — Messages. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: receive-custom-messages description: Receive custom messages hints: readOnly: false destructive: false idempotent: false call: core-messages.receivecustommessages with: channel_id: tools.channel_id body: tools.body outputParameters: - type: object mapping: $. - name: create-message description: Create message hints: readOnly: false destructive: false idempotent: false call: core-messages.createmessage with: channel_id: tools.channel_id body: tools.body outputParameters: - type: object mapping: $. - name: create-message-reply description: Create message reply hints: readOnly: false destructive: false idempotent: false call: core-messages.createmessagereply with: conversation_id: tools.conversation_id body: tools.body outputParameters: - type: object mapping: $. - name: import-message description: Import message hints: readOnly: false destructive: false idempotent: false call: core-messages.importinboxmessage with: inbox_id: tools.inbox_id body: tools.body outputParameters: - type: object mapping: $. - name: get-message description: Get message hints: readOnly: true destructive: false idempotent: true call: core-messages.getmessage with: message_id: tools.message_id outputParameters: - type: object mapping: $. - name: get-message-seen-status description: Get message seen status hints: readOnly: true destructive: false idempotent: true call: core-messages.getmessageseenstatus with: message_id: tools.message_id outputParameters: - type: object mapping: $. - name: mark-message-seen description: Mark message seen hints: readOnly: false destructive: false idempotent: false call: core-messages.markmessageseen with: message_id: tools.message_id body: tools.body outputParameters: - type: object mapping: $.