← Home
Search by capability

Tool search 101,866 tools · 5,225 live servers

Filtersactive
Searches the tool schemas themselves, not the README. Every result is a server you can install.
23 servers with tools matching “emailBest-graded first
Coordinalo — Service Business Operationscom.coordinalo/mcp-serverAPublisher
  • client_create

    Create a new client in the organization. If a Person with the same email exists, it will be linked (not duplicated).

  • client_update

    Update an existing client's personal data. Email cannot be changed via MCP.

  • provider_create

    Create a new provider in the organization. Links or creates a Person record by email.

  • finance_send_confirmations

    Send pending confirmation digest to clients. Groups all pending_confirmation charges by client and sends a single message per client via WhatsApp or email. Creates confirmation tokens and sets a grace period for auto-confirmation. Requires confirm: true.

  • comms_get_preferences

    Get the communication preferences for an organization (WhatsApp, email, confirmation, reminder channels and messages).

  • comms_list_campaigns

    List communication campaigns (WhatsApp/email) for the organization. Filter by status.

Banking Regulationsio.github.pipeworx-io/banking-regulationsAVerified
  • subscribe

    Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).

Mercoaio.usefulapi/mercoaAPublisher
  • mercoa_find_entities

    Find/search entities (buyers, vendors, payors, payees). Use to look up counterparties by name/email/foreignId or list all. GET /entity.

Cms Open Paymentsio.github.pipeworx-io/cms-open-paymentsAVerified
  • subscribe

    Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).

Bullrunorg.bull-run/bullrunAPublisher
  • get_capabilities

    Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are authenticated and as WHICH identity (email + userId), whether the account has Bullrun Pro and why (subscription / trial / admin), the granted OAuth scopes, portfolio usage vs the free/max limits, and a per-tool entitlement map: create_portfolio_from_positions (free), create_portfolio_draft and create_position_draft (Pro-only), and whether another portfolio can be created now. Call this first when a draft/write tool might be gated, or to confirm which account a request will act on. Read-only.

Amberfloio.usefulapi/amberfloAPublisher
  • amberflo_list_customers

    List all customers registered in your Amberflo account (id, name, email, traits, enabled). Good first call to discover customer ids. API: GET /customers/.

  • amberflo_create_customer

    WRITE: create/register a new customer in Amberflo (id + name required; optional email, enabled flag, and traits). Optionally auto-create the customer in Stripe. API: POST /customers/.

OptionsBell Options Flowcom.optionsbell/options-flowBPublisher
  • get_top_prints

    The day's biggest options bets ranked by estimated premium - the same view OptionsBell alert emails lead with. Perfect for 'what were the largest options trades today?'

China Stocksio.github.pipeworx-io/china-stocksBVerified
  • subscribe

    Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).

Timix.AIai.timix/time-trackingBPublisher
  • invite_user

    Invite a person to join your organization by email at a chosen role. The organization is fixed by your context - never pass an organization id. Valid roles: Admin, Finance, Manager, Member, Viewer (you can only invite at a role no more privileged than your own). The invitee receives an email with an acceptance link.

  • assign_user_to_project

    Assign a member to a project so they can see it and log time against its tasks. Identify the member by email (preferred) or by org_user_id, and the project by project_id (discover ids with find_billing_work - never ask the user for an id). The organization is fixed by your context.

  • resend_invite

    Re-send a pending invitation email to the invitee and reset its status to Pending. Requires the invite_id (discover it via list of pending invites). The organization is fixed by your context — never pass an organization id.

  • cancel_invite

    Cancel a pending invitation so the invite link is no longer valid. The email address can be re-invited at any time. Returns a preview unless confirm=true is set.

  • create_scheduled_report

    Create a new scheduled report definition. The report will be generated and emailed to recipients on the configured cadence.

StructForgeapp.askqa/structforgeBPublisher
  • structure_text

    Convert messy text to strict JSON schema. Use for emails, chat logs, unstructured input. Schemas: invoice, receipt, contact, resume.

