Zenfulfillment MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.7.4Updated Nov 7, 2026

Read Zenfulfillment orders and stock; import or cancel orders and mark returns done.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Connects an assistant to a Zenfulfillment warehouse account to read orders, stock, inbound shipments and returns, and to import, cancel or close out orders.

What you can do
  • List and look up fulfillment orders with status, addresses, products and tracking numbers
  • Check stock on hand per SKU and find low-stock items
  • List inbound inventory shipments and open one by its warehouse reference
  • List warehouse returns with reasons, conditions and the original order
  • Import an order for picking, packing and shipping, or cancel up to 50 orders at once
  • Mark a return as done (refunded) and check usage or manage the subscription plan
When to use it
Useful when you run a shop whose fulfillment is handled by Zenfulfillment and want to ask an assistant about pending orders, tracking numbers, low stock or returns, or push and cancel orders without opening the warehouse dashboard.
Requirements
Remote MCP endpoint added by URL only; sign-in happens through OAuth with your Zenfulfillment credentials. No API key or Authorization header goes in the client config. A free plan allows 50 tool calls per month; paid plans raise the limit.
Before you install
Write tools change warehouse data: importing an order with an existing reference updates it and incurs fulfillment and shipping fees, cancelling orders cannot be undone, and marking a return done cannot be reverted through the API and does not refund the customer. Confirm references before cancelling. Paid plans are billed through a payment link, with no refund for the current period.

Installation

In SourceWeft

  1. Open Zenfulfillment MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fzenfulfillment/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "zenfulfillment-by-usefulapi": {
      "type": "http",
      "url": "https://zenfulfillment.usefulapi.io/mcp"
    }
  }
}

README

Zenfulfillment MCP by usefulapi

Connect your API-enabled warehouse to an AI assistant.

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://zenfulfillment.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http zenfulfillment https://zenfulfillment.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "zenfulfillment": {      "url": "https://zenfulfillment.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Zenfulfillment credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/zenfulfillment/

Tools

ToolTypeWhat it does
zenfulfillment_list_ordersreadList orders
zenfulfillment_get_orderreadGet order
zenfulfillment_list_stockreadList stock levels
zenfulfillment_list_inventory_shipmentsreadList inbound shipments
zenfulfillment_get_inventory_shipmentreadGet inbound shipment
zenfulfillment_list_returnsreadList returns
zenfulfillment_import_orderwriteCreate or update an order
zenfulfillment_cancel_orderswriteCancel orders
zenfulfillment_mark_return_donewriteMark return as refunded
zenfulfillment_usage_statusmetaUsage status (free-tier meter)
zenfulfillment_request_featuremetaRequest a missing feature
zenfulfillment_upgrademetaUpgrade to Pro or Pro+
zenfulfillment_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per API key and environment)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with zenfulfillment_upgrade (it returns a Stripe Checkout link). Cancel any time with zenfulfillment_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running zenfulfillment_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT

Source: servers/zenfulfillment/README.md at commit 4046075

Tools

9

zenfulfillment_list_orders

List orders

List or search the fulfillment orders of this Zenfulfillment account (warehouse pick/pack/ship), with status, order reference, shop order number, totals, shipping and billing address, the products ordered/shipped and shipments (tracking number, carrier). Filter by ONE status, created/updated time or free text. The export has one row per product line; rows are grouped into orders. Paging: pass next_page back as page; an empty page is the end. GET /orders/export.

Parameterspagequerystatusper_pagecreated_afterupdated_aftercreated_beforeupdated_before

zenfulfillment_get_order

Get order

One order by its EXTERNAL reference, i.e. the order number from the connected shop or from your own import (for example 332-11-5599), with addresses, products with quantities (ordered, shipped, returned, refunded) and shipments with tracking numbers. Not the ZF reference: use zenfulfillment_list_orders with query for that. GET /orders/external/{reference}.

Parametersreferencerequired

zenfulfillment_list_stock

List stock levels

Stock on hand in the Zenfulfillment warehouse per SKU (sku, quantity_on_stock). Filter by SKU text and/or a maximum quantity to find low stock (then sorted lowest first). GET /products/export.

Parameterslimitmax_quantitysku_contains

zenfulfillment_list_inventory_shipments

List inbound shipments

List inbound inventory shipments (goods you sent to the warehouse) with reference, SKU lines, announced quantity, quantity arrived and note. Filter by ONE status, created/updated time or free text (ZF number, tracking code, type). Rows are grouped per shipment. Paging as in list_orders. GET /inventory_shipments/export.

Parameterspagequerystatusper_pagecreated_afterupdated_aftercreated_beforeupdated_before

zenfulfillment_get_inventory_shipment

Get inbound shipment

One inbound inventory shipment by its ZF reference (for example ZF01123700): SKU lines with announced and arrived quantities and the note. GET /inventory_shipments/export/{reference}/reference.

Parametersreferencerequired

zenfulfillment_list_returns

List returns

List returns processed by the warehouse (PROCESSED = received, DONE = marked refunded), with the return's `_id` (needed by zenfulfillment_mark_return_done), ZF reference, note, products with quantity, reason, condition and whether they were actually returned, and the original order. Filter by ONE status, time or free text. Paging as in list_orders. GET /returns/export.

Parameterspagequerystatusper_pagecreated_afterupdated_aftercreated_beforeupdated_before

zenfulfillment_import_order

Create or update an order

WRITE: send ONE order to the Zenfulfillment warehouse for picking, packing and shipping to the given address (fulfillment and shipping fees apply per the contract). The reference is your own order number: a reference that already exists UPDATES that order instead of creating a new one. Each item becomes one CSV row (Reference;Date;Name;Company;Street1;Street2;Zip Code;City;Region;Country;Email;Phone;SKU;Quantity). Use SKUs from zenfulfillment_list_stock. Check the address with the user first. In test mode nothing ships. POST /orders/import.

Parametersziprequiredcityrequirednamerequiredemailitemsrequiredphoneregionstreetrequiredcompanycountryrequiredstreet2referencerequired+1 more

zenfulfillment_cancel_orders

Cancel orders

WRITE, cannot be undone: cancel orders by reference (up to 50). Only orders that can still be cancelled (before the warehouse has packed or shipped them) are cancelled; the others come back in `errors`. Confirm the references with the user first. POST /orders/cancel.

Parametersreferencesrequired

zenfulfillment_mark_return_done

Mark return as refunded

WRITE: set a return's status to DONE (refunded) in Zenfulfillment. Zenfulfillment only records the status; refund the customer in your shop yourself. Use the `_id` from zenfulfillment_list_returns (not the ZF reference). Cannot be set back through the API. POST /returns/{returnId}/done.

Parametersreturn_idrequired

Version history

10
  1. v1.7.4LatestNov 7, 2026
  2. v1.6.3Nov 5, 2026
  3. v1.6.2Nov 5, 2026
  4. v1.6.1Nov 4, 2026
  5. v1.6.0Nov 3, 2026
  6. v1.5.1Nov 3, 2026
  7. v1.4.0Nov 1, 2026
  8. v1.2.0Oct 31, 2026
  9. v1.1.0Oct 31, 2026
  10. v1.0.1Oct 31, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations