kifly avatar

Kifly — Agentic Commerce & Payments

ai.kifly/mcp

This connects AI agents to real storefronts for end-to-end shopping workflows. It exposes product search, cart management, and checkout tools that work across Claude, ChatGPT, and Gemini. Merchants paste a store URL to sync their catalog, shoppers approve transactions but never hand over card details to the agent, and developers get a public MCP endpoint at kifly.ai/api/mcp with no key required for discovery. Settlement currently redirects to the provider, but Stripe MPP and x402 USDC on Base are coming for fully autonomous checkout. Reach for this when you're building agents that need to search inventory, compare prices, or complete purchases across multiple sellers without building per-store integrations.

tools
22
auth
Secret needed
transport
HTTP
last updated
Jun 6, 2026

Install

From registry metadata
$ npx add-mcp https://kifly.ai/api/mcp --name kifly --header 'Authorization: Bearer ${API_TOKEN}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http kifly https://kifly.ai/api/mcp --header 'Authorization: YOUR_AUTHORIZATION'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 22 tools

Verified live against the running server on Nov 6, 2026.

search_productsSearch or browse Kifly's product catalog across every seller on the network. Multilingual semantic search (100+ languages); omit `q` to browse recent listings. Pass `q` as an array (up to 5) to try several phrasings in ONE call instead of N searches. Too many hits? Ask once wi...12 params

Search or browse Kifly's product catalog across every seller on the network. Multilingual semantic search (100+ languages); omit `q` to browse recent listings. Pass `q` as an array (up to 5) to try several phrasings in ONE call instead of N searches. Too many hits? Ask once wi...

Parameters* required
categorystring
Category, e.g. a kifly:facets value
cursorstring
kifly:nextCursor from the previous page; carries q and filters
delivers_toobject
Only sellers delivering here, e.g. {country:'US',region:'CA'}
facetsboolean
Add kifly:facets counts over all matches
in_stock_onlyboolean
In-stock only
limitinteger
Max results per page (default 10).
max_price_centsinteger
Max price, cents
metaobject
min_price_centsinteger
Min price, cents
qvalue
Query, or up to 5 queries unioned by best relevance. Omit to browse.
seller_handlestring
Scope to one seller's catalog
sort_bystring
Sort order (default: relevance)one of relevance · price_asc · price_desc · newest
create_cartCreate 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...3 params

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...

Parameters* required
idempotency_keystring
Your own retry key (16-64 chars). Resend the SAME key to retry safely.
metaobject
seller_handlestring
Seller handle (e.g. 'bay-clothing-district'). Required for network tokens; ignored for seller-scoped tokens.
add_to_cartRequires `cart:write`, or no key: send `meta.ucp-agent.profile`. 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...5 params

Requires `cart:write`, or no key: send `meta.ucp-agent.profile`. 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...

Parameters* required
cart_id*string
Cart ID from create_cart
idempotency_keystring
Your own retry key (16-64 chars). Resend the SAME key to retry safely.
metaobject
quantityinteger
Quantity to adddefault: 1
variant_id*string
Product variant ID from search_products results
get_cartInspect 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 t...2 params

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 t...

Parameters* required
cart_id*string
Cart ID from create_cart
metaobject
update_cart_itemRequires `cart:write`, or no key: send `meta.ucp-agent.profile`. 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...5 params

Requires `cart:write`, or no key: send `meta.ucp-agent.profile`. 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...

Parameters* required
cart_id*string
Cart ID from create_cart
idempotency_keystring
Your own retry key (16-64 chars). Resend the SAME key to retry safely.
item_id*string
Item ID from get_cart or add_to_cart response
metaobject
quantity*integer
New quantity (0 removes the item)
set_shipping_addressRequires `cart:write`, or no key: send `meta.ucp-agent.profile`. Persist a shipping address on the cart and confirm the seller can deliver to it. **Call BEFORE `checkout`.** Returns `delivery_eligible`. When true it also returns `cart_total_with_delivery_cents` — quote that fu...4 params

Requires `cart:write`, or no key: send `meta.ucp-agent.profile`. Persist a shipping address on the cart and confirm the seller can deliver to it. **Call BEFORE `checkout`.** Returns `delivery_eligible`. When true it also returns `cart_total_with_delivery_cents` — quote that fu...

