Kuaidi100 launched China's first MCP-protocol-compatible logistics information service platform. The core API services of Kuaidi100's Baidiy
Kifly — Agentic Commerce & Payments 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
Multi-seller shopping for AI agents. Settle via Stripe MPP or x402 USDC on Base. Hosted.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http kifly-agentic-commerce-payments-mcp https://kifly.ai/api/mcp
# 2 — ask your agent for something these tools do
# search_products, create_cart, add_to_cart and 18 more
Kifly — Agentic Commerce & Payments 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, read from the address; if the publisher says otherwise, swap that one word.
claude mcp add --scope user --transport http kifly-agentic-commerce-payments-mcp https://kifly.ai/api/mcpReconnect, 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.
21 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 or browse Kifly's product catalog. Multilingual semantic search (100+ languages). Returns a JSON-LD ItemList with kifly:totalCatalogSize. When empty, kifly:emptyReason is 'empty_catalog' | 'no_matches_for_query' — on 'no_matches_for_query' tell the buyer nothing matched rather than guessing, then offer kifly:suggestions (related products — NOT matches) and kifly:availableCategories
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | no | Natural-language query, or an array of up to 5 queries to explore in ONE call (results are unioned by best relevance). Omit to browse recent listings. | |
| limit | integer | no | Max results per page (default 10). |
| sort_by | string | no | Sort order (default: relevance) |
| min_price_cents | integer | no | Minimum price filter in cents |
| max_price_cents | integer | no | Maximum price filter in cents |
| in_stock_only | boolean | no | Only return products with available inventory |
| category | string | no | Case-insensitive category filter (e.g. 'fashion', 'Electronics'). Matches the seller-assigned category value. |
| seller_handle | string | no | Scope results to one seller's catalog (e.g. 'bay-clothing-district'). For network tokens only; ignored for seller-scoped tokens. |
| cursor | string | no | Pagination cursor from kifly:nextCursor in a previous browse response. Omit on the first call. |
Create a new shopping cart on Kifly. For network (cross-seller) tokens you MUST pass seller_handle — each cart is bound to exactly one seller. Get the handle from search_products results (every item's kifly:seller IS the handle in network results) or get_seller. Seller-scoped tokens may omit the handle — their own seller is implicit. Returns a cart_id to use with add_to_cart and checkout.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| seller_handle | string | no | Seller handle (e.g. 'bay-clothing-district'). Required for network tokens; ignored for seller-scoped tokens. |
Requires checkout:write scope. Add a product variant to an existing cart. Use the variant_id from search_products results. Returns full cart state including item_ids you can use with update_cart_item. Max quantity per item and max cart total are enforced — call get_platform_limits to check the current limits before building a large cart. Exceeding the per-item limit returns 400 `QUANTITY_E
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cart_id | string | yes | Cart ID from create_cart |
| variant_id | string | yes | Product variant ID from search_products results |
| quantity | integer | no | Quantity to add |
Inspect the current state of a cart — line items, quantities, prices, and shipping address. Each item includes an item_id you can pass to update_cart_item to change quantity or remove the item. Call this after add_to_cart to review the cart before checkout, or any time the buyer asks what's in the cart. kifly_purchasable: false (fulfillment: "external") means checkout on this cart will h
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cart_id | string | yes | Cart ID from create_cart |
Requires checkout:write scope. Change the quantity of a line item in an open cart, or remove it entirely. Set quantity to 0 to remove the item. Get the item_id from get_cart or the cart field in the add_to_cart response. Returns the updated cart state. The per-item quantity ceiling applies here too — call get_platform_limits to check the current limit. Exceeding it returns 400 `Q
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cart_id | string | yes | Cart ID from create_cart |
| item_id | string | yes | Item ID from get_cart or add_to_cart response |
| quantity | integer | yes | New quantity (0 removes the item) |
Requires checkout:write scope. Persist a shipping address on the cart and confirm whether the seller can deliver to it. Call BEFORE checkout. Returns delivery_eligible: true/false. When false, delivery_coverage: { states, cities } tells you exactly which US states and cities the seller covers — tell the buyer where coverage is available. When true, returns `cart_total_with_delivery_cen
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cart_id | string | yes | Cart ID from create_cart |
| shipping_address | object | yes | Structured shipping address collected conversationally from the buyer |
Requires cart:write scope. Create a cart, add items, and set the shipping address in ONE call — the fast path when you already know the seller, the exact variant(s), and the buyer's address (e.g. a reorder, or a buyer who has decided). Prefer this over the create_cart → add_to_cart → set_shipping_address sequence to save round trips; those granular tools stay available for exploratory, multi-ste
| Parameter | Type | Required | Notes |
|---|---|---|---|
| seller_handle | string | no | Seller handle from search_products. REQUIRED for network tokens; omit for seller-scoped tokens (their own seller is implicit). |
| items | array | yes | Line items to add — all must belong to the same seller |
| shipping_address | object | yes | Structured shipping address collected conversationally from the buyer |
| external_customer_ref | string | no | Embedded-commerce pass-through: the seller's own opaque customer id for a cart from their embed widget. Omit unless you are the embed flow. |
Requires checkout:write scope. Requires set_shipping_address to have been called first. Returns 400 invalid_shipping if no address is on the cart, or 400 delivery_unavailable if the buyer's address is outside the seller's coverage. Cart total must not exceed the platform cap (kifly://platform/limits). **Checkout is always human-in-the-loop: it returns a link the buyer opens and confi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cart_id | string | yes | Cart ID from create_cart |
| string | no | Buyer's email, collected conversationally. Pre-fills the Stripe Checkout email field so the buyer doesn't retype it. This is ALL you need to pre-fill email — ask the buyer for their email, never for a | |
| buyer_token | string | no | INTERNAL token (kfb_live_...) minted by register_buyer / verify_buyer — resolves the buyer's saved profile and pre-fills their email on the payment link. NEVER ask the buyer to paste this. Omit it unl |
Start registering a buyer so they can be recognized across future purchases without re-entering their details. Takes the buyer's email and name and always emails a 6-digit verification code — the response is { verification_required: true, buyer_profile_id } whether the email is brand new or already has an account (so this call alone never reveals which). Ask the buyer to read you the code from t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Buyer's email address | |
| name | string | yes | Buyer's full name |
Send a 6-digit verification code to a returning buyer's email so they can prove the account is theirs and recover their saved name + shipping address on this connection — without pasting any token or re-entering their name. Call this when the buyer says they've shopped with Kifly before and gives you their email; then ask them to read you the code from their inbox and call verify_buyer. Alwa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | The returning buyer's email address |
Verify the 6-digit code a returning buyer received by email (from request_buyer_code). On success returns { buyer_token, buyer_profile_id } — pass the buyer_token to get_buyer_profile to auto-fill their saved name + shipping address, and to checkout to pre-fill their email on the payment link. Fails with invalid_otp if the code is wrong or expired (ask them to re-check, or call `reques
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | The buyer's email address (same one used for request_buyer_code) | |
| code | string | yes | The 6-digit code the buyer received by email |
Retrieve a repeat buyer's saved name, email, and default shipping address. At the start of every purchase flow, ask the buyer in plain language: 'Are you a returning Kifly shopper? What's the email on your Kifly account?' — never ask them to paste a token. If they have a Kifly account, recover it by email: call request_buyer_code with their email, ask them for the 6-digit code we email them,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| buyer_token | string | yes | The buyer's kfb_live_... token from their Kifly account |
List a returning buyer's recent orders and their current fulfillment status — use this in a NEW session to answer 'did my order ship?' / 'where's my package?' when you don't have the original session_id from checkout. Requires the buyer's buyer_token (recover it via request_buyer_code + verify_buyer if you don't have one). Returns { orders, count }, newest first; each order has `status
| Parameter | Type | Required | Notes |
|---|---|---|---|
| buyer_token | string | yes | The buyer's kfb_live_... token from their Kifly account |
| since | string | no | ISO-8601 timestamp. Only return orders updated after this — pass the time of your last check to get the delta. |
| limit | integer | no | Max orders to return (default 20, max 50). |
Save a shipping address to the buyer's Kifly profile so it auto-fills on future purchases. Call this after a successful checkout if get_buyer_profile returned default_shipping_address: null. The address is persisted server-side against the buyer token — the buyer never needs to re-enter it. Use the same address that was passed to set_shipping_address for this order.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| buyer_token | string | yes | The buyer's kfb_live_... token |
| address | object | yes | The shipping address to save — same structure as set_shipping_address |
Send structured feedback to the Kifly team. Call after a confusing response, a dead-end, or a successful workaround you had to invent — it's how we improve the agent surface. Fire-and-forget: returns 202 immediately, no blocking, safe to skip if it would add latency to a user-facing flow. category and severity are required enums (don't free-form them). Include context with what you were
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | yes | What kind of issue. Pick the closest match — don't invent new categories. |
| severity | string | yes | blocker = can't complete the task. friction = degraded UX. nice_to_have = improvement idea. |
| message | string | yes | Plain-language description. Be specific about what happened and why it's a problem. |
| context | object | no | Reproducible signal: { tool, query, response_snippet, expected }. Auto-fill from what you just did. |
| suggested_fix | string | no | Optional. Only include if you have a concrete idea. Leave blank if you only have a complaint. |
Submit the buyer's product/feature request to the Kifly team. Use this when the buyer wishes Kifly *itself* did something it doesn't — a missing capability, a rough flow, an idea to improve the platform. This is NOT submit_feedback (that's for reporting a broken/confusing API response you hit). Requires the buyer's kfb_live_ token — only registered buyers can file requests. Help the bu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| buyer_token | string | yes | The buyer's kfb_live_ token. Required — feature requests must come from a registered buyer. |
| problem | string | yes | The pain in the buyer's own terms — what's broken or missing for them. NOT the proposed fix. |
| impact | string | yes | Why it matters: who it affects, how often, what it costs them today. |
| category | string | yes | Closest match for the area of the request. Don't invent new categories. |
| severity | string | yes | blocker = can't accomplish the goal at all. friction = works but painful. nice_to_have = improvement idea. |
| current_workaround | string | no | Optional. What the buyer does today instead. Leave blank if there's no workaround. |
| proposed_solution | string | no | Optional. The buyer's idea for a fix, kept separate from the problem. Leave blank if they only described the pain. |
| contact_phone | string | no | Optional phone number IF the buyer offers one for follow-up. Name + email come from their profile — never ask for those. |
| context | object | no | Optional signal about the conversation: { goal, seller, last_tool }. Auto-fill from what you were doing. |
Retrieve a seller's public profile: name, location (city/region/country), storefront URL, delivery fee, delivery coverage, and catalog size. Call this before create_cart or set_shipping_address to validate that the seller ships to the buyer's area or to set expectations about catalog size. delivery_coverage is { states, cities, nationwide, state_count, city_count, coverage_configured }
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | no | Seller handle (case-insensitive, e.g. 'bay-clothing-district' or 'BayClothingDistrict'). Required for network tokens; ignored for seller-scoped tokens. |
List all active sellers on the Kifly network. Requires a network token (kfn_live_…). Returns each seller's handle, name, city, region, delivery coverage (nationwide:true or a states list), delivery fee, and catalog size. delivery_coverage.cities may be capped to a handful of entries — compare cities.length against city_count; if fewer, call get_seller for that seller's full city li
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max sellers per page (default 20, max 50). |
| cursor | string | no | Pagination cursor from kifly:nextCursor in a previous response. Omit on the first call. |
Returns the current platform-enforced cart limits: max_item_quantity (per-line-item ceiling), max_cart_total_cents, and max_cart_total_usd. Call this once at session start before building a large cart so you can quote limits to the buyer proactively rather than discovering them via errors. The limits are operator-configurable; always read them at runtime rather than hardcoding.
No parameter schema on file.
Check the status of a Stripe checkout session. Poll every 5 seconds after checkout until status is 'paid', 'shipped', or 'failed'. Returns order details (order_id, amount, items) when paid. When the seller marks the order as shipped, status becomes 'shipped' and tracking_number, carrier, and shipped_at are included — share these with the buyer. Call get_help if the buyer needs Kifly's support cont
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | Stripe checkout session ID from the checkout tool response |
Get Kifly's website and support contact email. Call this if you are stuck, hit an unresolvable error, or the buyer asks how to reach a human. Returns the website URL and support email — always share both with the buyer.
No parameter schema on file.
- 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 Kifly — Agentic Commerce & Payments 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.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
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 1.0.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 Kifly — Agentic Commerce & Payments 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.