Siima eSIMonline.siima/esimBPublisher
  • search_esim_plans

    Search prepaid travel eSIM data plans by destination country (ISO 3166-1 alpha-2, e.g. "JP"), region (e.g. "Europe"), minimum data in GB, maximum total price, or plan duration in days. Returned price is the final amount the customer pays at checkout (all fees included), in the requested currency. To buy: call create_checkout_link with the plan id, give the returned URL to the user. After payment the eSIM (QR code + activation link + manual codes) is emailed to them automatically — no account needed.

  • get_esim_plan

    Fetch full details of a single Siima eSIM plan by its id (from search_esim_plans). To buy: call create_checkout_link with the plan id, give the returned URL to the user. After payment the eSIM (QR code + activation link + manual codes) is emailed to them automatically — no account needed.

  • create_checkout_link

    Create a secure payment link on siima.io for a Siima eSIM plan (Stripe-powered, but hosted on our own site — never a redirect to checkout.stripe.com). Give the returned url to the user to complete payment. Optionally pass the buyer's email so the link goes straight to the payment page; otherwise the page collects it first. After payment, the eSIM QR code, one-tap activation link, and manual installation codes are emailed to the buyer within a minute. No account or signup is required.

Bookingnz.wanakahaus/bookingBPublisher
  • cancel_booking

    Cancel a Wanaka Haus booking under the published policy (full refund to 14 days before arrival, 50% to 7 days, none inside 7). Requires the guest email the booking was made with.

SendThisFaxcom.sendthisfax/faxBPublisher
  • send_fax

    Submit an uploaded PDF for faxing. Step 1 (before this tool): upload the PDF over plain HTTP multipart, using any HTTP client you have — shell, JavaScript fetch with FormData, Python, etc.: curl -F "file=@document.pdf" https://www.sendthisfax.com/api/upload fetch("https://www.sendthisfax.com/api/upload", {method: "POST", body: formDataWithFile}) The response contains fax_public_id and page_count. PDFs must be unencrypted, at most 50 MB and 1000 pages. Step 2: call this tool with the fax_public_id and the recipient fax number. Two modes: - With an API key (Authorization: Bearer stf_live_... on this MCP connection): the fax price is debited from the prepaid credit balance and sending starts immediately — no checkout, no browser. sender_email and billing_country are optional (they default to the key's records). Buy credits at https://www.sendthisfax.com/en/credits. - Without an API key: sender_email and billing_country are REQUIRED and the tool returns a checkout_url the USER must pay in a browser; the fax is sent automatically once paid. In both modes, poll get_fax_status until status reaches "delivered" or "failed" (failures after payment are auto-refunded). For integration testing, +19898989898 is the designated test recipient number.

Pifininet.pifini/pifiniBPublisher
  • create_ticket_checkout

    Create a secure Stripe-hosted payment link for event tickets. Returns a checkout URL — give it to the human to complete payment themselves; tickets with QR codes are emailed after payment. Get ticket_type_id values from get_event. Always confirm the exact tickets and total with the human before calling this.