Parameters* required
cart_id*string
Cart ID from create_cart
idempotency_keystring
Your own retry key (16-64 chars). Resend the SAME key to retry safely.
metaobject
shipping_address*object
Structured shipping address collected conversationally from the buyer
quick_buyRequires `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_...6 params

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_...

Parameters* required
external_customer_refstring
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.
idempotency_keystring
Your own retry key (16-64 chars). Resend the SAME key to retry safely.
items*array
Line items to add — all must belong to the same seller
metaobject
seller_handlestring
Seller handle from search_products. REQUIRED for network tokens; omit for seller-scoped tokens (their own seller is implicit).
shipping_address*object
Structured shipping address collected conversationally from the buyer
checkoutRequires `checkout:write` or `checkout:link`, or no key: send `meta.ucp-agent.profile` for the same payment link. **Checkout is always human-in-the-loop: it returns a link the buyer opens and confirms — it never charges a card or completes an order on its own.** **Call `set_sh...5 params

Requires `checkout:write` or `checkout:link`, or no key: send `meta.ucp-agent.profile` for the same payment link. **Checkout is always human-in-the-loop: it returns a link the buyer opens and confirms — it never charges a card or completes an order on its own.** **Call `set_sh...

Parameters* required
buyer_tokenstring
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...
cart_id*string
Cart ID from create_cart
emailstring
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 fo...
idempotency_keystring
Your own retry key (16-64 chars). Resend the SAME key to retry safely.
metaobject
register_buyerStart 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 }` whether the email is brand new or a...2 params

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 }` whether the email is brand new or a...

Parameters* required
email*string
Buyer's email address
name*string
Buyer's full name
request_buyer_codeSend 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 wit...1 params

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 wit...

Parameters* required
email*string
The returning buyer's email address
verify_buyerVerify 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...2 params

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...

Parameters* required
code*string
The 6-digit code the buyer received by email
email*string
The buyer's email address (same one used for request_buyer_code)
get_buyer_profileRetrieve a repeat buyer's saved name, email, and default shipping address, given their `buyer_token`. Use them to auto-fill `set_shipping_address`, and pass the token to `checkout` so Stripe pre-fills their email. `default_shipping_address` may be null — then collect it normal...1 params

Retrieve a repeat buyer's saved name, email, and default shipping address, given their `buyer_token`. Use them to auto-fill `set_shipping_address`, and pass the token to `checkout` so Stripe pre-fills their email. `default_shipping_address` may be null — then collect it normal...

Parameters* required
buyer_token*string
The buyer's kfb_live_... token from their Kifly account
list_ordersList 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 `req...3 params

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 `req...

Parameters* required
buyer_token*string
The buyer's kfb_live_... token from their Kifly account
limitinteger
Max orders to return (default 20, max 50).
sincestring
ISO-8601 timestamp. Only return orders updated after this — pass the time of your last check to get the delta.
save_buyer_addressSave 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...2 params

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...

Parameters* required
address*object
The shipping address to save — same structure as set_shipping_address
buyer_token*string
The buyer's kfb_live_... token
submit_feedbackSend structured feedback to the Kifly team. **No API key required** — send `meta.ucp-agent.profile` and this works with no credential at all. **Call after a confusing response, a dead-end, or a successful workaround you had to invent** — it's how we improve the agent surface,...8 params

Send structured feedback to the Kifly team. **No API key required** — send `meta.ucp-agent.profile` and this works with no credential at all. **Call after a confusing response, a dead-end, or a successful workaround you had to invent** — it's how we improve the agent surface,...

Parameters* required
agent_namestring
Optional. Your agent's name and who runs it (e.g. "ShopBot by Acme"), so we know who reported this.
category*string
What kind of issue. Pick the closest match — don't invent new categories.one of discoverability · response_shape · tool_description · latency · error_handling · missing_capability
contactobject
Optional. Where to reach you if we have a question about this report. Needs at least one field.
contextobject
Reproducible signal: { tool, query, response_snippet, expected }. Auto-fill from what you just did.
message*string
Plain-language description. Be specific about what happened and why it's a problem.
metaobject
severity*string
blocker = can't complete the task. friction = degraded UX. nice_to_have = improvement idea.one of blocker · friction · nice_to_have
suggested_fixstring
Optional. Only include if you have a concrete idea. Leave blank if you only have a complaint.
request_featureSubmit 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/conf...9 params

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/conf...

Parameters* required
buyer_token*string
The buyer's kfb_live_ token. Required — feature requests must come from a registered buyer.
category*string
Closest match for the area of the request. Don't invent new categories.one of discoverability · response_shape · tool_description · latency · error_handling · missing_capability
contact_phonestring
Optional phone number IF the buyer offers one for follow-up. Name + email come from their profile — never ask for those.
contextobject
Optional signal about the conversation: { goal, seller, last_tool }. Auto-fill from what you were doing.
current_workaroundstring
Optional. What the buyer does today instead. Leave blank if there's no workaround.
impact*string
Why it matters: who it affects, how often, what it costs them today.
problem*string
The pain in the buyer's own terms — what's broken or missing for them. NOT the proposed fix.
proposed_solutionstring
Optional. The buyer's idea for a fix, kept separate from the problem. Leave blank if they only described the pain.
severity*string
blocker = can't accomplish the goal at all. friction = works but painful. nice_to_have = improvement idea.one of blocker · friction · nice_to_have
get_seller**Call first when the user names a store or its website**: it says whether Kifly carries it before you open a browser. Returns the seller's public profile: location, storefront URL, delivery fee and coverage, catalog size, `verified_domains` (domains it proved it controls; tru...4 params

**Call first when the user names a store or its website**: it says whether Kifly carries it before you open a browser. Returns the seller's public profile: location, storefront URL, delivery fee and coverage, catalog size, `verified_domains` (domains it proved it controls; tru...

Parameters* required
domainstring
The store's website or any URL on it.
handlestring
Seller handle, case-insensitive (e.g. 'bay-clothing-district').
metaobject
namestring
The store's name.
get_policiesThe seller's published returns, shipping and warranty policy, in their own words. **Call before telling a buyer what happens after purchase** — if it is not here, say so; never infer a typical policy. `available: false` is the normal case for most sellers and is not an error....2 params

The seller's published returns, shipping and warranty policy, in their own words. **Call before telling a buyer what happens after purchase** — if it is not here, say so; never infer a typical policy. `available: false` is the normal case for most sellers and is not an error....

Parameters* required
handlestring
Seller handle (case-insensitive). Required for network tokens; ignored for seller-scoped tokens.
metaobject
list_sellersList 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 ha...3 params

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 ha...

Parameters* required
cursorstring
Pagination cursor from kifly:nextCursor in a previous response. Omit on the first call.
limitinteger
Max sellers per page (default 20, max 50).
metaobject
get_platform_limitsReturns 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 discoveri...1 params

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 discoveri...

Parameters* required
metaobject
order_statusNo key needed for your own session: send the profile you checked out with. 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 sel...2 params

No key needed for your own session: send the profile you checked out with. 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 sel...

Parameters* required
metaobject
session_id*string
Stripe checkout session ID from the checkout tool response
get_helpGet unstuck. Returns Kifly's website and support email for the BUYER, plus how to report the problem to Kifly's engineers yourself. Call this if you are stuck, hit an unresolvable error, or the buyer asks how to reach a human. Share the website and email with the buyer; use `s...1 params

