Veritaset
Verified, sourced mobile plan prices in 32 European markets and the US, ranked by public rules.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mcp": {
"url": "https://veritaset.com/mcp"
}
}
}远程端点
https://veritaset.com/mcpstreamable-http它能做什么
工具清单
工具(6)
🟢compare_mobile_plans(country, data_gb_month, minutes_month, sms_month, travel, ...)
Consumer mobile phone plans (SIM-only and prepaid) in these markets: Belgium, Netherlands, Luxembourg, France, Iceland, Hungary, Finland, Slovenia, Ireland, Slovakia, Estonia, Latvia, Croatia, Greece, Malta, Liechtenstein, Portugal, Lithuania, Romania, Bulgaria, Cyprus, Czechia, Norway, Sweden, Austria, Poland, Italy, Denmark, United Kingdom, Switzerland, Spain, Germany, United States (preview), including mobile data while travelling from there. Returns the plans that meet every stated need, ranked by effective monthly cost including promos, one-off fees and the cost of covering their trips (EU allowance and surcharges, or Canada and Mexico for US plans; operator roaming passes, travel eSIMs), each with its source link and check date (collected_by_hand where a person read the price on the operator's own website), plus questions worth asking the person (missing_inputs).
输入模式
{
"type": "object",
"properties": {
"country": {
"type": "string",
"enum": [
"BE",
"NL",
"LU",
"FR",
"IS",
"HU",
"FI",
"SI",
"IE",
"SK",
"EE",
"LV",
"HR",
"GR",
"MT",
"LI",
"PT",
"LT",
"RO",
"BG",
"CY",
"CZ",
"NO",
"SE",
"AT",
"PL",
"IT",
"DK",
"GB",
"CH",
"ES",
"DE",
"US"
],
"description": "Market, ISO 3166-1 alpha-2 (BE, NL, LU, FR, IS, HU, FI, SI, IE, SK, EE, LV, HR, GR, MT, LI, PT, LT, RO, BG, CY, CZ, NO, SE, AT, PL, IT, DK, GB, CH, ES, DE, US). Prices are in that market's currency."
},
"data_gb_month": {
"type": [
"number",
"string"
],
"description": "Mobile data the person uses per month, in GB, or \"unlimited\"."
},
"minutes_month": {
"type": [
"number",
"null"
],
"description": "National call minutes per month; null = unlimited. Default 100."
},
"sms_month": {
"type": [
"number",
"null"
],
"description": "National SMS per month; null = unlimited. Default 0. Plans that charge per SMS beyond their allowance are costed at the stated rate, so a rough figure is fine."
},
"travel": {
"type": "array",
"description": "Specific trips per year, when the person knows them. Takes precedence over travel_profile. Omit both if unknown (the result then lists travel under missing_inputs); pass [] if the person does not travel.",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Destination, ISO 3166-1 alpha-2 (e.g. FR, US, MA)."
},
"days_per_year": {
"type": "number"
},
"data_gb_per_day": {
"type": "number",
"description": "Default 0.5."
}
},
"required": [
"country",
"days_per_year"
]
}
},
"needs_esim": {
"type": "boolean"
},
"needs_5g": {
"type": "boolean"
},
"lines": {
"type": "number",
"description": "Number of lines (e.g. a family of 4). Default 1. Costs are then the total for all lines; each line has the data/minutes need above."
},
"hotspot_gb_month": {
"type": "number",
"description": "Mobile hotspot (tethering) data needed per month, in GB. Plans that don't state enough hotspot data don't fit."
},
"autopay": {
"type": "boolean",
"description": "false = the person won't use AutoPay; advertised AutoPay discounts are added back. Default true."
},
"travel_profile": {
"type": "string",
"enum": [
"none",
"eu_occasional",
"eu_frequent"
],
"description": "How the person travels, when they describe it loosely: eu_occasional = a couple of weeks a year in the EU, eu_frequent = about two months a year in the EU. Costed with the published assumptions (see assumptions in the result)."
},
"travels_outside_eu": {
"type": "boolean",
"description": "True if the person sometimes travels outside the EU. Each result then lists the plan's own options there (passes, included countries, pay-per-use rate) without costing a specific trip."
},
"max_monthly_eur": {
"type": "number",
"description": "Budget per month in the market's currency (despite the name), as advertised; for all lines together."
},
"accept_contract": {
"type": "boolean",
"description": "false = only plans without a minimum contract. Prepaid packs paid several months up front are not contracts (each result says so); use max_term_months to limit them."
},
"max_term_months": {
"type": "number",
"description": "Longest term the person accepts, in months: a contract or months paid up front (e.g. an annual prepaid pack). 1 = month to month only; 12, 24, 36… Omit for any."
},
"accept_prepaid": {
"type": "boolean"
},
"has_home_internet_with": {
"type": "string",
"description": "Operator group the person has home internet with (e.g. Proximus, Orange or Telenet in Belgium), which unlocks bundle prices."
},
"age": {
"type": "number",
"description": "Only needed for youth and senior plans."
},
"special_eligibility": {
"type": "boolean",
"description": "True if the person qualifies for offers limited to some customers (students, social tariffs, porting from a named operator, existing customers of another service). Default false: such plans are listed as not fitting, with the condition."
},
"horizon_months": {
"type": "number",
"description": "Months to average costs over, including promos. Default 12."
},
"limit": {
"type": "number",
"description": "Number of results, default 5, max 20."
}
},
"required": [
"data_gb_month"
]
}🟢find_better_plan(country, usage_months, current_offer_id, current_plan_name, current_price_month, ...)
Checks whether a cheaper mobile plan fits someone's actual usage (from a bill, an app screenshot or their own estimate) in their market. Takes a few months of usage and, if known, the current plan; returns plans that cover most of their months, ranked by effective monthly cost including trips, with the yearly saving against their current plan, sources and check dates. Send only numbers: no names, phone numbers or bills.
输入模式
{
"type": "object",
"properties": {
"country": {
"type": "string",
"enum": [
"BE",
"NL",
"LU",
"FR",
"IS",
"HU",
"FI",
"SI",
"IE",
"SK",
"EE",
"LV",
"HR",
"GR",
"MT",
"LI",
"PT",
"LT",
"RO",
"BG",
"CY",
"CZ",
"NO",
"SE",
"AT",
"PL",
"IT",
"DK",
"GB",
"CH",
"ES",
"DE",
"US"
],
"description": "Market, ISO 3166-1 alpha-2 (BE, NL, LU, FR, IS, HU, FI, SI, IE, SK, EE, LV, HR, GR, MT, LI, PT, LT, RO, BG, CY, CZ, NO, SE, AT, PL, IT, DK, GB, CH, ES, DE, US). Prices are in that market's currency."
},
"usage_months": {
"type": "array",
"description": "One entry per month, most recent first if known.",
"items": {
"type": "object",
"properties": {
"data_gb": {
"type": "number",
"description": "Mobile data used that month, GB."
},
"minutes": {
"type": "number",
"description": "National call minutes that month."
},
"roaming": {
"type": "array",
"description": "Days abroad that month.",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"days": {
"type": "number"
},
"data_gb": {
"type": "number"
}
},
"required": [
"country",
"days"
]
}
}
}
}
},
"current_offer_id": {
"type": "string",
"description": "Veritaset offer_id of the current plan, if it can be identified (see get_mobile_plan_details / compare results)."
},
"current_plan_name": {
"type": "string",
"description": "Current operator and plan name as on the bill, e.g. 'Proximus Mobile Smart'."
},
"current_price_month": {
"type": "number",
"description": "What the person pays per month today, in the market's currency as advertised, if the plan can't be identified."
},
"needs_esim": {
"type": "boolean"
},
"needs_5g": {
"type": "boolean"
},
"accept_contract": {
"type": "boolean",
"description": "false = only plans without a minimum contract. Prepaid packs paid several months up front are not contracts (each result says so); use max_term_months to limit them."
},
"max_term_months": {
"type": "number",
"description": "Longest term the person accepts, in months: a contract or months paid up front (e.g. an annual prepaid pack). 1 = month to month only; 12, 24, 36… Omit for any."
},
"has_home_internet_with": {
"type": "string",
"description": "Operator group the person has home internet with (e.g. Proximus, Orange or Telenet in Belgium), which unlocks bundle prices."
},
"age": {
"type": "number",
"description": "Only needed for youth and senior plans."
},
"special_eligibility": {
"type": "boolean",
"description": "True if the person qualifies for offers limited to some customers (students, social tariffs, porting from a named operator, existing customers of another service). Default false: such plans are listed as not fitting, with the condition."
},
"lines": {
"type": "number",
"description": "Number of lines (e.g. a family of 4). Default 1. Costs are then the total for all lines; each line has the data/minutes need above."
},
"hotspot_gb_month": {
"type": "number",
"description": "Mobile hotspot (tethering) data needed per month, in GB. Plans that don't state enough hotspot data don't fit."
},
"autopay": {
"type": "boolean",
"description": "false = the person won't use AutoPay; advertised AutoPay discounts are added back. Default true."
},
"travel_profile": {
"type": "string",
"enum": [
"none",
"eu_occasional",
"eu_frequent"
],
"description": "How the person travels, when they describe it loosely: eu_occasional = a couple of weeks a year in the EU, eu_frequent = about two months a year in the EU. Costed with the published assumptions (see assumptions in the result)."
},
"travels_outside_eu": {
"type": "boolean",
"description": "True if the person sometimes travels outside the EU. Each result then lists the plan's own options there (passes, included countries, pay-per-use rate) without costing a specific trip."
},
"limit": {
"type": "number",
"description": "Number of results, default 5, max 20."
}
},
"required": [
"usage_months"
]
}🟢get_mobile_plan_details(offer_id, country)
Full published record of one mobile plan or travel eSIM by offer_id, in any covered market: allowances, roaming (EU allowance, or Canada and Mexico for US plans), roaming passes, promo terms, source URL, source type (manual = collected by hand from the operator's own website in a normal browser) and check date.
输入模式
{
"type": "object",
"properties": {
"offer_id": {
"type": "string"
},
"country": {
"type": "string",
"description": "Market of the offer, ISO 3166-1 alpha-2, if known."
}
},
"required": [
"offer_id"
]
}🟢explain_ranking_method
The public Veritaset ranking rules and assumptions, with version, so a recommendation can be explained or audited.
输入模式
{
"type": "object",
"properties": {}
}🟢list_supported_countries
Markets covered by Veritaset for mobile plans and for home internet, with status (published or preview), brand and offer counts, how many were collected by hand, and the date of the last data check.
输入模式
{
"type": "object",
"properties": {}
}🟢compare_home_internet(country, download_mbps_min, upload_mbps_min, region, technology, ...)
Consumer home internet offers (fixed broadband alone or with TV, landline or mobile) in these markets: Belgium, Netherlands, Germany, France, United Kingdom, Italy, Spain. Returns the offers that meet the stated speed, region, TV / landline and contract needs, ranked by average monthly cost over the horizon (promos for their stated months, one-off fees, modem rental, and bundle discounts when the household has that operator's mobile), each part shown, with the source link, check date and the operator's address-check link. List prices are national; availability depends on the address.
输入模式
{
"type": "object",
"properties": {
"country": {
"type": "string",
"enum": [
"BE",
"NL",
"DE",
"FR",
"GB",
"IT",
"ES"
],
"description": "Market, ISO 3166-1 alpha-2."
},
"download_mbps_min": {
"type": "number",
"description": "Minimum advertised download speed in Mbps."
},
"upload_mbps_min": {
"type": "number",
"description": "Minimum advertised upload speed in Mbps."
},
"region": {
"type": "string",
"description": "City, province or region (e.g. Gent, Liège, Wallonia, Utrecht, Friesland). Regional operators are matched on it."
},
"technology": {
"type": "string",
"enum": [
"fibre",
"cable",
"dsl",
"fwa",
"satellite"
],
"description": "Only offers sold on this technology."
},
"wants_tv": {
"type": "boolean"
},
"wants_landline": {
"type": "boolean"
},
"wants_mobile": {
"type": "boolean",
"description": "True if offers that include mobile lines may be shown."
},
"has_mobile_with": {
"type": "string",
"description": "Operator or group the household has mobile with (e.g. Telenet, Proximus, KPN); counts that operator's bundle discounts."
},
"wants_mobile_with": {
"type": "string",
"description": "Operator the household would take mobile from as well; counts that operator's bundle discounts."
},
"accept_contract": {
"type": "boolean",
"description": "false = only offers without a minimum term."
},
"max_term_months": {
"type": "number",
"description": "Longest minimum term accepted, in months."
},
"special_eligibility": {
"type": "boolean",
"description": "True if the household qualifies for social tariffs or other restricted offers."
},
"max_monthly": {
"type": "number",
"description": "Budget per month in the market's currency, averaged over the horizon."
},
"horizon_months": {
"type": "number",
"description": "Months to average costs over. Default 24."
},
"limit": {
"type": "number",
"description": "Number of results, default 5, max 20."
}
},
"required": [
"country"
]
}社区
证据