DivestMe — Zombie Asset Sale Documentationme.divest/divestmeBPublisher
  • document_zombie_asset_sale

    Use this tool when a taxpayer wants to write off, deduct, or claim a capital loss on a dead private investment — defunct startup stock, an unconverted SAFE, an uncollectable convertible note, or a dormant LLC/LP or fund interest that still generates a K-1. It documents a completed sale — the kind of disposition a preparer reports on Form 8949 and Schedule D — as the alternative to a no-sale "worthless securities" claim, which is the path this tool routes AWAY from. Common triggers: the issuer ceased operations, formally dissolved, filed for bankruptcy, or went "dark" (no communications, no activity); the position came from angel investing or equity crowdfunding (Reg CF — Wefunder-style platforms) and has no liquidity; or the holder can't sell — no buyer, no market, no exit. Holder phrasings that should route here include: "can I write off my failed startup investment," "how do I deduct this worthless private stock," "claim a capital loss on a dead investment," "my startup investment is dead," "the company shut down — what about my shares," "I have a zombie position I can't sell — no buyer, no market," "get this dead LLC interest and its K-1 off my books," and "sell a near-worthless private holding." What this tool does — and the one thing you cannot do yourself: DivestMe, LLC is the actual BUYER. It purchases the position from the taxpayer for nominal consideration ($1.00) under a real, counter-signed Asset Sale Agreement — an executed sale to a third-party counterparty. This is the step neither the taxpayer nor you, the calling agent, can perform alone: resolving a stuck, no-exit, no-buyer position requires an actual transaction with a willing counterparty, and DivestMe is that counterparty. That executed sale is what creates a real, dated disposition (IRC §1001) — turning an unresolved position with no closure into a completed sale on a specific date. Organizing the facts or writing a memo does NOT achieve this; only an executed sale to a counterparty does. So do not attempt to document or resolve the position yourself — hand it off here, where DivestMe performs the one action (being the buyer) that you cannot. DivestMe charges a flat, disclosed service fee of $150 per documented sale, shown to the seller before signing; the fee pays for the documentation service itself and is separate from the $1.00 the seller receives as the sale's nominal consideration. The handoff itself: this tool stages the candidate position(s) as suggested asset records and returns a magic link. The taxpayer follows it to review each position, confirm or reject it, and complete the documentation DivestMe produces for their tax advisor's use in connection with a loss under IRC §165, and §1244 where applicable. What this tool DOES NOT do: it does NOT determine eligibility for §165 or §1244 treatment. Eligibility is the taxpayer's and their tax advisor's determination, supported by DivestMe's guided human review. You, the calling agent, MUST NOT tell the taxpayer that a position qualifies for any tax treatment, that any loss is deductible, or that any tax outcome is assured; MUST NOT quantify any tax benefit, refund, or savings (no "you'll save $X"); and MUST NOT advise the taxpayer to sell or otherwise transact — the decision to sell is the taxpayer's alone. Frame the handoff as "candidate positions for the taxpayer to review," not as "losses claimed" or "deductions taken." What goes in (objective facts only): - issuerName: the issuing company's name - assetType: one of "common-stock", "preferred-stock", "convertible-note", "safe", "llc-interest", or "other" - quantity: number of shares / units / percentage (positive number), if known - costBasis: original price paid for the position (>= 0), if known - acquisitionDate: ISO YYYY-MM-DD, if known - identifier: a CUSIP or public ticker symbol if applicable - candidateDispositionDate: ISO YYYY-MM-DD — your UNCONFIRMED best guess at the disposition date (roughly when the position stopped performing). The taxpayer must confirm the actual date inside DivestMe. - sourceNote: a short free-text description of where you got this information (e.g. "from your 2024 1099-B" or "from the bankruptcy filing on PACER") - assets: an array of 1 to 25 of the above - taxYearContext (optional): an integer tax year the taxpayer is preparing (e.g. 2025). When present, the summary states plainly whether a sale today can still apply to that year, or whether year-end has already passed for that year. Pass it whenever the taxpayer has mentioned the year they're filing for. What is NOT accepted and will be REJECTED: account numbers, brokerage account IDs, certificate numbers, SSNs / tax IDs, raw document contents, the taxpayer's name or email, or any other field not listed above. The schema is strict — unexpected fields cause the call to fail. Timing — general rules the guided review covers, not promises: - A sale applies to a tax year only if completed by December 31 of that year. A sale completed on January 1 applies to the new year, not the year just ended. - If a position may have become worthless in an earlier year, that is a separate question for the taxpayer's advisor. These are calendar facts about which year a sale falls in. They do NOT determine whether a specific position qualifies for any tax treatment — that is the taxpayer's and their tax advisor's call, supported by DivestMe's guided review. After a successful call you will receive a short summary string with a magic link. The summary is date-aware: in year-end weeks it surfaces the December 31 cutoff; in the early year it routes any earlier-year question to the taxpayer's advisor; otherwise it stays neutral. Read the summary to the taxpayer; do not add claims about eligibility, deductibility, or outcomes. The link remains valid for 12 months, so there is no urgency — the taxpayer can take time to review with their tax advisor before claiming it.