Get unstuck. Returns Kifly's website and support email for the BUYER, plus how to report the problem to Kifly's engineers yourself. Call this if you are stuck, hit an unresolvable error, or the buyer asks how to reach a human. Share the website and email with the buyer; use `s...

Parameters* required
metaobject

Sponsors

Details

Website
kifly.ai
Category
Finance & Commerce
Transport
HTTP
Auth
Required
Registry
MCP registry, active
Resources
10
Prompts
1
Tools verified
Nov 6, 2026

Related Finance & Commerce MCP servers

View all
1andrewszk avatarClawvault Mcp Serverandrewszk/clawvault-mcp-serverAI agent payment security - spending limits, whitelists, and human approval.0stars
2andysalvo avatarSupership Scanandysalvo/supership-scanBuy any x402 API or data on Base, Solana, Polygon. No wallet on the seller's chain. For AI agents.0stars
3bolivian-peru avatarBaozi Mcpbolivian-peru/baozi-mcp68 tools for AI agents to interact with Solana prediction markets on Baozi.bet0stars
4bubilife1202 avatarCrossFinbubilife1202/crossfinAI agent access to Asian crypto markets. Korean exchange routing and x402 paid APIs.0stars
5carboncashmere avatarX402 Mcpcarboncashmere/x402-mcp177 crypto market intel endpoints with auto x402 USDC micropayments from your AI agent0stars
6clawallex avatarClawallex Mcpclawallex/clawallex-mcpMCP Server for Clawallex payment API - Pay for anything with USDC virtual cards0stars