Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "get_shop_facts" and "recommend_plan"; changed the definition of "get_plan_details", "search_esim_plans" and "start_checkout" (3 tools before, 5 now)
Fulldetailsfacts for one IbiPoint plan by product id: coverage with networks per country, data and speed rules, activation and validity,networkrules, top-up,supporttethering,transparencyprice with basis (per-day plans: price_30_days and price_max), reviews andlink.link — quoted in the customer's bucket or currency when given.
{"properties":{"bucket":{"description":"Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it.","type":"string"},"currency":{"description":"Optional ISO 4217 code. Every price in the result is quoted in it.","type":"string"},"language":{"description":"ISO language of theconversation.conversation,Setse.g.theen,landing-pagede,language/currencyja.ofPlanthenameslink.and country names come back in it when available. Bare \"en\" is quoted in en-us / USD.","type":"string"},"product_id":{"description":"WooCommerce productProduct id fromsearch_esim_plans.search_esim_plans or recommend_plan.","type":"integer"}},"required": ⟨3 unchanged words⟩
{"additionalProperties":true,"description":"One eSIM plan. Every field is present only when the catalogue holds a value for it; an absent field is unknown, never \"no\".","properties":{"activation_trigger":{"description":"\"install\": validity and billing start the moment the eSIM is installed — install only when ready to use. \"first_connection\": the eSIM can be installed before travel; validity starts on first connection to a network at the destination.","enum":["install","first_connection"],"type":"string"},"always_on_rate":{"description":"Unlimited Flex: reducedratespeed after the dailyallowance.allowance, e.g. \"512 Kbit/s\". Empty when the plan is unlimited.","type":"string"},"coverage_count":{"description":"Number of countries in coverage_countries.","type":"integer"},"coverage_countries":{"description":"Every country the plan works in, with the network operators per country when known.","items":{"additionalProperties":true,"properties":{"iso":{"description":"ISO 3166-1 alpha-2, lowercase.","type":"string"},"name":{"description":"Country name in the requested language.","type":"string"},"networks":{"description":"Operator names in that country, as the supplier lists them.","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"coverage_note":{"description":"Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong.","type":"string"},"covers_via":{"description":"Present when the plan was returned for a country it covers as part of a multi-country plan: the plan's own region name.","type":"string"},"currency":{"description":"ISO 4217 currency of every price in this object.","type":"string"},"daily_high_speed":{"description":"Unlimited Flex: dailyhigh-speedallowanceallowance.at full speed, e.g. \
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}
Find IbiPoint eSIM plans foraone destination or several (countrycountries orregionregions, any language). Returns the best-value planssorted byfirstIbiPointwithDatafullRatingfacts,withcoveragepriceslists and a directlink.link; multi-country plans that include the destination are returned too and marked covers_via. Use when a user wants mobile dataabroad.abroad; use recommend_plan when they describe a whole trip.
⟨13 unchanged words⟩ the product page where they tap Buy nowtoand pay securely — card, Apple Pay, Google Pay, PayPal, with an optional discount code) plus the plan name andprice.price in the customer's bucket or currency. No account needed; the eSIM is emailed right ⟨8 unchanged words⟩
{"properties":{"languagebucket":{"description":"Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it.","type":"string"},"currency":{"description":"Optional ISOlanguage4217ofcode. Every price in theconversation.result
Shop facts — How IbiPoint works, in the shop's own words: delivery and installation, device requirements, payment methods, money-back guarantee, top-up, hotspot, support and company details. Use for any "how / when / what if" question that is not about one specific plan.
Recommend a plan for a trip — Turn a trip into up to three plan recommendations: countries (1-5, any language), number of days and how much data the traveller uses. Each fit carries the full plan facts, the total price for the whole trip and a one-sentence reason built only from catalogue facts. Use this first whenever the user describes a trip rather than asks for a list.
Changed the definition of "get_plan_details", "search_esim_plans" and "start_checkout"
⟨36 unchanged words⟩ ,"data_gb":{"type":"number"},"days_range":{"description":"Only on price_basis \"per_day\": the durations the customer can choose, in days, e.g. \"1-365\".","type":"string"},"description":{"type":"string"},"name":{" ⟨15 unchanged words⟩ :"string"},"price":{"description":"FullPrice in currency, to be read WITH price_basis: the full fixed price of the plan when price_basis is \"total\", the price of one day when it is \"per_day\". Never a per-GB rate.","type":"number"},"price_30_days":{"description":"Only on price_basis \"per_day\": the price for 30 days with the duration discount applied — the reference figure to quote for a stay of about a month. Absent when it cannot be computed; never infer it by multiplying price.","type":"number"},"price_basis":{"description":"What `price` means. \"total\" = the whole plan (Data Pack). \"per_day\" = one day (Unlimited Flex): the duration is chosen at checkout within days_range; see price_30_days and price_max.","enum":["total","per_day"],"type":"string"},"price_max":{"description":"Only on price_basis \"per_day\": the price for the longest duration incurrency;
Certificate changed, valid to 2026-12-16
Certificate recorded, valid to 2026-10-18
Authorization not required
Unknown → Live
First tool surface recorded: 3 tools (server version 0.17.0)
https://ibipoint.com/esimshop/wp-json/ibipoint/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 8 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"properties":{"currencybucket":{"description":"OptionalISOlanguage-region4217bucketoverridetheforcustomertheshopsheadlinein, e.g. \"from\en-gb\",price.\"de-de\".NormallyWinsderivedoverfromlanguage;language.prices and links are quoted in it.","type":"string"},"currency":{"description":"Optional ISO 4217 code. Every price in the result is quoted in it.","type":"string"},"destination":{"description":"Country or region in any language, e.g. \"Thailand\", \"Japan\Japon\", \"Europe\Europa\".,Cityornamesaare2-lettermappedISOtocode.theirFor a city, pass its country.","type":"string"},"destinations":{"description":"Several countries for one trip; only plans covering ALL of them are returned. Overrides destination.","items":{"type":"string"},"maxItems":5,"type":"array"},"language":{"description":"ISO language of the conversation, e.g. en, de,jaja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD.","type":"string"},"limit":{"description":"Plansth.toSetsreturn.theDefaultlanding-page10;languageall_plans_urlandlistscurrency.everything.","maximum":50,"minimum":1,"type":"integer"},"min_days":{"description":"Only plans valid for at least this many days (Unlimited Flex counts when days_range allows it).","minimum":1,"type":"integer"},"sort":{"description":"value = best price per GB / cheapest Flex first (default); price = cheapest first; data = most data first.","enum":["value","price","data"],"type":"string"},"type":{"description":"Plan ⟨7 unchanged words⟩ ,"type":"string"}},"required":["destination"],"type":"object"}
⟨12 unchanged words⟩ ,"destination":{"type":"string"},"from_pricedestinations":{"description":"LocalizedHow\each requested destination was understood."from\,"items":{"additionalProperties":true,"properties":{"iso":{"type":"string"},"name":{"type":"string"},"query":{"type":"string"}},"type":"object"},"type":"array"},"from_price":{"description":"Lowest pricestring.in this result set, shop-formatted (per-day plans count with their day price).","type":"string"},"iso":{"description":"Resolved ISO code or region slug of the (first) destination.","type":"string"},"message":{"description":"Present when nothing matched: says why and what to try.","type":"string"},"note":{"description":"Present when part of the request could not be honoured (e.g. more than 5 destinations).","type":"string"},"plans":{"items":{"additionalProperties":true,"description":"One eSIM plan. Every field is present only when the catalogue holds a value for it; an absent field is unknown, never \"no\".","properties":{"activation_trigger":{"description":"\"install\": validity and billing start the moment the eSIM is installed — install only when ready to use. \"first_connection\": the eSIM can be installed before travel; validity starts on first connection to a network at the destination.","enum":["install","first_connection"],"type":"string"},"always_on_rate":{"description":"Unlimited Flex: reducedratespeed after the dailyallowance.allowance, e.g. \"512 Kbit/s\". Empty when the plan is unlimited.","type":"string"},"coverage_count":{"description":"Number of countries in coverage_countries.","type":"integer"},"coverage_countries":{"description":"Every country the plan works in, with the network operators per country when known.","items":{"additionalProperties":true,"properties":{"iso":{"description":"ISO 3166-1 alpha-2, lowercase.","type":"string"},"name":{"description":"Country name in the requested language.","type":"string"},"networks":{"description":"Operator names in that country, as the supplier lists them.","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"coverage_note":{"description":"Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong.","type":"string"},"covers_via":{"description":"Present when the plan was returned for a country it covers as part of a multi-country plan: the plan's own region name.","type":"string"},"currency":{"description":"ISO 4217 currency of every price in this object.","type":"string"},"daily_high_speed":{"description":"Unlimited Flex: dailyhigh-speedallowanceallowance.at full speed, e.g. \"2GB\"; \"unlimited\" = unlimited data every day at full speed (fair-use policy).","type":"string"},"data":{"description":"Data Pack: total datalabel.label, e.g. \"5GB\".","type":"string"},"data_gb":{"description":"Data amount in GB. Meaning given by data_period.","type":"number"},"days_rangedata_period":{"description":"Only\"total\":ondata_gbprice_basisis the whole plan (Data Pack). \"per_day\":thedata_gbdurationsis thecustomerdailycanfull-speedchooseallowance (Unlimited Flex).","enum":["total","per_day"],"type":"string"},"days":{"description":"Validity in days (Data Pack).","type":"integer"},"days_range":{"description":"Unlimitede.g.Flex: choosable durations in days, \"1-365\".","type":"string"},"descriptionexpires_on":{"description":"Stock expiry date (YYYY-MM-DD) when the product itself has one.","type":"string"},"namefair_use":{"description":"Fair-use policy text from the supplier, when stated.","type":"string"},"networkinstall_before_travel":{"description":"Speedtruetokenwhenonlythe eSIM can safely be installed before departure (e.g.activation_trigger4G/LTE/5Gfirst_connection).","type":"boolean"},"ip_breakout":{"description":"Country whose internet connection the customer appears to use (IP breakout), ISO code(s) —nevermattersaforcarrier/operatorbanking apps, streaming and mainland-China access. Vendor fact.","type":"string"},"last_updated":{"description":"Date the plan was last updated in the catalogue (YYYY-MM-DD).","type":"string"},"name":{"description":"Short plan name: destination · data · validity · type.","type":"string"},"network_generation":{"description":"Network technology, e.g. \"4G/LTE/5G\". Never an operator name.","type":"string"},"pricenetworks":{"description":"PriceOperator names across the plan (deduplicated). Per-country detail is incurrencycoverage_countries.","items":{"type":"string"},"type":"array"},"plan_note":{"description":"One-sentence vendor fact tobepresent verbatim when present; overrides the generic type description.","type":"string"},"price":{"description":"Price in currency, read WITH price_basis: the fullfixedprice of the plan whenprice_basis is\"total\", the price ofoneONE day whenit is\"per_day\". Never a per-GB rate. The price shown is the price paid.","type":"number"},"price_30_days":{ ⟨21 unchanged words⟩ quote for a stay of about a month.Absent when it cannot be computed; neverNever infer it bymultiplying price.multiplying.","type":"number"},"price_basis":{"description":"What `price` means.\"total\" = the whole plan (Data Pack). \"per_day\" = one day (Unlimited Flex): the duration is chosen at checkout within days_range; see price_30_days and price_max.","enum":["total","per_day"],"type":"string"},"price_is_final":{"description":"Always true: no tax or fee is added at checkout.","type":"boolean"},"price_max":{"description":"Only on price_basis \"per_day\": the price for the longest duration in days_range (365 days), discount applied.AbsentNeverwheninfer itcannotbybemultiplying.","type":"number"},"pricing_bucket":{"description":"language-regioncomputed;bucketnevertheinferpricesitandbylinksmultiplyingareprice.quoted in, e.g. \"en-us\".","type":"numberstring"},"product_id":{"description":"Product id. Use it for get_plan_details and start_checkout.","type":"integer"},"rating":{"description":"Average customer rating (1-5). Present only when reviews exist.","type":"number"},"review_count":{"description":"Number of reviews. Present only when > 0.","type":"integer"},"sku":{"description":"Catalogue SKU.","type":"string"},"summary":{"description":"Short description in the requested language, from the product page.","type":"string"},"tethering":{"description":"Hotspot / tethering is supported where the network and device allow it (shop rule).","type":"boolean"},"title":{"description":"Full product title in the requested language.","type":"string"},"topup":{"additionalProperties":true,"description":"Top-up possibility for this plan.","properties":{"how":{"description":"How the customer tops up.","type":"booleanstring"},"kind":{"description":"What TopUp can add without a new eSIM: data (Data Pack), days (Unlimited Flex), or none.","enum":["data","days","none"],"type":"string"}},"type":"object"},"transparency":{"description":"A per-order Transparency link shows remaining data in near real-time.","type":"boolean"},"type":{"description":"Plan type.","enum":["Data Packor","UnlimitedFlex.Flex"],"type":"string"},"unused_valid_days":{"description":"Days the eSIM may remain unused after purchase before it expires (supplier value).","type":"integer"},"url":{"description":"Product page in pricing_bucket. Use verbatim.","type":"string"},"validity":{"description":"DataValidityPacklabel, e.g. \"30 days\".","type":"string"},"voice_sms":{"description":"Alwaysvalidity\"none\":label.data only, no telephone number, no SMS.","type":"string"}},"type":"object"},"type":"array"},"pricing_bucket":{"type":"string"},"returned":{"type":"integer"},"total_available":{"description":"Plans matched before limit; the rest are on all_plans_url.","type":"integer"}},"type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}
{"additionalProperties":true,"properties":{"app_links":{"additionalProperties":true,"description":"Optional store linkstoof the free IbiPoint app (android/iosandroid, ios).Mention-onlythewheneSIMpresent.works without it.","type":"object"},"buy_url":{ ⟨14 unchanged words⟩ ,"currency":{"type":"string"},"days_rangedays":{"descriptiontype":"Only on price_basis \integer"per_day\},"days_range":choosable durations in days, e.g. \{"1-365\type".:"string"},"message":{"type":"string"},"messagepresentation":{"type":"string"},"price":{"description":"Price in currency, to be readRead WITHprice_basis: the full fixed price when \"total\", the price of one day when \"per_day\".price_basis.","type":"number"},"price_30_days":{"description":"Only on price_basisUnlimited\"per_day\"Flex: price for 30 days, discountapplied — the reference figure for a month.applied.","type":"number"},"price_basis":{"description":"What `price` means for this product. See the plan schema.","enum":["total","per_day"],"type":"string"},"price_maxprice_is_final":{"descriptiontype":"Only on price_basis \boolean"per_day\},"price_max":price for the longest duration, discount applied.{"type":"number"},"pricing_bucket":{"type":"numberstring"},"product":{"type":"string"},"product_id":{"type":"integer"},"total_for_days":{"description":"Unlimited Flex: checkout total for the requested days, discount applied.","type":"number"}},"type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}
⟨68 unchanged words⟩ ,"data_gb":{"type":"number"},"days_range":{"description":"Only on price_basis \"per_day\": the durations the customer can choose, in days, e.g. \"1-365\".","type":"string"},"description":{"type":"string"},"name":{" ⟨15 unchanged words⟩ :"string"},"price":{"description":"FullPrice in currency, to be read WITH price_basis: the full fixed price of the plan when price_basis is \"total\", the price of one day when it is \"per_day\". Never a per-GB rate.","type":"number"},"price_30_days":{"description":"Only on price_basis \"per_day\": the price for 30 days with the duration discount applied — the reference figure to quote for a stay of about a month. Absent when it cannot be computed; never infer it by multiplying price.","type":"number"},"price_basis":{"description":"What `price` means. \"total\" = the whole plan (Data Pack). \"per_day\" = one day (Unlimited Flex): the duration is chosen at checkout within days_range; see price_30_days and price_max.","enum":["total","per_day"],"type":"string"},"price_max":{"description":"Only on price_basis \"per_day\": the price for the longest duration incurrency;days_range,notdiscountper-dayapplied.orAbsentper-GB.when it cannot be computed; never infer it by multiplying price.","type":"number"},"product_id":{ ⟨43 unchanged words⟩
⟨35 unchanged words⟩ ,"currency":{"type":"string"},"days_range":{"description":"Only on price_basis \"per_day\": choosable durations in days, e.g. \"1-365\".","type":"string"},"message":{"type":"string"},"price":{"description":"FullPrice in currency, to be read WITH price_basis: the full fixed priceinwhencurrency;\"total\",nottheper-day.price of one day when \"per_day\".","type":"number"},"price_30_days":{"description":"Only on price_basis \"per_day\": price for 30 days, discount applied — the reference figure for a month.","type":"number"},"price_basis":{"description":"What `price` means for this product. See the plan schema.","enum":["total","per_day"],"type":"string"},"price_max":{"description":"Only on price_basis \"per_day\": price for the longest duration, discount applied.","type":"number"},"product":{ ⟨4 unchanged words⟩