PriceBee
Server Details
Compare prices of products in online shops and of mobile plans in Lithuania, Latvia and Estonia.
- Status
- Healthy
- Uptime
- 99.6% over 19 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct resource and action: mobile plans (search/get), mobile operators (list), and products (search/get). The search/get pairs are clearly split by domain, and list_mobile_operators serves a different summary purpose than search_mobile_plans. No overlapping boundaries.
All tool names follow a predictable snake_case verb_noun pattern: get_mobile_plan, get_product, list_mobile_operators, search_mobile_plans, search_products. The convention is applied consistently across both domains.
Five tools is well-scoped for a read-only price comparison service covering mobile plans and products. Each tool earns its place: two search tools, two detail tools, and one operator listing tool. No obvious bloat or thinness.
The surface covers the core workflow: search products or mobile plans, then retrieve details for a chosen result, plus list mobile operators. Minor gaps exist, such as no standalone category or shop browsing tool, but the provided search_url and get_product shop listing mitigate this for most agent tasks.
Available Tools
5 toolsget_mobile_planGet a mobile planARead-onlyIdempotentInspect
One mobile plan in full, by the id search_mobile_plans returned: every contract option with promos, crossed-out and announced prices, order fees and the total over the commitment, data roaming outside the EU, calls and SMS to the EU, and PriceBee's overview of who the plan suits. Use it when the user asks about a specific plan or wants the fine print before choosing.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | The plan id from search_mobile_plans. | |
| language | No | The user's language for the plan overview: en (default), lt, ru, lv or ee. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds substantive scope beyond that by enumerating exactly what is returned (promos, crossed-out/announced prices, order fees, commitment total, roaming, suitability overview), which tells the agent the depth of the response. No mention of error or missing-id behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns before the usage trigger. The long enumeration of return contents is dense but each item is informative; only slight trimming would be possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return payload, and it does so thoroughly while also pointing to the source of the id. Complete enough for an agent to call correctly, though it could note behavior when the id is invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (plan_id, language) are already documented, which sets the baseline at 3. The description reinforces plan_id's provenance ('the id search_mobile_plans returned') and hints at a localized overview via 'PriceBee's overview', but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb+resource ('One mobile plan in full') and immediately enumerates the payload (contract options, prices, fees, roaming, EU calls/SMS, suitability overview). This clearly distinguishes it from the sibling search_mobile_plans, which is framed as the source of the id rather than the detail fetcher.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it when the user asks about a specific plan or wants the fine print before choosing' gives clear usage context, and the reference to 'the id search_mobile_plans returned' implicitly routes the agent through the search tool first. However, it never explicitly states when NOT to use it or names search_mobile_plans as the alternative for browsing, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productCompare a product's pricesARead-onlyIdempotentInspect
One product with the shops that sell it in a country and their offers (variants, colours) with prices, cheapest first (the first 15 listed, all counted), by the product id search_products returned (results of type "product"); pass the same country as that search. Use it to answer where something is cheapest or to compare shops. Give the user the product's url: its PriceBee page links to each shop.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | The country to shop in: lt (Lithuania, default), lv (Latvia) or ee (Estonia). | |
| product_id | Yes | The id of a search_products result of type "product". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds real behavioural detail beyond that: results are ordered cheapest first, only the first 15 are listed while the count reflects all offers, and the returned url links to each shop. It omits pagination mechanics and error behaviour, but the ordering/truncation disclosure is genuine added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scoping and use case are front-loaded, and all three sentences carry information. The opening sentence is somewhat run-on with stacked parentheticals, which slightly hurts readability but not substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two (fully described) parameters, annotations covering the safety profile, and no output schema, the description must carry the return-shape burden — and it does: shops, offers, variants/colours, prices, sort order, truncation and url. Only edge-case/error behaviour is absent, which is minor for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, which sets a baseline of 3, but the description goes further by fixing the provenance of product_id (must come from a search_products result of type "product") and constraining country to the same value used in that search. That cross-tool coordination is meaning the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: retrieve one product together with the shops selling it, their offer variants/colours and prices, sorted cheapest first. It explicitly distinguishes itself from the sibling search_products by tying product_id to a search_products result of type "product", so an agent can tell the two apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the use case outright ("use it to answer where something is cheapest or to compare shops") and gives the prerequisite workflow (pass the product id and country from the preceding search_products call). It stops short of stating when not to use it or naming the mobile-plan siblings as alternatives, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mobile_operatorsList mobile operatorsARead-onlyIdempotentInspect
The mobile operators PriceBee compares in a country (Lithuania, Latvia or Estonia), with how many plans each has, its cheapest monthly price, and whether it has 5G plans. Use it for questions about which operators exist, or to pick operator names for search_mobile_plans.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | lt Lithuania (default), lv Latvia, ee Estonia. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely new context by describing the returned fields (plan count, cheapest monthly price, 5G flag), which the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns and followed by usage routing. Every clause earns its place, though the parenthetical country list partially duplicates the schema enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return shape and does so explicitly (per-operator plan counts, cheapest price, 5G presence). Combined with the usage handoff and the fully documented single parameter, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum already documents lt/lv/ee including the default. The description's parenthetical country list reinforces the enum but adds no syntax or semantics beyond it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('The mobile operators PriceBee compares') scoped to three named countries, and explicitly enumerates what each entry contains (plan counts, cheapest price, 5G availability). It also distinguishes itself from siblings by naming search_mobile_plans as a downstream consumer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use framing ('questions about which operators exist, or to pick operator names for search_mobile_plans'), effectively routing the agent to the lookup-vs-search split. It stops short of stating when this tool is the wrong choice (e.g., when the user already knows the operator).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mobile_plansSearch mobile plansARead-onlyIdempotentInspect
Search the mobile phone plans of every operator in Lithuania, Latvia or Estonia, as compared on PriceBee. Prices are in euros, per month unless price_period says otherwise, from the operators' own sites, updated daily. Use it whenever someone wants a mobile, SIM-only, prepaid or data plan, or to compare operators. Set only the filters the user actually asked for. Each plan's pricebee_url (Lithuania) or order_url is the link to give the user.
| Name | Required | Description | Default |
|---|---|---|---|
| esim | No | Only plans the operator says work with an eSIM. | |
| sort | No | price_asc cheapest first (default), popular, data_desc most data, minutes_desc most minutes. | |
| limit | No | How many plans to return, 1-20 (default 8). | |
| country | No | lt Lithuania (default), lv Latvia, ee Estonia. | |
| prepaid | No | true: only prepaid (pay as you go); false: only contract plans. | |
| audience | No | Plans made for this group only (e.g. seniors, pupils). | |
| needs_5g | No | Only plans on a 5G network. | |
| operator | No | Only this operator, by name or domain, e.g. "Telia", "tele2.lt", "LMT". | |
| streaming | No | Only plans that include a streaming service (Netflix, Disney+, Go3, ...). | |
| commitment | No | Contract length: none (cancel any time), 12 or 24 months. | |
| data_in_eu | No | Only plans with data while roaming in the EU. | |
| for_devices | No | true: IoT plans for trackers, alarms and other devices instead of phones. | |
| min_data_gb | No | At least this much mobile data per month, in GB. Unlimited plans match too. | |
| min_minutes | No | At least this many call minutes. Unlimited plans match too. | |
| unlimited_data | No | Only plans with unlimited mobile data. | |
| unlimited_minutes | No | Only plans with unlimited calls. | |
| max_monthly_price_eur | No | Highest monthly price in euros (per month even for weekly or daily plans). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), but the description adds material context the annotations do not: pricing is in euros per month unless price_period overrides it, data comes from operators' own sites and is refreshed daily, and the result's pricebee_url/order_url is the link to hand the user. That freshness, currency-interpretation and follow-up-link guidance is genuinely supplementary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the what/where and then usage, units and the actionable link. All sentences carry information, though the 'Set only the filters the user actually asked for' sentence and the link sentence sit awkwardly after the schema-facing content rather than being grouped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description has to carry return-value orientation, and it does: it explains price units, per-period caveat, data provenance/freshness and which URL to surface. It does not describe the shape of each result or pagination beyond the limit parameter, which is the main remaining gap for a 17-filter search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 17 filters is already documented with enums and units, which sets the baseline at 3. The description reinforces price semantics ('per month unless price_period says otherwise'), which is useful since price_period is a result field not present in the schema, but it adds little else beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource with explicit scope: mobile phone plans across every operator in Lithuania, Latvia and Estonia, as compared on PriceBee. It implicitly separates itself from list_mobile_operators and get_mobile_plan by framing itself as the multi-plan comparison search, though it never names a sibling to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use trigger ('whenever someone wants a mobile, SIM-only, prepaid or data plan, or to compare operators') and an operational caution to set only the filters the user actually asked for. It stops short of naming alternatives (e.g. get_mobile_plan for a single plan's details), so there is no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch products and pricesARead-onlyIdempotentInspect
Search the products and prices of the online shops PriceBee compares in Lithuania, Latvia or Estonia (phones, laptops, TVs, appliances, cosmetics and much more), the same search as pricebee.lt, pricebee.lv and pricebee.ee. Ask for the country if it isn't clear. Use it when someone wants to buy something, compare prices or find where a product is cheapest. Works best with concrete product names or models ("Samsung Galaxy S25", "Dyson V15"); put a budget in max_price_eur, not in the query. Results are products (compared across shops; get_product lists their shops) or offers of a single shop for things PriceBee hasn't matched to a product. Prices are in euros including VAT. Give the user each result's url. price_overview describes the prices of every match, for suggesting budgets. search_url opens all results for the query on PriceBee (without the price range), for when the user wants to browse more.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results, 1-20 (default 8). | |
| query | Yes | What to look for, ideally a product name or model, in any language. No prices here. | |
| country | No | The country to shop in: lt (Lithuania, default), lv (Latvia) or ee (Estonia). | |
| max_price_eur | No | Highest price in euros (the budget). | |
| min_price_eur | No | Lowest price in euros. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description adds genuinely non-structured context: results are either cross-shop product comparisons or single-shop offers for unmatched items, prices include VAT, and the user should be given each result's url. It doesn't cover rate limits or pagination depth beyond the limit field, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and trigger in the opening sentences, then progressively adds operational detail. It is long and dense, packing five distinct directives into the same paragraph, but virtually every clause provides actionable information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description explains the two possible result shapes (multi-shop products vs single-shop offers) and how to surface them (give each result's url). Combined with the sibling routing and parameter guidance, an agent has everything needed to call and present results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it warns against putting prices in query, directs budgets to max_price_eur, and conditions the country parameter on user ambiguity. This is real semantic guidance layered on top of fully documented fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (search) and resource (products and prices across shops), names the exact underlying services (pricebee.lt/.lv/.ee), and distinguishes itself from get_product, which is explicitly called out as listing a product's shops. An agent can tell what this does and how it differs from siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger conditions ('when someone wants to buy something, compare prices or find where a product is cheapest'), operational advice ('ask for the country if it isn't clear', 'put a budget in max_price_eur, not in the query'), and routes to alternatives (get_product, price_overview, search_url) with the condition that selects each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
get_mobile_plan - First observed
get_product - First observed
list_mobile_operators - First observed
search_mobile_plans - First observed
search_products
Related MCP Connectors
Compare prices across Latvian online retailers: offers, price history and wishlists.
Compare 18M+ prices across Denmark, Sweden, Norway and Germany: product search, wishlists. No login.
Compare US mobile plans, VPNs, travel eSIMs, home internet by address, and German energy tariffs.
Price comparison for CZ/SK: product prices, shops, digital plans via Streamable HTTP.
551
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and compare live prices from Finnish marketplaces (Hinta.fi, Tori.fi, Huuto.net) for new and used products like electronics, furniture, and more.MIT
- AlicenseBqualityDmaintenanceCompare parcel and letter delivery prices across 60+ carriers in 27 European countries.1MIT

idealo MCP Serverofficial
AlicenseNot gradedqualityFmaintenanceEnables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).21MIT- AlicenseAqualityBmaintenanceSearches UK electronics products across multiple retailers, compares prices, and provides purchase links.268 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.