Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the QLS in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Pakketdienst QLS (Netherlands): parcel shipments with labels and tracking, shipping products and service points, fulfilment orders picked from the QLS warehouse, fulfilment products and stock, backorders, returns and inbound purchase orders. Deleting products and cancelling orders install switched off.
Try asking
Example prompts for QLS
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → QLS, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
QLS + Cursor
Pakketdienst QLS (Netherlands): parcel shipments with labels and tracking, shipping products and service points, fulfilment orders picked from the QLS warehouse, fulfilment products and stock, backorders, returns and inbound purchase orders. Deleting products and cancelling orders install switched off.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
QLS_USERNAME, QLS_PASSWORD
Step 1 — Get credentials
Setting up takes about 5 minutes. You need an account on mijn.pakketdienstqls.nl.
- QLS authenticates the API with HTTP Basic and the login details of the mijn.pakketdienstqls.nl portal. Where your account allows it, use a separate user for the API (ask QLS IT support at [email protected]), so that a person changing their password does not break the connector.
- Put the user name (usually an email address) in
QLS_USERNAMEand the password inQLS_PASSWORD. - Install the connector and run
qls_list_companies. It returns the company id (a UUID) that every other tool takes ascompany_id;qls_get_companyshows one company.
Which API: the QLS Fulfilment and Parcel Service API on https://api.pakketdienstqls.nl (OpenAPI at https://api.pakketdienstqls.nl/swagger/). QLS publishes a v1 and a v2; the connector uses v2 where QLS offers it (shipment creation, returns, purchase orders) and v1 for the rest.
Ids you need first: the company id from qls_list_companies; the brand id from qls_list_brands (a brand carries the sender, return and customs addresses and is needed for shipments and orders); the shipping products from qls_list_shipping_products, with combinations[].id as the product_combination_id, options[].tag as delivery options, prices per country and weight band and maximum dimensions. Pick-up points come from qls_list_service_points or, for one shipping product, qls_list_product_service_points; their servicepoint_code goes on the shipment or order.
What it reads: parcel shipments with status (created, printed, pre_transit, in_transit, delivered, returned_to_sender), barcode, tracking id and tracking URL, filtered by reference, barcode, status, brand, receiver fields, dates or free search; one shipment with its weight and, with with_label, the PDF and ZPL label URLs; the return shipment of a parcel; fulfilment orders with status, ordered, reserved and delivered amounts, receiver, deliveries and the shipments that left the warehouse; fulfilment products with EAN, SKU, article number, prices, stock totals and warehouse locations (zone, rack, shelf, best-before); stock per product (total, reserved, available, salable, sold, backorder, incoming, forecast) and per warehouse location with batch; backorders; returns with status, consumer, original shipment and order and the returned products with reason; purchase orders (announced inbound deliveries) with status, products, suppliers and deliveries, including those in transit; suppliers.
What it writes: qls_create_shipment books a parcel with the carrier and returns barcode, tracking URL and label_pdf_url; sender and return address default to the brand. qls_create_fulfillment_order lets QLS pick, pack and ship products from your stock. qls_update_fulfillment_order puts an order on hold, releases it or changes the processable date, reference, remarks or service point. qls_create_fulfillment_product and qls_update_fulfillment_product maintain articles; qls_create_return_from_order announces a return; qls_create_purchase_order announces goods coming to the warehouse. A shipment costs money and a fulfilment order ships real stock, so before every write the AI shows receiver, products and amounts and shipping product and waits for your yes.
Switched off at install: qls_delete_fulfillment_product and qls_cancel_fulfillment_order, which cannot be undone. An administrator switches them on when the team needs them.
Data formats: every answer is wrapped as {"meta": {"code": 200}, "errors": [], "data": ..., "pagination": ...}; the data is under data. Weights are in grams, prices and cash on delivery in euros, dimensions in millimetres. Ids of companies, brands, orders, products and shipments are UUID strings; shipping product and combination ids are integers. Fulfilment order statuses are error_validation, concept, received, pending, partically_sent (QLS's spelling) and sent. Stock and purchase order date filters take d-m-Y H:i (e.g. 1-10-2026 00:00); the other date filters take a date or date-time such as 2026-10-01 00:00:00.
Paging: lists return up to 100 entries per page. pagination carries page, pageCount, count and nextPage; the AI asks for the next page while nextPage is true.
Common errors: 401 means wrong user name or password: they are the mijn.pakketdienstqls.nl login. 404 (Niet Gevonden) means an unknown id or a company id that is not yours: take ids from the list tools. 422 or a filled errors list is a validation problem; QLS answers in Dutch.
The connector does not cancel parcel shipments, read QLS invoices or change brands and company settings: there are no tools for that.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Cursor
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Cursor reads MCP servers from ~/.cursor/mcp.json. Add this entry:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart Cursor.
- Open Cursor → Settings → MCP and check that
anythingmcpis listed and connected. - Start chatting: the agent can now call the
QLStools.
Available tools
| Tool | What it does |
|---|---|
qls_list_companies | List the QLS companies the API user may act for, with their id and name |
qls_get_company | Get one QLS company (id and name) by its id, to confirm which account the API user works on |
qls_list_brands | List the brands (trade names) of a company |
qls_get_brand | Get one brand (trade name) of a company by its id, with its name |
qls_list_shipping_products | List the shipping products (shipping methods such as DHL or PostNL parcel, mailbox or service point) the company may use, with their price… |
qls_list_service_points | Find carrier service points (pick-up points) near a postal code for every service point product the company has enabled, with address… |
qls_list_product_service_points | Find service points near a postal code for one shipping product (for example only DHL service points), with address, opening times and… |
qls_list_shipments | List the parcel shipments of a company with status (created, printed, pre_transit, in_transit, delivered, returned_to_sender), barcode… |
qls_get_shipment | Get one shipment with status, weight in grams, barcode, tracking id and URL |
qls_get_shipment_return | Get the return shipment created for a shipment (status, barcode, tracking), when the consumer sent the parcel back with a return label |
qls_list_fulfillment_orders | List fulfilment orders (orders QLS picks, packs and ships from its warehouse) with status (error_validation, concept, received, pending… |
qls_get_fulfillment_order | Get one fulfilment order with status, amounts ordered, reserved and delivered, receiver, products, deliveries and the shipments (barcode… |
qls_list_fulfillment_products | List the fulfilment products (articles stored at QLS) with name, EAN, SKU, article number, total, reserved and blocked stock and prices |
qls_get_fulfillment_product | Get one fulfilment product with EAN, SKU, prices, stock totals and the warehouse locations (zone, rack, shelf, best-before) where it is… |
qls_list_stock | List stock per fulfilment product only: total, reserved, available, salable, sold, backorder, incoming and forecast amounts. 100 products… |
qls_get_product_stock | Get the warehouse stock records of one fulfilment product: per location the current and reserved amount, batch and best-before date |
qls_list_backorders | List the fulfilment products that are in backorder (ordered but not in stock) with the missing amount, to see what to replenish |
qls_list_returns | List returns handled by QLS (v2) with status (created, approved, rejected, partially_rejected, quarantine, incomplete, completed and more)… |
qls_get_return | Get one return (v2) with status, consumer, original shipment and order and the returned products with expected and received amounts and… |
qls_list_purchase_orders | List purchase orders (announced inbound deliveries of goods to the QLS warehouse, v2) with status (created, in_transit, arrived… |
qls_list_purchase_orders_in_transit | List the purchase orders whose goods are on their way to the QLS warehouse (v2), with deliveries, products and estimated arrival |
qls_get_purchase_order | Get one purchase order (v2) with its products and amounts, suppliers, deliveries (barcode, estimated arrival, received) and labels |
qls_list_suppliers | List the suppliers of a company (id and name), used on purchase orders and linked to fulfilment products for reports |
qls_create_shipment | Create a parcel shipment (v2) and get its barcode, tracking URL and label URLs (label_pdf_url, label_zpl_url) |
qls_create_fulfillment_order | Create a fulfilment order: QLS picks the products from its stock, packs and ships them to the receiver |
qls_update_fulfillment_order | Change a fulfilment order that has not left the warehouse: put it on hold or release it, change the processable date, your reference, the… |
qls_cancel_fulfillment_order | Cancel a fulfilment order that has not been shipped yet; its reserved stock is released |
qls_create_fulfillment_product | Create a fulfilment product (an article QLS will store and ship) with name, EAN, SKU, image and prices |
qls_update_fulfillment_product | Update a fulfilment product: EAN, SKU, image or prices |
qls_delete_fulfillment_product | Delete a fulfilment product that has no stock or open orders |
qls_create_return_from_order | Announce a return for a fulfilment order (v2): QLS expects the listed products back and processes them on arrival |
qls_create_purchase_order | Announce an inbound delivery of goods to the QLS warehouse (v2 purchase order) with the products and amounts, suppliers and the expected… |
Example prompts
- "Which QLS shipping products can we use for the Netherlands and Belgium, with their price per weight band?"
- "Find the DHL service points near postal code 3011 AB."
- "Create a PostNL parcel for order 1042 to Jan de Vries, Rotterdam, 1,200 grams. Show me receiver, product and weight first."
- "Which fulfilment products have fewer than 20 units available, and what is incoming?"
- "List the fulfilment orders that are still pending or partically_sent from this week."
FAQ
Does Cursor support custom MCP servers on the free tier? Yes, MCP is available on Hobby, Pro and Business plans.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Gemini
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?