Skip to main content
Glama

Server Details

Tourist and hotel taxes from official sources, worked out night by night for your dates and guests.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
jimiwalters-cmyk/stay-cost-brain-mcp
GitHub Stars
0
Server Listing
Stay Cost Brain MCP server

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation4/5

Each tool maps to a distinct function: capability discovery, place listing, rule lookup, per-stay tax computation, and a live-price booking link. The only borderline pair is place_rules vs tourist_tax, which both touch tax data for a place, but descriptions clearly separate 'all rules for a place' from 'computed tax for one stay'.

Naming Consistency3/5

All names are snake_case and readable, but the convention is mixed: get_capabilities and list_places use verb_noun while hotels_link, place_rules, and tourist_tax are bare noun phrases. Predictable enough to navigate, but an agent can't infer verb style uniformly.

Tool Count4/5

Five tools is a tight, well-scoped set for a narrow domain (tourist-tax research plus a booking handoff), with no obviously redundant entries. It sits at the low end, but each tool has a clear role.

Completeness4/5

The surface covers the full path: discover coverage, list places, fetch detailed rules, compute a stay's tax, and hand off to live pricing. Gaps are minor and largely declared out of scope (no room prices/booking), though there is no bulk or multi-place comparison operation.

Available Tools

5 tools
get_capabilitiesGet capabilitiesA
Read-onlyIdempotent
Inspect

What Stay Cost Brain covers: the researched places, how the tax figures are sourced and dated, what it does not do (no room prices, no booking), and the sister services.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteNo
errorNo
methodNo
placesNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds real value beyond that by disclosing the domain boundaries ('no room prices, no booking') and that tax figures are sourced and dated. It stops short of saying what form the response takes, but an output schema exists to cover that.

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

Conciseness5/5

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

A single sentence, front-loaded with the coverage statement and then the itemized contents. No filler, no repetition of the title.

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?

With no parameters, rich annotations, and an output schema handling return values, the description only needs to convey scope — which it does, including negative scope. It could be slightly stronger by stating when an agent should reach for it versus the sibling tools.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly does not waste words on parameter detail.

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?

The description enumerates exactly what the tool returns: researched places, tax figure sourcing/dating, explicit non-goals (no room prices, no booking), and sister services. That is specific enough to distinguish it from tourist_tax or list_places, though it never says plainly that it returns documentation/about-text rather than data records.

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 only implied — an agent can infer this is an orientation/scope call, but there is no explicit 'call this first' or 'use X instead when you need Y'. The four sibling services are mentioned collectively as 'sister services' without routing guidance to any of them.

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

list_placesList placesA
Read-onlyIdempotent
Inspect