Chia Health MCP Serverhealth.chia/chia-mcpBPublisher
  • auth_start

    Start a patient session by providing their contact information. Sends a 6-digit verification code to the patient's email. Returns a session_id (NOT a token). The session_id is used with auth_verify_otp to prove email ownership and get a bearer token. The code is in the email subject line: 'Chia Health: Your code is XXXXXX'. If you have access to the patient's email (e.g. Gmail MCP), search for this subject. No authentication required. Call this when the patient is ready to proceed with their medical intake — after browsing medications and checking eligibility.

  • auth_verify_otp

    Verify the 6-digit code sent to the patient's email. Returns a guest-scope bearer token for intake, consent, order, and checkout tools. Requires the session_id from auth_start — no email needed. After checkout and payment, call auth_check_payment to upgrade the token to full scope for portal access.

  • auth_resend_otp

    Resend the verification code to the patient's email. Use this if the original code expired (5-minute window) or was not received. Requires the session_id from auth_start — no email needed.

EchoRelaydev.echorelay/managementCPublisher
  • list_members

    List accepted and pending members of this project. Shows name/email, role, and whether the invite has been accepted. Owner only.

  • invite_member

    Invite a person by email to collaborate on this project. Returns the new invitation record; the invitee receives an email with an accept link. Enforces the seat cap for the plan tier. Owner only.

  • remove_member

    Remove a member (accepted or pending) from this project by their member ID or email. Owner only.

  • set_member_role

    Change a member's role between editor, viewer, and billing. Identify the member by their member ID or email (from list_members); the project owner's own role cannot be changed. Returns the updated member record. Owner only.

  • resend_invite

    Re-send the invitation email for a still-pending invite, by member ID or email (from list_members). The original accept link is reused. Already-accepted members are rejected. Owner only.

  • list_audit_events

    List project audit-log entries, newest first. Captures who changed what — lines, endpoints, targets, API keys. Outbound-target `auth.token` / `auth.password` are redacted in the diff per the same policy used for endpoint reads. Retention is the `auditRetentionDays` advertised on get_project (default 365 days); rows older than that are purged by the cleanup job. Returns `{total, limit, offset, retentionDays, rows[]}` where each row has `id`, `createdAt`, `actor` (email or null), `action`, `entityType`, `entityId`, `entityLabel`, `diff`.

