Kuaidi100 launched China's first MCP-protocol-compatible logistics information service platform. The core API services of Kuaidi100's Baidiy
Shop is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Dutch family B2B wholesaler since 1992: toys, gifts, party and seasonal items from own stock
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http grosshandelholland-shop-mcp https://mcp.grosshandelholland.de/
# 2 — ask your agent for something these tools do
# search, edit_cart, shipping_costs and 11 more
Shop costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http grosshandelholland-shop-mcp https://mcp.grosshandelholland.de/Reconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
14 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Search the wholesale range: toys, gifts and gift items, party supplies, seasonal articles (Sinterklaas, Christmas, Halloween, Easter, carnival, summer), grabbelton and give-away items, and trending and viral items such as fidget toys. Use it for any business purchasing question about these products, also when the shopper doesn't name the store. Search the catalogue in one call; the answer is compl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| natural_query | string | no | What the customer is looking for, in any language; searched by meaning and in the storefront language |
| keywords | array | no | Dutch product words for the catalogue index, e.g. "grabbelton", "stuiterbal"; several words broaden the search |
| ids | array | no | Exact product ids (database ids, as in /p/<id>.html) |
| codes | array | no | Exact product codes |
| similar_to | object | no | — |
| price | object | no | — |
| quantity | object | no | Needed amount: keeps products with enough stock and adds for_quantity (packages, tier price, total) |
| instock | boolean | no | true: only products in stock |
| category | array | no | Category ids; subcategories are included |
| date_added_after | string | no | YYYY-MM-DD: only products added after this date (e.g. the customer's last order) |
| exclude_ids | array | no | Product ids to leave out, e.g. what the customer already has |
| sort | string | no | Default relevance (exact hits, then in stock, then the fused score) |
| facets | boolean | no | true: add top categories with counts and the piece-price range, to narrow |
| limit | integer | no | Rows to return (default 40, at most 200) |
| offset | integer | no | Paging: the next offset from a previous answer |
| fields | array | no | Fields per row; default title, code, pricing, stock, category, url, image, context. details: full product knowledge and one line per photo (at most 10 rows) |
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer; with it the search is complete and counts for the order |
Change or read the order's cart. ops: add (increase), set (exact quantity) or remove, per product id; no ops reads the cart. Quantities count packages: one package holds pricing.package.pieces pieces (100 pieces of a 6-piece package is 17 packages); search with quantity {pieces} gives for_quantity ready. Stock limits a quantity and clamped lines say so; tier prices and discounts apply by themselve
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ops | array | no | Changes in order; leave out to read the cart |
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
| op_id | string | no | A fresh id per change (16 to 40 letters, digits, - or _); repeating it within 10 minutes answers the first result without changing the order again |
Shipping costs and transport options. With the order reference and no weight_kg or products it prices the order's cart and its shipping country; otherwise give weight_kg or products (ids with quantities in packages). country: the two-letter destination (default the cart's shipping country, else the storefront country). The answer lists every method with its price in EUR and the storefront currency
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | Two-letter destination country, e.g. DE, FR, US; default the cart shipping country, else the storefront country |
| weight_kg | number | no | Total weight in kg, when known |
| products | array | no | Products to ship (instead of weight_kg or the cart): ids with quantities in packages, at most 100 |
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer; with it the search is complete and counts for the order |
The store behind this server: a Dutch family business since 1992 selling wholesale to businesses (toys, gifts and gift items, party supplies, seasonal articles (Sinterklaas, Christmas, Halloween, Easter, carnival, summer), grabbelton and give-away items, and trending and viral items such as fidget toys), with its profile, contact, opening times, terms and how to connect again. This store: company,
No parameter schema on file.
The store's product categories with their ids and product counts, in menu order. Browse one with search and category: [id] (subcategories included), for example with sort newest or bestseller.
No parameter schema on file.
Full details of up to 10 products by id (from search or a category): title, code, description, prices per piece, package, overbox and pallet with the quantity tiers (EUR and the storefront currency), stock in packages, category, page url, photos and every stored product fact. Photo facts are observations, not guarantees.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ids | array | yes | Product ids, at most 10 |
Start an order for the shopper on this storefront. Give the shopper's email address (ask them first; they get one confirmation email) or a connection key they made on their account. The answer holds the order reference (mo1_…): keep it and send it with every later call as Authorization: Bearer mo1_… or as the ref argument. It belongs to this endpoint only and expires 30 days after its last use (7
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | no | The shopper's email address | |
| key | string | no | A connection key (mk1_…) the shopper made on their account, instead of the email |
The state of the order reference (pending until the shopper confirms the email, active, paying, placed), whether the email is confirmed, the cart lines and totals, what the checkout still needs, and the next step to take. Use it to resume an order and after the shopper says they confirmed the email. Needs the order reference from start_order (Authorization: Bearer mo1_… or the ref argument).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
What the order still needs before it can be placed: lines, totals in the storefront currency, the address snapshot or the shopper's saved addresses, shipping methods with prices, the payment methods this order may use, and next. With a confirmed email (path A) every method is offered, bank transfer included; before confirmation (path B) the shopper pays first with card, iDEAL or Bancontact. While
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
Fill in the checkout of the order in one call: invoice_address (an object: name, address, zipcode, city, country as a two-letter code, phone; state, companynr and vatnr when known), shipping_address when delivery goes elsewhere (or same_as_invoice), invoice_address_id or shipping_address_id from view_checkout when the shopper has saved addresses, shipping_method (an id from view_checkout), payment
| Parameter | Type | Required | Notes |
|---|---|---|---|
| invoice_address | object | no | The invoice address, stored on this order only |
| shipping_address | object | no | The delivery address when it differs from the invoice address |
| invoice_address_id | integer | no | A saved address id from view_checkout (shoppers with an account) |
| shipping_address_id | integer | no | A saved address id, 0 = deliver to the invoice address |
| same_as_invoice | boolean | no | Deliver to the invoice address |
| shipping_method | integer | no | An id from view_checkout |
| payment_method | string | no | A key from view_checkout |
| coupon | string | no | A discount code the shopper gave |
| coupon_remove | string | no | — |
| newsletter | boolean | no | Only when the shopper asks for it |
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
| op_id | string | no | A fresh id per change (16 to 40 letters, digits, - or _); repeating it within 10 minutes answers the first result without changing the order again |
Place the order and start its payment. First confirm the order, its total and the terms of sale (/pg/terms.html on the store) with the shopper; send accept_terms true only after their explicit yes. With a confirmed email (path A) the order is placed at once and the answer gives the payment step: payment.url to open, bank-transfer instructions or a voucher, plus pay_link (valid 30 days). Before con
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accept_terms | boolean | yes | true only after the shopper explicitly accepted the terms of sale |
| payment_method | string | no | A key from view_checkout, when not set yet or to change it |
| accept_stock_changes | boolean | no | Place again after stock_changed, from ready |
| expect_total | number | no | The grand total in EUR the shopper agreed to (ready.expect_total) |
| add | array | no | Replacements the shopper accepted after stock_changed |
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
| op_id | string | no | A fresh id per change (16 to 40 letters, digits, - or _); repeating it within 10 minutes answers the first result without changing the order again |
The payment state of the order (unpaid, pending, paid), its last attempt and the next step. After a failed or cancelled payment the cart is open again and place_order starts a new attempt. Needs the order reference from start_order (Authorization: Bearer mo1_… or the ref argument).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
Stops the open payment attempt of the order, for example a bank or card page the shopper closed or wants to replace, so the cart opens again and place_order can start another method (bank transfer once the email is confirmed). A payment that already went through is never cancelled: the answer then says it is paid or still processing. Ask the shopper before cancelling. Needs the order reference fro
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
The shopper's earlier orders with this store, for a reference bound to their account (a confirmed email or a connection key). orders: a list with status (confirmed, shipped, open, abandoned, cancelled), dates and totals, filtered by status and date, paged by cursor; payable marks a placed order that is not paid yet. order: up to 20 orders in full (lines with live price and stock, totals, shipping,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| view | string | yes | — |
| status | array | no | orders: statuses to list (default all) |
| from | string | no | orders: from date YYYY-MM-DD |
| to | string | no | orders: until date YYYY-MM-DD |
| ids | array | no | order: order ids (at most 20) |
| limit | integer | no | orders: rows per page (at most 100) |
| cursor | integer | no | orders: the next cursor from an earlier answer |
| ref | string | no | Order reference (mo1_…) from start_order, only when the client cannot send it as Authorization: Bearer |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Shop or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| search | no tags | |
| edit_cart | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| shipping_costs | no tags | |
| store_info | no tags | |
| categories | untrusted-input | untrusted-input: keyword "browse" |
| product_details | no tags | |
| start_order | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| status | no tags | |
| view_checkout | no tags | |
| set_checkout | state-write | state-write: declares readOnlyHint: false |
| place_order | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| check_payment | no tags | |
| cancel_payment | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| order_history | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.5.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Shop can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.