Every place with a researched tourist-tax table: name, country, today's headline rate, the date it was checked, the next re-check date, the towns that set their own tax, and the page with every rate and source.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteNo
errorNo
placesNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description contributes freshness context (today's headline rate, date checked, next re-check date) but says nothing about result volume, ordering, or pagination for a catalog-style list.

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

Conciseness4/5

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

A single sentence that front-loads the scope ('every place with a researched tourist-tax table') before the field inventory. It is dense but every clause carries information; only the field enumeration is slightly padded given an output schema exists.

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?

With no parameters, an output schema, and annotations covering safety, the definition is nearly complete for a read-only catalog call. The remaining gap is behavioral scale: an agent gets no sense of how large the list is or how to handle a very long result.

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?

The tool takes zero parameters, so parameter semantics fall to the schema and the baseline of 4 applies; there is nothing for the description to clarify beyond the absence of filters, which is consistent with 'every place'.

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 ('list') and a precisely scoped resource ('every place with a researched tourist-tax table'), then enumerates the fields returned. This distinguishes it from point-query siblings like tourist_tax, though the description never names that sibling explicitly.

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 only implied: 'every place' signals a catalog/discovery call that naturally precedes a per-place rate lookup, but the description never says when to use this versus tourist_tax, place_rules, or get_capabilities, and states no exclusions or prerequisites.

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

place_rulesPlace rulesA
Read-onlyIdempotent
Inspect

Every tourist-tax rule for one researched place: each tax with its authority, legal basis, rates by type of stay, season and area, night caps, exemptions, how it is paid, valid dates and status (verified, inferred, announced), with source links and dates.

NameRequiredDescriptionDefault
placeYesA researched place ('Lisbon', 'Algarve', 'Paris') or any town ('Quarteira', 'Funchal', 'Kyoto')

Output Schema

NameRequiredDescription
noteNo
errorNo
placeNo
taxesNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-open-world, non-destructive behavior, so the description's job is extra context — and it delivers the important part: results are tagged verified/inferred/announced, meaning some rates are unconfirmed, and each carries source links and dates. That provenance and confidence signal is genuinely decision-relevant and appears nowhere in the structured fields.

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

Conciseness4/5

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

One front-loaded sentence that opens with the resource and then spends its length on a dense, useful enumeration of what comes back. Slightly list-heavy and lacking a stated verb, but every clause carries information and there is no filler.

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?

An output schema exists, so return shape need not be spelled out; the description instead conveys the semantic dimensions of the payload (jurisdiction, legal basis, validity, confidence). Combined with a fully specified single parameter and clear safety annotations, an agent has what it needs — the missing piece is only the routing rule against tourist_tax.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'place' parameter is fully documented with concrete examples, so the baseline is 3. The description adds only the 'researched place' framing, no additional syntax, normalization, or fallback behavior for unknown places, so it neither compensates nor detracts.

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?

Names a precise resource — every tourist-tax rule for one place — and enumerates the fields bundled into it (rates by stay type, season, area, caps, exemptions, payment, validity, status). That is far more specific than the sibling names tourist_tax or list_places imply, but it never states the verb of retrieval or explicitly contrasts itself with tourist_tax, so the boundary with that sibling stays blurry.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no alternative named. The phrase 'one researched place' and the schema hint ('or any town') imply coverage scope but not routing; an agent cannot tell from this text why it should pick place_rules over tourist_tax or list_places.

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

tourist_taxTourist taxA
Read-onlyIdempotent
Inspect

The tourist tax for one stay, worked out night by night: each tax that applies (regional and city parts separately), the amount or the range when the star rating or type of stay is not given, how many nights are charged, how it is paid, announced changes in force on those nights, and the official source and date for each. Accepts a researched place or any town; towns outside the researched places return researched=false. Percentage taxes need room_price_total. Residents', medical and other special exemptions are listed in rules, not applied.

NameRequiredDescriptionDefault
areaNoArea/zone code where a place has zones (e.g. Venice)
townNoTown or municipality inside a region (e.g. 'Albufeira' in the Algarve)
placeYesA researched place ('Lisbon', 'Algarve', 'Paris') or any town ('Quarteira', 'Funchal', 'Kyoto')
roomsNoDefault 1 (for per-room taxes)
adultsNoDefault 2
nightsYesNumber of nights from check_in (1-60)
check_inYesYYYY-MM-DD
child_agesNoAge of each child on check-in, one entry per child (many taxes exempt under-12s, -16s or -18s); omit for none
type_of_stayNoHotel stars, apartment, holiday rental, etc.
adults_70_plusNoHow many of the adults are 70 or over
local_categoryNoThe authority's own category label, as returned in options
room_price_totalNoRoom price for the whole stay, for percentage taxes

Output Schema

NameRequiredDescription
noteNo
pageNo
errorNo
taxesNo
totalNo
researchedNo

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly/idempotent/openWorld=false) by disclosing fallback behavior: a range is returned when star rating or type of stay is not supplied, and out-of-scope towns return researched=false instead of failing. It also flags a parameter dependency (percentage taxes require room_price_total) and a scope limit (exemptions listed, not applied) — exactly the kind of behavior an agent would otherwise have to discover by trial.

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

Conciseness4/5

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

The purpose is front-loaded in the first clause and the remainder is a dense enumeration where each item corresponds to a real output dimension. The long comma-separated list is information-dense rather than padded, though it reads as one sprawling sentence and could be split for scanability.

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?

With 12 parameters, 100% schema coverage, full annotations and an output schema, the description covers the remaining gaps: parameter interdependency, fallback outputs, and out-of-scope handling. It is essentially complete for invocation; the enumeration of return fields slightly duplicates the output schema, which is harmless but not additive.

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 baseline is 3; the description earns above that by explaining the semantic role of two parameters — room_price_total is required for percentage-based taxes, and type_of_stay/star rating determines whether a single amount or a range comes back. The place/town distinction and the researched=false outcome add meaning beyond the schema's own strings.

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

Purpose5/5

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

States a specific computation ('the tourist tax for one stay, worked out night by night') and enumerates the exact outputs: regional and city parts separately, amount or range, nights charged, payment, announced changes, source and date. This clearly separates it from list_places (lookup) and place_rules (exemptions), which is confirmed by the description pointing exemptions to `rules`.

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

Usage Guidelines4/5

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

Gives real context for when it is applicable: accepts a researched place or any town, and towns outside the researched set return researched=false. It also states the precondition 'Percentage taxes need room_price_total' and routes exemptions to `rules` rather than applying them. It stops short of an explicit 'use place_rules instead if...' routing statement, so it is a 4 rather than a 5.

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.

  1. 5 tool updates
    • First observedget_capabilities
    • First observedhotels_link
    • First observedlist_places
    • First observedplace_rules
    • First observedtourist_tax

Publisher details

Operator
Stay Cost Brain, run by Jimi Walters · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
None. Free, no sign-up, no API key, no OAuth; read-only. Hotel links go to Stay22, where the person books.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables verified, bookable hotel price checking with tax-inclusive totals, OTA tax status flags, and durable Booking.com fallback links for budget travel planning.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Vacation rental software. A signed stay offer on the host’s own domain. Use this when a vacation rental host wants booking software on the host’s own domain, or when a stay offer must be verified against that domain. Returns an Ed25519-signed offer (VRP) and the host’s direct booking URL. The guest books and pays the host. Do not use to compare hosts or prices.
    6
    999 npm
    4
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Travel compliance and trip planning for digital nomads — visa requirements, tax residency analysis, Schengen 90/180-day tracking, and curated accommodation, transport, and experience search across 189 European destinations.
    7
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.