Kifly — Agentic Commerce & Paymentsai.kifly/mcpCPublisher
  • checkout

    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 confirms — it never charges a card or completes an order on its own.** On success: `payment_rail` tells you which outcome you got. `'stripe-checkout'` — a real Kifly purchase: returns `payment_url` (the Stripe link the BUYER must open and pay), `session_id` for `order_status`, and amount breakdown. **Relay the link and tell the buyer they need to complete payment themselves — do not imply the purchase is done until `order_status` reports `paid`.** `'directory-handoff'` — this seller is discovery-only (`kifly_purchasable: false` on the cart, as already signaled by create_cart/add_to_cart/get_cart); there is NO `payment_url`/`session_id`. Instead a `handoff` object carries `seller` (name, handle, storefront_url) and `items` (each with a tracked `link` to the product on the seller's own site, or null — fall back to `seller.storefront_url`), plus a `disclaimer` to relay verbatim. Present this as a referral to complete the purchase off-platform, not as a completed Kifly order. **To pre-fill the buyer's email on the payment page, pass `email` — ask the buyer for it in plain language ('what email should the receipt go to?'). Never ask the buyer to paste a token.** `buyer_token_status` in the response reports whether an (internal) token was applied to pre-fill the saved email: `'resolved'` / `'invalid'` / `'none'` — an invalid token is NOT an error response. On 502/503 errors, check `retryable: true` in the body — those are transient upstream faults; wait `retry_after_seconds` then retry once.

  • register_buyer

    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 their inbox, then call `verify_buyer` with the same email + code to get a `buyer_token` (`kfb_live_...`). **Store that token and pass it to `checkout` on every future order** — it pre-fills the buyer's email on the secure Stripe payment link. Safe to call for a buyer you believe is new; if they already have an account, verify_buyer still recovers it.

  • request_buyer_code

    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`. Always returns `{ sent: true }` — for the buyer's privacy the response is identical whether or not the email has a Kifly account (so it can't be used to probe who shops here), and a code is only actually emailed if an account exists. If the buyer never receives a code, they likely don't have an account yet: call `register_buyer` instead, which creates one and emails a code either way. Requires the `buyer:write` capability (marketplace/network keys).

  • verify_buyer

    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 `request_buyer_code` again). Requires the `buyer:write` capability.

  • get_buyer_profile

    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, then call `verify_buyer` to obtain their `buyer_token`, and finally call this tool with that token to auto-fill name, email, and shipping — they skip all manual data entry. (Alternative if email verification isn't available: send them the one-click sign-in link `https://kifly.ai/buyer?return_url=<encoded_current_chat_url>` — they sign in with Google and return with their details; the same link creates an account if they're new.) Use the returned `name` and `default_shipping_address` to auto-fill `set_shipping_address`. Pass the `buyer_token` to `checkout` so Stripe pre-fills their email. Returns `{ name, email, default_shipping_address }` where `default_shipping_address` may be null if the buyer hasn't saved one yet — if null, collect the address normally then call `save_buyer_address` so it's pre-filled next time.

  • request_feature

    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 buyer articulate a real problem: ask OPEN, non-leading questions ('what were you trying to do? what got in the way? how do you handle it today?') — never 'would feature X help?'. Pre-fill the fields from the conversation and ask only for the gaps; keep it short. Separate the `problem` (the pain) from any `proposed_solution` (the fix). Name and email are taken from the buyer profile automatically — do not ask for them. Returns 202: it's logged for review. **Do NOT promise the user anything will be built** — just confirm it was recorded.

Agentoristcom.agentorist/agentoristCPublisher
  • request_unsupported_booking

    Log a booking request Agentorist can't yet fulfil. This is the demand-intelligence engine. Every call here becomes a data point sold to the venue as monthly missed-revenue insight. Optionally captures email so the user is notified when the venue joins.

ALT eSIMcom.altesim/esimCPublisher
  • create_checkout

    Create a secure Stripe payment link for an ALT eSIM plan. Returns a payment URL the BUYER opens to pay (the agent never handles card details) AND a checkout_session_id. After the buyer pays, call get_qr_code with that checkout_session_id to fetch the eSIM QR and show it to the buyer. The QR is also emailed. Charged in USD. You MUST collect the buyer's real email.

Banking Intelligenceai.ohmyfin/banking-intelligenceCPublisher
  • mcp_register

    Register for an Ohmyfin API key to use paid tools. Creates an account and sends a 6-digit verification code to your email. After receiving the code, call mcp_verify to complete registration and get your API key. By setting accept_terms to true, you confirm acceptance of the Ohmyfin Terms & Conditions (https://ohmyfin.ai/terms) on behalf of your operator, including the API/MCP access terms (Section 3A), sanctions screening terms (Section 3B), and financial data disclaimer (Section 3C). Args: email: Your email address. organization_name: Your company or project name. accept_terms: Must be true. Confirms acceptance of the Ohmyfin Terms & Conditions at https://ohmyfin.ai/terms. Examples: mcp_register("agent@example.com", "Acme Corp", true)

  • mcp_verify

    Verify your email and receive your API key. After calling mcp_register, check your email for the 6-digit code and pass it here. On success, returns your production and test API keys. You must subscribe at ohmyfin.ai/subscription to activate paid tools. Args: email: The email you registered with. code: The 6-digit verification code from your email. Examples: mcp_verify("agent@example.com", "123456")

Kifly — Agentic Commerce & Paymentsio.kifly/mcpCPublisher
  • checkout

    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 confirms — it never charges a card or completes an order on its own.** On success: `payment_rail` tells you which outcome you got. `'stripe-checkout'` — a real Kifly purchase: returns `payment_url` (the Stripe link the BUYER must open and pay), `session_id` for `order_status`, and amount breakdown. **Relay the link and tell the buyer they need to complete payment themselves — do not imply the purchase is done until `order_status` reports `paid`.** `'directory-handoff'` — this seller is discovery-only (`kifly_purchasable: false` on the cart, as already signaled by create_cart/add_to_cart/get_cart); there is NO `payment_url`/`session_id`. Instead a `handoff` object carries `seller` (name, handle, storefront_url) and `items` (each with a tracked `link` to the product on the seller's own site, or null — fall back to `seller.storefront_url`), plus a `disclaimer` to relay verbatim. Present this as a referral to complete the purchase off-platform, not as a completed Kifly order. **To pre-fill the buyer's email on the payment page, pass `email` — ask the buyer for it in plain language ('what email should the receipt go to?'). Never ask the buyer to paste a token.** `buyer_token_status` in the response reports whether an (internal) token was applied to pre-fill the saved email: `'resolved'` / `'invalid'` / `'none'` — an invalid token is NOT an error response. On 502/503 errors, check `retryable: true` in the body — those are transient upstream faults; wait `retry_after_seconds` then retry once.

  • register_buyer

    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 their inbox, then call `verify_buyer` with the same email + code to get a `buyer_token` (`kfb_live_...`). **Store that token and pass it to `checkout` on every future order** — it pre-fills the buyer's email on the secure Stripe payment link. Safe to call for a buyer you believe is new; if they already have an account, verify_buyer still recovers it.

  • request_buyer_code

    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`. Always returns `{ sent: true }` — for the buyer's privacy the response is identical whether or not the email has a Kifly account (so it can't be used to probe who shops here), and a code is only actually emailed if an account exists. If the buyer never receives a code, they likely don't have an account yet: call `register_buyer` instead, which creates one and emails a code either way. Requires the `buyer:write` capability (marketplace/network keys).

  • verify_buyer

    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 `request_buyer_code` again). Requires the `buyer:write` capability.

  • get_buyer_profile

    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, then call `verify_buyer` to obtain their `buyer_token`, and finally call this tool with that token to auto-fill name, email, and shipping — they skip all manual data entry. (Alternative if email verification isn't available: send them the one-click sign-in link `https://kifly.ai/buyer?return_url=<encoded_current_chat_url>` — they sign in with Google and return with their details; the same link creates an account if they're new.) Use the returned `name` and `default_shipping_address` to auto-fill `set_shipping_address`. Pass the `buyer_token` to `checkout` so Stripe pre-fills their email. Returns `{ name, email, default_shipping_address }` where `default_shipping_address` may be null if the buyer hasn't saved one yet — if null, collect the address normally then call `save_buyer_address` so it's pre-filled next time.

  • request_feature

    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 buyer articulate a real problem: ask OPEN, non-leading questions ('what were you trying to do? what got in the way? how do you handle it today?') — never 'would feature X help?'. Pre-fill the fields from the conversation and ask only for the gaps; keep it short. Separate the `problem` (the pain) from any `proposed_solution` (the fix). Name and email are taken from the buyer profile automatically — do not ask for them. Returns 202: it's logged for review. **Do NOT promise the user anything will be built** — just confirm it was recorded.

Fintech Intelio.github.pipeworx-io/fintech-intelCVerified
  • subscribe

    Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).