naftiko: 1.0.0-alpha2 info: label: Omnisend REST API — Campaigns description: 'Omnisend Campaigns capability. Create, schedule, send, cancel, and copy email/SMS campaigns; list campaigns with cursor pagination.' tags: - Omnisend - Campaigns - Email - SMS created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: OMNISEND_API_KEY: OMNISEND_API_KEY capability: consumes: - type: http namespace: campaigns baseUri: https://api.omnisend.com/v5 description: Omnisend Campaigns business capability. resources: - name: campaigns path: /campaigns operations: - name: listCampaigns method: GET description: List campaigns outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] - name: createCampaign method: POST description: Create a campaign outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: body, in: body, type: object, required: true }] - name: campaign-by-id path: /campaigns/{campaignID} operations: - name: getCampaign method: GET description: Get a campaign outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: campaignID, in: path, type: string, required: true }] - name: updateCampaign method: PATCH description: Update a campaign outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: - { name: campaignID, in: path, type: string, required: true } - { name: body, in: body, type: object, required: true } - name: deleteCampaign method: DELETE description: Delete a campaign outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: campaignID, in: path, type: string, required: true }] - name: campaign-send path: /campaigns/{campaignID}/send operations: - name: sendCampaign method: POST description: Send a campaign now or as scheduled outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: campaignID, in: path, type: string, required: true }] - name: campaign-cancel path: /campaigns/{campaignID}/cancel operations: - name: cancelCampaign method: POST description: Cancel a scheduled or sending campaign outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: campaignID, in: path, type: string, required: true }] - name: campaign-copy path: /campaigns/{campaignID}/copy operations: - name: copyCampaign method: POST description: Copy a campaign outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: campaignID, in: path, type: string, required: true }] authentication: type: apikey key: X-API-KEY value: '{{env.OMNISEND_API_KEY}}' placement: header exposes: - type: mcp namespace: campaigns-mcp port: 9090 transport: http description: MCP adapter for Omnisend Campaigns. tools: - name: omnisend-list-campaigns description: List Omnisend campaigns hints: { readOnly: true, destructive: false, idempotent: true } call: campaigns.listCampaigns outputParameters: [{ type: object, mapping: $. }] - name: omnisend-send-campaign description: Send an Omnisend campaign hints: { readOnly: false, destructive: true, idempotent: false } call: campaigns.sendCampaign with: { campaignID: tools.campaignID } outputParameters: [{ type: object, mapping: $. }] - name: omnisend-cancel-campaign description: Cancel an Omnisend campaign hints: { readOnly: false, destructive: true, idempotent: true } call: campaigns.cancelCampaign with: { campaignID: tools.campaignID } outputParameters: [{ type: object, mapping: $. }]