io.kifly/mcp

MCPcommunitylive
v1.1.4io.kiflyUnknownUpdated 4mo ago

Multi-seller shopping for AI agents. Settle via Stripe MPP or x402 USDC on Base. Hosted.

Endpoint healthlive
checked 6 days ago · 404ms
100% of the last 6 checks reached this endpoint
Works in
ClaudeCursorCopilotChatGPTGemini

Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
4mo agoLast update
Package
Authorio.kifly
LicenseUnknown
Version1.1.4
Sourcemcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/30
→ Publisher: this listing has no repository on file, so `forge publish` cannot verify ownership automatically. Use "Claim this listing" above — Forge reviews these by hand.
—Domain verification+0/10
→ Not currently available for this listing type — the domain-verification check only runs for npm-backed packages today, so this row cannot be earned here yet regardless of what's hosted at the domain.
✓Prompt-injection scan · clean+30/30
✓Obfuscation / exfil scan · clean+20/20
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
DependenciesNot audited
Tool surface21 tools · none privileged
Security scan✓ Cleanvlive · 1mo agoHow well does this scan work?
PROMPTtool:get_buyer_profileLinks to undeclared domain: kifly.ai
EvalsNone
IndexedJun 13, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

21 tools · none privileged
Observed live from the vendor's endpoint1mo ago

Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.

  • https://kifly.io/api/mcp21 tools · 358ms
search_productsSearch 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 guess…

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 guess…

ParameterTypeDescription
q—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.
limitintegerMax results per page (default 10).
sort_bystringSort order (default: relevance)
min_price_centsintegerMinimum price filter in cents
max_price_centsintegerMaximum price filter in cents
in_stock_onlybooleanOnly return products with available inventory
categorystringCase-insensitive category filter (e.g. 'fashion', 'Electronics'). Matches the seller-assigned category value.
seller_handlestringScope results to one seller's catalog (e.g. 'bay-clothing-district'). For network tokens only; ignored for seller-scoped tokens.
cursorstringPagination cursor from kifly:nextCursor in a previous browse response. Omit on the first call.
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-scoped tokens may omi…

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 omi…

ParameterTypeDescription
seller_handlestringSeller handle (e.g. 'bay-clothing-district'). Required for network tokens; ignored for seller-scoped tokens.
add_to_cartRequires `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 th…

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 th…

ParameterTypeDescription
cart_id*stringCart ID from create_cart
variant_id*stringProduct variant ID from search_products results
quantityintegerQuantity to add
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 the buyer asks what's i…

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 i…

ParameterTypeDescription
cart_id*stringCart ID from create_cart
update_cart_itemRequires `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 ap…

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 ap…

ParameterTypeDescription
cart_id*stringCart ID from create_cart
item_id*stringItem ID from get_cart or add_to_cart response
quantity*integerNew quantity (0 removes the item)
set_shipping_addressRequires `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…

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…

ParameterTypeDescription
cart_id*stringCart ID from create_cart
shipping_address*objectStructured 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_to_cart → set_shipping…

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…

ParameterTypeDescription
seller_handlestringSeller handle from search_products. REQUIRED for network tokens; omit for seller-scoped tokens (their own seller is implicit).
items*arrayLine items to add — all must belong to the same seller
shipping_address*objectStructured shipping address collected conversationally from the buyer
external_customer_refstringEmbedded-commerce pass-through: the seller's own opaque customer id for a cart from their embed widget. Omit unless you are the embed flow.
checkoutRequires `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://p…

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://p…

ParameterTypeDescription
cart_id*stringCart ID from create_cart
emailstringBuyer'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 — a…
buyer_tokenstringINTERNAL 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…
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, buyer_profile_id }` whether the email is brand new or alrea…

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 alrea…

ParameterTypeDescription
email*stringBuyer's email address
name*stringBuyer'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 with Kifly before and giv…

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 giv…

ParameterTypeDescription
email*stringThe 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 email on the payment…

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…

ParameterTypeDescription
email*stringThe buyer's email address (same one used for request_buyer_code)
code*stringThe 6-digit code the buyer received by email
get_buyer_profileRetrieve 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…

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…

NOTELinks to undeclared domain: kifly.ai
ParameterTypeDescription
buyer_token*stringThe 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 `request_buyer_code` + `ve…

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` + `ve…

ParameterTypeDescription
buyer_token*stringThe buyer's kfb_live_... token from their Kifly account
sincestringISO-8601 timestamp. Only return orders updated after this — pass the time of your last check to get the delta.
limitintegerMax orders to return (default 20, max 50).
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 needs to re-enter it.…

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

ParameterTypeDescription
buyer_token*stringThe buyer's kfb_live_... token
address*objectThe shipping address to save — same structure as set_shipping_address
submit_feedbackSend 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. `cate…

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. `cate…

ParameterTypeDescription
category*stringWhat kind of issue. Pick the closest match — don't invent new categories.
severity*stringblocker = can't complete the task. friction = degraded UX. nice_to_have = improvement idea.
message*stringPlain-language description. Be specific about what happened and why it's a problem.
contextobjectReproducible signal: { tool, query, response_snippet, expected }. Auto-fill from what you just did.
suggested_fixstringOptional. 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/confusing API response you…

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…

ParameterTypeDescription
buyer_token*stringThe buyer's kfb_live_ token. Required — feature requests must come from a registered buyer.
problem*stringThe pain in the buyer's own terms — what's broken or missing for them. NOT the proposed fix.
impact*stringWhy it matters: who it affects, how often, what it costs them today.
category*stringClosest match for the area of the request. Don't invent new categories.
severity*stringblocker = can't accomplish the goal at all. friction = works but painful. nice_to_have = improvement idea.
current_workaroundstringOptional. What the buyer does today instead. Leave blank if there's no workaround.
proposed_solutionstringOptional. The buyer's idea for a fix, kept separate from the problem. Leave blank if they only described the pain.
contact_phonestringOptional phone number IF the buyer offers one for follow-up. Name + email come from their profile — never ask for those.
contextobjectOptional signal about the conversation: { goal, seller, last_tool }. Auto-fill from what you were doing.
get_sellerRetrieve 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.**…

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

ParameterTypeDescription
handlestringSeller handle (case-insensitive, e.g. 'bay-clothing-district' or 'BayClothingDistrict'). Required for network tokens; ignored for seller-scoped tokens.
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 handful of entries — com…

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 — com…

ParameterTypeDescription
limitintegerMax sellers per page (default 20, max 50).
cursorstringPagination cursor from kifly:nextCursor in a previous response. Omit on the first call.
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 discovering them via errors. Th…

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

No input schema was published for this tool.

order_statusCheck 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 shippe…

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 shippe…

ParameterTypeDescription
session_id*stringStripe checkout session ID from the checkout tool response
get_helpGet 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.

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 input schema was published for this tool.

21 of 21 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Multi-seller shopping for AI agents. Settle via Stripe MPP or x402 USDC on Base. Hosted.

Keywords
mcp
Alternatives
Comparing tool surfaces…

No dependency coverage

This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.

Topics

Related in payments & commerce