{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ha2bbrccfjz3","handle":"ucode-sms","url":"https://wellknown.network/agents/ucode-sms","links":{"self":"https://wellknown.network/agents/ucode-sms/record.json","html":"https://wellknown.network/agents/ucode-sms","markdown":"https://wellknown.network/agents/ucode-sms/record.md","api":"https://wellknown.network/api/v1/agents/ucode-sms","status":"https://wellknown.network/api/v1/agents/ucode-sms/status","claim":"https://wellknown.network/agents/ucode-sms/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ucode-sms/claim.json","badge":"https://wellknown.network/agents/ucode-sms/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ucode-sms/history","tools":"https://wellknown.network/api/v1/agents/ucode-sms/tools"},"ard":{"identifier":"urn:air:mcp.ucodesim.com:server:ucode-sms","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Ucode SMS","summary":"Virtual phone numbers for SMS/OTP verification. Browse free; pay with credits or USDC (x402).","description":"Virtual phone numbers for SMS/OTP verification. Browse free; pay with credits or USDC (x402).","publisher":{"name":"uk.ucode","url":null},"homepage":"https://ucode.uk/agents","repository":null,"version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.ucodesim.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-29T11:35:42.089969Z","publishedAt":"2026-09-29T11:35:42.089969Z","registryName":"uk.ucode/sms"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"communication.sms-voice","name":"SMS & Voice","confidence":1,"provenance":"derived"},{"slug":"finance.banking","name":"Banking","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.992,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.54,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["analytics","commerce","communication","content","data","finance","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-11T03:21:13.292Z","lastProbedAt":"2026-10-11T03:21:13.292Z","statusComputedAt":"2026-10-11T03:22:34.617Z","reliability30d":{"probes":68,"successRate":1,"p50Ms":123,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":68,"ok":68,"authBoundaryOk":0,"serviceOk":68,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T03:21:13.292Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":96,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T20:28:16.920Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":114,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T14:25:53.575Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":157,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T07:25:30.022Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":106,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T01:25:06.581Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":134,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T19:27:53.848Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":158,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T13:31:55.939Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":143,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T07:26:01.501Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":174,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T01:25:25.280Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":110,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T18:27:51.383Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":152,"error":null,"detail":{"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"toolCount":50,"toolsHash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","serverName":"ucode-panel","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"ucode_render_home","description":"**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/con"},{"name":"ucode_render_services","description":"Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimiz"},{"name":"ucode_welcome","description":"Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message."},{"name":"ucode_session_status","description":"Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If "},{"name":"ucode_panel_ping","description":"Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io)."},{"name":"ucode_agent_billing","description":"No login. Lists prepaid credit packs priced in USDC on Base for autonomous agents/bots (packageId, credits, usd, payTo). Buy one with **ucode_agent_buy_credits*"},{"name":"ucode_instructions","description":"Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_logi"},{"name":"ucode_help","description":"Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP "},{"name":"ucode_connect","description":"Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked."},{"name":"ucode_login_start","description":"Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked."},{"name":"ucode_login_poll","description":"Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to "},{"name":"ucode_authenticate","description":"Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_"},{"name":"ucode_whoami","description":"Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate)."},{"name":"ucode_disconnect","description":"Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconn"},{"name":"ucode_sign_out","description":"Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests."},{"name":"ucode_credits_status","description":"Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call "},{"name":"ucode_render_credits","description":"Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credit"},{"name":"ucode_credit_packages","description":"Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base."},{"name":"ucode_credit_gift_breakdown","description":"Free-credit badges / gift breakdown."},{"name":"ucode_credit_referral_stats","description":"Referral code and earnings summary."},{"name":"ucode_credit_referral_redeem","description":"Apply a friend's referral code (once per account, only if the referral program is active). Never guess, generate or loop over codes."},{"name":"ucode_payments_stripe_prices","description":"**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-sty"},{"name":"ucode_payments_stripe_create_checkout","description":"**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call"},{"name":"ucode_payments_stripe_verify","description":"After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account."},{"name":"ucode_payments_nowpayments_create","description":"Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bot"},{"name":"ucode_payments_nowpayments_status","description":"Poll invoice / payment status by NOWPayments id."},{"name":"ucode_credits_verify_app_store_purchase","description":"Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for "},{"name":"ucode_services_catalog","description":"Paginated Ucode service catalog with per-country availability from the Panel database."},{"name":"ucode_sms_services","description":"Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then cre"},{"name":"ucode_sms_countries","description":"Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country nam"},{"name":"ucode_sms_prices","description":"**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_servic"},{"name":"ucode_sms_summary","description":"Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assist"},{"name":"ucode_sms_service_detail","description":"Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: avail"},{"name":"ucode_sms_rent_packages","description":"After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowV"},{"name":"ucode_sms_rent_with_credits","description":"**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never menti"},{"name":"ucode_sms_rent_provider_direct","description":"**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_re"},{"name":"ucode_sms_active_rentals","description":"Active/received rentals with SMS snippets if already fetched."},{"name":"ucode_sms_get_code","description":"Poll latest SMS for a rental id (provider rental id string)."},{"name":"ucode_sms_cancel_rental","description":"Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | cod"},{"name":"ucode_sms_refund_expired","description":"Trigger server-side refund scan for expired rentals (same as app)."},{"name":"ucode_sms_transactions","description":"Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users."},{"name":"ucode_app_init_snapshot","description":"Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native."},{"name":"ucode_find_numbers","description":"No sign-in needed. Search which apps/services (Telegram, WhatsApp, Google, OpenAI…) have virtual numbers in stock, by country, with the price in Ucode credits. "},{"name":"ucode_agent_quote","description":"Exact USDC (Base) price to rent ONE number for a service/country without prepaid credits. Use the 'service' code from ucode_find_numbers and a countryId."},{"name":"ucode_agent_buy_credits","description":"Autonomous agents: buy a prepaid credit pack with USDC on Base using the x402 protocol — no account or card needed. Step 1: call with {pack, acceptLawfulUse:tru"},{"name":"ucode_agent_rent","description":"Rent one virtual number for a lawful SMS verification. Pays from the agent wallet when a uc_live_ API key is active (from ucode_agent_buy_credits, ucode_agent_u"},{"name":"ucode_agent_check_sms","description":"Poll an agent rental for the SMS/OTP. Pass id and pollToken from ucode_agent_rent (or rely on the session API key)."},{"name":"ucode_agent_wallet","description":"Credit balance of the agent wallet behind the active uc_live_ API key."},{"name":"ucode_agent_use_api_key","description":"Activate a previously issued uc_live_ agent API key for this MCP session (for clients that cannot set an Authorization header)."},{"name":"ucode_agent_cancel","description":"Cancel an agent rental when no SMS arrived; credits return to the agent wallet. Requires the uc_live_ API key."}],"package":null,"toolSurface":{"id":"ts_5fesqnmsxkb9","endpointId":"ep_zgd8fn7pnzw5","hash":"435723df59ccf0b9c0af909c7840453610bc6b586db53a73bd5c6d25f8e78466","toolCount":50,"serverName":"ucode-panel","serverVersion":"1.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-03T17:25:25.823Z","lastSeenAt":"2026-10-11T03:21:13.306Z","observations":28,"toolNames":["ucode_render_home","ucode_render_services","ucode_welcome","ucode_session_status","ucode_panel_ping","ucode_agent_billing","ucode_instructions","ucode_help","ucode_connect","ucode_login_start","ucode_login_poll","ucode_authenticate","ucode_whoami","ucode_disconnect","ucode_sign_out","ucode_credits_status","ucode_render_credits","ucode_credit_packages","ucode_credit_gift_breakdown","ucode_credit_referral_stats","ucode_credit_referral_redeem","ucode_payments_stripe_prices","ucode_payments_stripe_create_checkout","ucode_payments_stripe_verify","ucode_payments_nowpayments_create","ucode_payments_nowpayments_status","ucode_credits_verify_app_store_purchase","ucode_services_catalog","ucode_sms_services","ucode_sms_countries","ucode_sms_prices","ucode_sms_summary","ucode_sms_service_detail","ucode_sms_rent_packages","ucode_sms_rent_with_credits","ucode_sms_rent_provider_direct","ucode_sms_active_rentals","ucode_sms_get_code","ucode_sms_cancel_rental","ucode_sms_refund_expired","ucode_sms_transactions","ucode_app_init_snapshot","ucode_find_numbers","ucode_agent_quote","ucode_agent_buy_credits","ucode_agent_rent","ucode_agent_check_sms","ucode_agent_wallet","ucode_agent_use_api_key","ucode_agent_cancel"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_zgd8fn7pnzw5","url":"https://mcp.ucodesim.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-06T13:26:34.939Z","auth":{"observedAt":"2026-10-06T13:26:35.065Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-06T13:26:35.077Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"ucodesim.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-08-28T20:14:24.000Z","validTo":"2026-11-26T20:14:23.000Z","daysToExpiry":46,"sanCount":2,"fingerprint256":"3D:54:70:1F:7B:5A:59:9E:19:22:7C:32:74:0D:BA:50:82:9C:B7:02:12:DF:AB:29:26:10:5D:8D:DF:D4:77:5F"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"uk.ucode/sms","url":"https://registry.modelcontextprotocol.io/v0/servers/uk.ucode%2Fsms","firstSeenAt":"2026-09-22T16:19:59.288Z","fetchedAt":"2026-10-08T21:19:53.391Z","normalizedAt":"2026-10-08T21:19:53.391Z"}]},"firstSeenAt":"2026-09-22T16:19:59.288Z","updatedAt":"2026-10-11T03:23:33.862Z"}