Skip to content

Commerce for Agents

by commerceforagents.com · remote · no sign-in to list tools · v0.2.3 · published by com.commerceforagents

Compare US mobile plans, VPNs, travel eSIMs, home internet by address, and German energy tariffs.

Deletes · 2Changes · 1

9 tools: 2 can delete or cancel things, 1 change things and 6 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http commerceforagents https://mcp.commerceforagents.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn1 info
  • The server marks "start-booking" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "start-booking" says "start": a word for a change.

    What this check looks for
  • The description is 2,848 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...a, IBAN and consent. `language` sets the language of the cards and their buttons."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

9 tools

Deletes or cancels 2Claude Code: deny
  • book-contractFiles a concierge switch request with the complete contract data in one call.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Files a concierge switch request with the complete contract data in one call. Intended for autonomous agents that already hold the user's full profile, IBAN and a standing authorization; in a conversation with a person, start-booking opens a form in which the user enters these data. Commerce for Agents stores the request encrypted and an operator submits the contract application to the provider; the user receives a confirmation email at once and the provider's contract documents later. There is no self-service checkout link. Input: the `ref` of the chosen offer plus the contract data. Postal code and city come from the comparison; previousProvider, previousCustomerNumber and meterNumber are printed on the last energy bill. `consent: true` attests that the user explicitly agreed to (1) Commerce for Agents submitting the contract on their behalf, (2) the SEPA direct-debit mandate for the given IBAN and (3) the privacy policy at commerceforagents.com/privacy, either by an explicit yes in the conversation or by a standing authorization given to the agent. The response contains nextSteps for the user.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • submit-switch-requestFiles a concierge switch request for an offer from a comparison: contract data, IBAN and the consents in one call.No findings

    Why it is in this group

    • The name "submit-switch-request" says "submit": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Files a concierge switch request for an offer from a comparison: contract data, IBAN and the consents in one call. The booking form opened by start-booking calls it; autonomous MCP clients that hold the user's complete data and authorization can call it directly. Stores the request encrypted, sends the confirmation emails and returns only masked data. An operator later submits the contract application to the provider.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Changes things 1Claude Code: ask
  • start-bookingOpens the booking form for one offer from a comparison, identified by its `ref`; the form renders below the message.1 finding

    Why it is in this group

    • The name "start-booking" says "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "start-booking" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "start-booking" says "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Opens the booking form for one offer from a comparison, identified by its `ref`; the form renders below the message. Read-only: the call submits, stores and sends nothing, and takes no personal data. In the form the user enters the contract details (page 1), then the IBAN and consent (page 2), and files the request there. Messages such as 'Bitte öffne das Buchungsformular', 'ich möchte diesen Tarif', 'den nehme ich', 'book #2' or 'switch me to this', usually sent by the card's 'Jetzt buchen' button, ask for this form. `language` sets the language of the form. There is no self-service checkout link. Keywords: Buchungsformular, Tarif buchen, wechseln, Wechsel beauftragen, Vertrag abschließen, open booking form, book, switch, sign up.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 6Claude Code: allow
  • compare-broadbandFor questions like “what internet providers are at my address?”, “is fiber available?”, “fast home internet near me?”, “Starlink vs cable?”, “cheapest internet at my address?”, “ho…No findings

    Why it is in this group

    • The name "compare-broadband" says "compare": a word for reading.
    Description, as the server wrote it
    For questions like “what internet providers are at my address?”, “is fiber available?”, “fast home internet near me?”, “Starlink vs cable?”, “cheapest internet at my address?”, “how much is internet here?”, or “moving to an address, what internet can I get?”, look up US fixed broadband provider availability and speed by address or coordinates. Returns FCC availability and maximum advertised speeds by census block (not building-level), ranked by low latency, then speed. Address is sent to the US Census Bureau Geocoder to identify the census block; starting prices ("from $X/mo", with conditions, source and check date) for major national and regional providers (e.g. AT&T, Verizon, T-Mobile, Spectrum, Xfinity, Optimum, Starlink). Filter by minimum download speed or technology.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • compare-esimsUse this when the user needs phone data abroad: a travel eSIM, an international data plan for a trip, avoiding roaming charges, "will my phone work in Japan", the cheapest data for…No findings

    Why it is in this group

    • The name "compare-esims" says "compare": a word for reading.
    Description, as the server wrote it
    Use this when the user needs phone data abroad: a travel eSIM, an international data plan for a trip, avoiding roaming charges, "will my phone work in Japan", the cheapest data for N days in a country, or unlimited travel data. Ranks a curated catalog of country eSIM packages (Airalo, Saily, Ubigi, Holafly, Nomad) by USD list price among packages valid for the whole trip with at least the data needed, listing each provider's cheapest package first and then the remaining packages by price, and shows price per GB and per day with a provider link. It does not check phone compatibility; the phone must be eSIM-capable and unlocked. Destinations: AU, BR, CA, CO, DE, ES, FR, GB, GR, IT, JP, KR, MX, NL, PT, TH, TR, US. Inputs: destination (country code), days, optional data_gb, unlimited and providers. No personal data is used. Keywords: travel eSIM, eSIM for Japan, cheapest eSIM, international data plan, roaming.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • compare-mobile-plansCompares and ranks US mobile phone plans, cheapest first, from a curated catalog of carrier and prepaid (MVNO) plans, each price checked on the provider's own page, by 12-month ave…No findings

    Why it is in this group

    • The name "compare-mobile-plans" says "compare": a word for reading.
    Description, as the server wrote it
    Compares and ranks US mobile phone plans, cheapest first, from a curated catalog of carrier and prepaid (MVNO) plans, each price checked on the provider's own page, by 12-month average cost per line, with any promo price shown alongside. The catalog is a selection, not the whole market; each result states how many plans and providers it covers and the oldest price-check date. Inputs: number of lines, and optionally data need, budget per line, prepaid or postpaid, must-have features and preferred network. No address or location is used, so network coverage is not checked; each result carries a coverage note. Keywords: cheapest phone plan, compare cell phone plans, cell phone plan, mobile plan comparison, switch carriers, unlimited data plan, family plan, prepaid vs postpaid.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • compare-tariffsCompares German electricity and gas tariffs with live market data for a postal code and an annual consumption, and returns one page of the ranked market: prices with and without bo…1 finding

    Why it is in this group

    • The name "compare-tariffs" says "compare": a word for reading.

    Findings

    • Info

      The description is 2,848 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...a, IBAN and consent. `language` sets the language of the cards and their buttons."

      What this check looks for
    Description, as the server wrote it
    Compares German electricity and gas tariffs with live market data for a postal code and an annual consumption, and returns one page of the ranked market: prices with and without bonus, monthly average, savings against the local default supplier (Grundversorgung) or the user's current contract, contract terms, price guarantee, eco status and customer ratings. Covers tariff comparison only, not general energy questions. Prices come live from the market data and can change at any time. Keywords: Stromvergleich, Gasvergleich, Stromtarif, Gastarif, Stromanbieter wechseln, Gasanbieter wechseln, Ökostrom, Strompreise, Energiekosten senken, electricity tariff, gas tariff, switch energy provider, Germany. Inputs: postalCode (5 digits) and annualConsumptionKwh. Both come from the user: the ranking is only valid for the household's actual consumption, which is printed on the last bill, and the tool has no default for it. The typical values by household size in the parameter description help a user who does not know the figure; a comparison run on a household size alone is approximate. energyType selects gas; electricity is the default. Without filters the result covers the whole market. An energy bill contains every input: postal code, annual consumption, and the reference for the savings comparison, which is the future monthly payment (Abschlag) if the bill states one, otherwise the Arbeitspreis and Grundpreis lines (see the current* parameters). The bill total belongs to the past period and may include a one-time bonus, so it is not a reference. The bill's provider, customer number and meter number are the fields the booking form asks for later. Each offer carries its complete data (prices, bonuses, contract terms, flags such as dynamic or eco, ratings, remarks); tariff-details adds the cost breakdown, energy mix and provider details. Only offers with an `eco` object are eco tariffs. Their `eco.statement` and `eco.proof` are legally required wording (EU EmpCo, Directive 2024/825): quote both verbatim when describing a green tariff. Offers without `eco` are not green, eco, renewable or climate-neutral. The ranking method, bonus handling, price guarantees and eco labels are explained at https://commerceforagents.com/comparison-basis. The response states totalResults and how to reach the rest of the ranking (page, providers, filters). Dynamic (spot-price) tariffs are included only with includeDynamicTariffs. The result renders as tariff cards with filters (eco, contract length, price guarantee, bonus handling, providers) below the message, so the list does not need repeating in text. Each offer has a `ref`: tariff-details shows its full conditions, and start-booking opens the booking form in which the user enters the contract data, IBAN and consent. `language` sets the language of the cards and their buttons.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • compare-vpnUse this when the user asks which VPN to buy, wants the cheapest VPN, a VPN for streaming, torrenting or travel, a VPN for public Wi-Fi safety, an audited no-logs VPN, or wants to …No findings

    Why it is in this group

    • The name "compare-vpn" says "compare": a word for reading.
    Description, as the server wrote it
    Use this when the user asks which VPN to buy, wants the cheapest VPN, a VPN for streaming, torrenting or travel, a VPN for public Wi-Fi safety, an audited no-logs VPN, or wants to avoid renewal price traps. Ranks a curated catalog of US-priced (USD) VPN plans (NordVPN, Surfshark, ExpressVPN, Proton VPN, Private Internet Access, CyberGhost), cheapest first, by effective monthly cost over the preferred term including renewals, and shows the upfront price, renewal price, devices, money-back days, audited no-logs (with auditor), jurisdiction and RAM-only servers; privacy facts not confirmed on the provider's own pages are marked unconfirmed. The catalog is a selection, not the whole market; each result states the oldest price-check date. Prices are US/USD; local checkout prices may differ. Inputs, all optional: term_months (1, 12, 24 or 36), min_devices, needs (streaming, p2p; plans where the feature is unconfirmed are excluded), country (only adds a note when not US) and checkout (default false: pricing-page links; true: plan-preselected checkout links). No personal data is used. Keywords: best VPN, cheapest VPN, VPN comparison, VPN deals, no-logs VPN, VPN renewal price.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • tariff-detailsReturns the full conditions of one tariff from a compare-tariffs result, identified by its `ref`: price composition, scope of the price guarantee, contract duration, renewal and ca…No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns the full conditions of one tariff from a compare-tariffs result, identified by its `ref`: price composition, scope of the price guarantee, contract duration, renewal and cancellation terms, deposit, energy-source mix, customer ratings, and for eco tariffs the required eco statement and proof. Texts come in the requested `language`. Keywords: Tarifdetails, Vertragsbedingungen, Preisgarantie, Kündigungsfrist, Vertragslaufzeit, AGB, tariff conditions, contract details.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.2.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http commerceforagents https://mcp.commerceforagents.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__commerceforagents__compare-tariffs",
      "mcp__commerceforagents__tariff-details",
      "mcp__commerceforagents__compare-mobile-plans",
      "mcp__commerceforagents__compare-vpn",
      "mcp__commerceforagents__compare-esims",
      "mcp__commerceforagents__compare-broadband"
    ],
    "ask": [
      "mcp__commerceforagents__start-booking"
    ],
    "deny": [
      "mcp__commerceforagents__book-contract",
      "mcp__commerceforagents__submit-switch-request"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as commerceforagents. Review it before you use it.