Skip to main content
Glama

Compare digital services by price per month

compare_digital
Read-onlyIdempotent

Prices of digital services for a buyer's country, cheapest first, from the providers' official price lists (each row has source_url and verified_on) converted to the buyer's currency by the Czech National Bank rate (fx_date). Categories: ai-chat (ChatGPT, Claude, Gemini, Copilot, Perplexity, Grok, Mistral Vibe, GitHub Copilot, Cursor, Jasper, DeepL… subscriptions), ai-api (price per 1M input and output tokens of the main models: OpenAI, Anthropic, Google, Mistral, xAI, DeepSeek, AI21, Amazon Nova), ai-creative (Midjourney, Runway, Kling, Leonardo, Canva, Firefly, ElevenLabs, Suno… per month, per picture or second of video when stated), streaming, music, vpn, cloud, office (Microsoft 365, Google Workspace, Zoho, Notion, Slack, Zoom… personal, family and business per user; business prices usually exclude VAT), creative (Adobe Creative Cloud, Canva, Figma, CapCut, DaVinci Resolve Studio… monthly, yearly or a one-time purchase: such a row has oneTimeLocal instead of a monthly price), passwords (1Password, Bitwarden, Dashlane). usage turns the list into a cost of that use: for ai-api messages_per_month (+ input_tokens and output_tokens per message, default 1 500 and 600) (+ cache_share 0–1 and batch) gives usage_cost a month, usage_breakdown (input, cached input, output; whether the long-prompt band or the batch discount applied) and break_even_messages (below it the API is cheaper than the provider's cheapest paid chat plan); for ai-creative images_per_month and video_seconds_per_month. A null price means the official page did not show one; it is never guessed. Each row carries data_location from the provider's own privacy policy (controller, storedIn country codes, inChina, authoritiesClause, quote, url, checked), null when we have not read it. Where the same plan is also sold inside the app (inAppPrices: the App Store's price for the buyer's country, with VAT, verifiedOn and sourceUrl), inApp compares a month on the web (the price list's price, plus the country's VAT when the list excludes it: web.vatAdded) with a month in the app, both in the buyer's currency: cheaper (web | app | same) and difference a month; inAppYearly does the same for yearly billing. Say both prices and which is cheaper; a plan without inApp has no store price read (never assume the app costs the same). Every row carries price, the one amount to show (the same as fordeal.ai shows): price.monthly and price.yearly (12 × monthly; yearlyWhenYearly = 12 × the month paid yearly) in the buyer currency with the buyer country VAT added where the price list excludes it (price.vat: included | by_law | added | excluded | unknown, price.vatRate), price.billing, price.channel (web) and price.rateDate; rows are ranked by price.monthly. promo (an open promotion) has monthlyLocal as converted and monthlyLocalGross on the same VAT basis as price: show the gross one, then price.monthly after it, both with the VAT word of price.vat. kind says who can buy the plan: regular (anyone), student (verified students or educators), business (companies and teams) or promo (only under the offer terms); never present a non-regular plan as the generic cheapest without saying who is eligible.

Input Schema

NameRequiredDescriptionDefault
tierNoOnly plans of this tier: free | basic | pro | max (AI subscriptions and picture/video tools), basic | standard | premium (streaming, music, VPN, cloud). Compare plans only within one tier.
batchNoFlat form of usage.batch (true / false).
usageNoHow the buyer uses the service; omit for the plain price list.
localeNoBCP 47 locale for human-readable strings, e.g. "en", "cs", "sk". Defaults to the country's default locale.
purposeNoai-chat: what the buyer needs it for. coding = plans whose page states an agent or coding tool, images / voice / video = plans whose page states that feature, writing = every plan. A feature the page does not state is 'not stated', not 'no'.
categoryYesai-chat | ai-api | ai-creative | streaming | music | vpn | cloud | office | creative | passwords
currencyNoOverride the currency (e.g. EUR for a Czech buyer).
cache_shareNoFlat form of usage.cache_share.
input_tokensNoFlat form of usage.input_tokens.
output_tokensNoFlat form of usage.output_tokens.
images_per_monthNoFlat form of usage.images_per_month.
deliver_to_countryNoThe buyer's country; decides the currency and the local prices (CZ prices for CZ). Default: the first compared country.
messages_per_monthNoFlat form of usage.messages_per_month (REST query strings).
video_seconds_per_monthNoFlat form of usage.video_seconds_per_month.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it read-only, idempotent and non-destructive, yet the description still discloses real behavioral traits: null prices are never guessed, rows are ranked by price.monthly, VAT is added where the list excludes it, web-vs-app comparisons are sourced from store prices, and non-regular plans must not be presented as the generic cheapest. These are decision-relevant facts an agent could not infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, but the rest is a single massive run-on paragraph packed with nested parentheticals and long enumerations of vendors. Much of the content earns its place, yet the lack of sentence breaks or grouping makes it hard to parse and far from concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 14 parameters, a nested usage object and no output schema, the description does substantial work: it documents row fields (source_url, verified_on, fx_date, price.*, inAppPrices, data_location, promo, kind) and the usage-cost outputs. Coverage is close to complete; only the tier/purpose/locale parameters rely wholly on the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 meaningfully extends the usage parameter: messages_per_month with default input/output tokens, cache_share, batch, and the resulting usage_cost, usage_breakdown and break_even_messages outputs. With no output schema, explaining what usage produces is genuine added value; tier, purpose, locale and currency are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: prices of digital services for a buyer's country, cheapest first, with a detailed list of the ten supported categories. An agent can tell this is the digital-subscription comparison tool. It never names a sibling (e.g. digital_price_history or cheaper_abroad) to distinguish scope, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the category list and by lines like 'omit for the plain price list' and 'usage turns the list into a cost of that use', which tell you when to supply usage. But there is no explicit when-to-use/when-not guidance and no routing to related tools such as digital_price_history for past prices or cheaper_abroad for cross-country checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources