Skip to content
Qawafel logo

Qawafel MCP server

B2B marketplace and ZATCA-compliant document platform — sync products, orders, merchants and invoices with Saudi Arabia's leading wholesale network.

Qawafel is not a separate install. One Activepieces MCP server exposes it alongside 760+ other apps, behind a single URL.

Tools
15
Works with
Any MCP client
Auth
Custom auth
License
MIT, open source
Updated
September 2026

About the Qawafel MCP server

Connect Qawafel once in Activepieces and every action it ships becomes a tool your assistant can call, behind the same server URL as the rest of your apps. Your agent reaches Qawafel and 760+ other apps over a single connection, on our cloud or a self-hosted install.

Tools

Qawafel tools your AI can run

Once connected, your assistant can call any of these Qawafel actions by asking in plain language.

  • Create Product

    Add a new product to your Qawafel catalog. The workhorse for catalog sync from your ERP or storefront into Qawafel.

    13 fields

  • Update Product

    Edit a product's price, description, or active state. Only the fields you fill in are updated — leave the rest blank to keep them unchanged.

    6 fields

  • Get Product

    Fetch a single product by its Qawafel ID. Returns the full product including price, descriptions, and active status.

    1 field

  • List Products

    Get products from your catalog, with optional filters by type, supplier, SKU, and active status. Returns up to 500 products (5 pages of 100).

    5 fields

  • Create Completed Order

    Sync a completed (fulfilled) order into Qawafel. Use this to import historical or externally-completed orders from another storefront, ERP, or B2B portal — the order is created directly in **Fulfilled** state and skips the normal fulfilment workflow. Do **not** use this for new orders that still need to be confirmed, picked, and delivered.

    15 fields

  • Update Order Status

    Move an order forward in the Qawafel fulfilment workflow. Qawafel enforces a strict state machine — for example, an order must be **Out for Delivery** before it can be marked **Delivered**. To cancel an order, use the **Cancel Order** action instead.

    4 fields

  • Cancel Order

    Cancel an open order. Once cancelled, the order cannot be reopened — the only path forward is to create a new order.

    3 fields

  • Get Order

    Fetch a single order by its Qawafel ID. Returns the full order including line items, totals, delivery details, and current state.

    1 field

  • List Orders

    Get orders, optionally filtered by status, customer, or creation date. Returns up to 500 orders (5 pages of 100).

    3 fields

  • Create Merchant (Customer or Supplier)

    Add a new customer or supplier to your Qawafel tenant. Use this when onboarding a new B2B partner from your CRM, signup form, or another system.

    19 fields

  • Update Merchant

    Edit a merchant's trade name or active state. Only the fields you fill in are updated. (Legal name, CR, VAT and other identity fields cannot be changed via the API.)

    5 fields

  • Create Invoice

    Create an invoice in Qawafel for a customer. The invoice starts in `draft` state — use the **Generate Invoice** action (or call it from your dashboard) to finalize and issue a ZATCA-compliant copy.

    11 fields

  • Get Invoice

    Fetch a single invoice by its Qawafel ID. Returns the full invoice including line items, totals, ZATCA PDF URL, and current state.

    1 field

  • List Invoices

    Get invoices, optionally filtered by status, customer, or creation date. Returns up to 500 invoices (5 pages of 100).

    3 fields

  • Custom API Call

    Make a custom API call to a specific endpoint

    10 fields

Triggers

Qawafel events your agent can watch

These start a run the moment something happens in Qawafel, so work gets picked up on its own.

  • New Order

    Fires the moment a new sales order is created in Qawafel. Use it to fan out to fulfillment, accounting, Slack alerts, or your CRM.

  • Order Status Changed

    Fires when an order moves to a specific status (confirmed, out for delivery, delivered, fulfilled, cancelled, etc.). Pick one status per trigger — add the trigger again for additional statuses.

    1 field

  • Invoice Paid

    Fires when an invoice is marked as paid in Qawafel. Useful for posting payment receipts to Slack, releasing fulfilment, or syncing revenue to your books.

  • New Invoice Generated

    Fires when a ZATCA-compliant invoice is finalized in Qawafel (the `invoice.generated` event). Use it to email PDFs to customers, archive invoices to Drive, or push to your accounting system.

  • New Product Published

    Fires when a new product is created in Qawafel. Use it to mirror your catalog into Shopify, Salla, Zid, or your data warehouse.

  • Product Updated

    Fires when a product is updated (price change, description edit, activated/deactivated). Use it to keep external storefronts in sync.

  • New Merchant Registered

    Fires when a new merchant (customer or supplier) is created in Qawafel. Use it to onboard customers in your CRM or add suppliers to your procurement system.

  • Refund / Credit Note Created

    Fires when a credit note is created against an invoice (i.e. a customer return or refund is initiated). Use it to alert your finance team or trigger a return workflow.

Give your assistant Qawafel

Connect Qawafel once and every tool above is callable from Claude, Cursor or any MCP client, behind the same server URL as 760+ other apps. Free to start.

Qawafel MCP, answered.

No. That is the point of it. One Activepieces server exposes Qawafel alongside every other piece you connect, so your client keeps a single connection.

Yes. Activepieces is open source and free to start, and the MCP server is included on every plan, from the free cloud tier to any self-hosted deployment.

Connect Qawafel in Activepieces, enable the server under Settings → MCP Server, then paste your server URL into your client config. It authenticates over OAuth on first use.

It can call 15 tools, including Create Product, Update Product, Get Product, and chain them with steps in other apps inside the same run.

Connections use OAuth2 with limited scopes and are stored under 256-bit encryption, with no API to read them back, so an agent gets scoped access rather than your keys.