Skip to main content
Glama

Server Details

Search remote-work accommodations worldwide; Trusted Stay Partners can manage their own listings.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
nomadstays/nomadstays-mcp-server
GitHub Stars
0
Server Listing
Nomad Stays

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 76 of 76 tools scored. Lowest: 3.7/5.

Server CoherenceC
Disambiguation4/5

Most tools have clearly distinct purposes, with detailed descriptions differentiating the many getStaysBy* search variants and the four availability tools. However, the overlap between checkStayAvailability, getRoomAvailability, findNearestAvailability, and getAvailabilityByMonth could still cause confusion for an agent, though the descriptions largely mitigate this.

Naming Consistency3/5

The tools mostly follow a verb-noun pattern with get*, update*, create*, and delete* dominating, but the mix of additional verbs (check, find, list, search, signup, book, quote, purchase, submit, save, reorder, upload) and inconsistent noun forms (Stay vs. Stays, MyStay vs. Stay) prevents a fully predictable naming scheme. CamelCase is consistent, but the verb variety is high.

Tool Count1/5

With 76 tools, this server far exceeds the well-scoped range and even the 50+ threshold for extreme mismatch. While the platform covers multiple domains, this many tools is overwhelming for an agent and would likely be better split into focused sub-servers.

Completeness3/5

The tool surface is broad, covering search, stay management, applications, bookings, products, and help center. However, there are notable lifecycle gaps: no cancel booking, no delete stay, no delete application, and no way to update or delete a booking. These missing operations create potential dead ends for common workflows.

Available Tools

76 tools
bookStayAInspect

Create a real booking from a quoteId returned by quoteStayBooking, and return a hosted checkoutUrl. The quote's price/availability is re-validated server-side one more time before the booking is created — a stale or expired quote will be rejected with a message to call quoteStayBooking again. You MUST send the checkoutUrl to the member and tell them to open it in their own browser to pay — you cannot complete this payment on their behalf, and no card details ever pass through you. Requires NOMADSTAYS_MCP_AGENT_TOKEN with the 'bookings' scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesThe quoteId returned by quoteStayBooking
contactNameNoGuest's full name for the booking. Defaults to the member's account name if omitted.
contactEmailNoContact email for the booking. Defaults to the member's account email if omitted.
contactPhoneNoContact phone number for the booking.
specialRequestNoAny special request to pass along to the Stay.
Behavior5/5

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

Discloses server-side re-validation of price/availability, rejection of stale/expired quotes, the requirement to send the checkoutUrl to the member (and that the agent cannot pay on their behalf), and the token/scope requirement. These go well beyond the annotations (which only hint at non-readonly behavior). No contradiction with annotations.

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?

Four sentences, each earning its place: purpose/output, re-validation behavior, agent action requirement, and auth requirement. No filler, front-loaded with the main purpose.

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

Completeness5/5

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

Even without an output schema, the description explains the return value (checkoutUrl), the workflow from quote, error handling for stale quotes, and the agent's role in payment. This is complete for a complex booking-creation tool.

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?

The schema already covers all 5 parameters with 100% description coverage, including the origin of quoteId and defaults for contactName/contactEmail. The description adds no additional parameter-level semantics beyond the schema, so a baseline score of 3 is appropriate.

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?

The description states 'Create a real booking from a quoteId returned by quoteStayBooking, and return a hosted checkoutUrl' — a specific verb, resource, and input. It clearly distinguishes bookStay from quoteStayBooking (quote vs booking) and from other booking-related tools like getBookingStatus and listMyBookings.

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?

The description places the tool in the workflow after quoteStayBooking, states that a stale quote will be rejected and to call quoteStayBooking again, and instructs the agent to send the checkoutUrl to the member. It does not explicitly name alternative tools, but the context and workflow are clear enough for an agent to choose it appropriately.

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

checkStayAvailabilityA
Read-only
Inspect

Check if a specific stay is available for given check-in and check-out dates. Returns availability status and room details.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe unique identifier of the stay
checkInYesCheck-in date in ISO format (YYYY-MM-DD)
checkOutYesCheck-out date in ISO format (YYYY-MM-DD)
roomTypeNoOptional specific room type to check availability for
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it 'returns availability status and room details', which provides useful behavioral context beyond the annotations without contradicting them.

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?

The description is two concise sentences, front-loaded with the core purpose and followed by the return type. No redundant information or fluff.

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?

For a simple read-only tool with no output schema, the description covers the purpose, scope, and return type sufficiently. It does not mention edge cases (e.g., invalid stay ID), but given the annotations and schema richness, this is not a significant gap.

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 description coverage is 100%, so every parameter (stayId, checkIn, checkOut, roomType) is already documented. The description does not add extra meaning to the parameters beyond what the schema provides, so the baseline score of 3 is appropriate.

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?

The description clearly states a specific verb ('check'), a resource ('a specific stay'), and the scope ('for given check-in and check-out dates'). It distinguishes itself from siblings like getRoomAvailability or findNearestAvailability by focusing on a single stay's availability.

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?

It gives clear context: use when you have a specific stay ID and date range. It does not explicitly mention alternatives or when not to use this tool, but the purpose is self-evident enough that a user can select it appropriately without confusion.

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

createCoworkingApplicationAInspect

Start a new Coworking Application for the caller. Much simpler than the Stay/Experience applications: no VAT/tourism-number/business-model rules, no Application Fee, and no billing step at all — once coworkingName, applicantName, applicantEmail, city and country are present, nextAction goes straight to 'submit'. Call getCountries first to find a valid country name (must be the exact tbCountry.CountryName, not an ID). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
addressNo
countryNoExact tbCountry.CountryName (not a country ID) — use getCountries and take the countryName field. Must not be a sanctioned country.
websiteNo
telephoneNo
applicantNameNo
coworkingNameNo
applicantEmailNo
Behavior4/5

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

Annotations already indicate a write operation (readOnlyHint false) but the description adds valuable context: no billing step, nextAction proceeds to 'submit', country must be exact and not sanctioned, and an auth token is required. No contradiction with annotations.

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?

The description is concise, front-loaded with the main purpose, and each sentence adds meaningful information (workflow contrast, prerequisite, auth requirement). 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?

For an 8-parameter creation tool with no output schema and sparse annotations, the description covers the essential workflow, prerequisites, and auth. It doesn't mention return values or idempotency, but the main behavioral context is well covered.

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?

With only 13% schema coverage, the description compensates partly by naming the fields required for the 'submit' path (coworkingName, applicantName, applicantEmail, city, country) and clarifying country semantics. However, address, website, and telephone remain unspecified, leaving gaps.

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?

The description clearly states the action ('Start a new Coworking Application') and the resource, and it distinguishes this tool from related applications by contrasting it with Stay/Experience apps and by specifying the 'create' vs. 'save'/'submit' workflow.

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

Usage Guidelines5/5

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

It explicitly explains when to use this tool (simple, no billing, no VAT) versus alternatives, and provides a direct prerequisite: 'Call getCountries first'. It also notes the required auth token, making usage guidance strong.

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

createExperienceApplicationAInspect

Start a new Experience Application for the caller. Any fields can be supplied now or filled in later via saveExperienceApplication — the applicant's name defaults from their Nomad Stays profile if not supplied. Call getCountries and getBusinessModels first to resolve experienceCountryId/postalCountryId/businessModelId, since country-specific rules (VAT number, tourism number, permitted business models) are enforced server-side and rejections name the specific field/reason. Experiences must run a minimum of 4 days. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo
cityNo
stateNo
maxPaxNoMaximum participants
mobileNo
streetNo
daysQtyNoMinimum 4 days, enforced server-side
websiteNo
commentsNo
vatNumberNoRequired if the postal country's vatNumberRequired flag is true (see getCountries)
hasKitchenNo
descriptionNo
businessNameNo
hasInsuranceNo
monthlyPriceNoPrice per person (USD)
downloadSpeedNo
tourismNumberNoRequired if the experience country's tourismNumberRequired flag is true (see getCountries)
applicantEmailNo
experienceNameNo
workFacilitiesNo
businessModelIdNotbBusinessModel.EntryID — use getBusinessModels. If the experience country's bookingModelsRestricted flag is true, only a 'StayDirect'-prefixed model is accepted.
postalCountryIdNotbCountry.CountryId for the applicant's billing/postal address — used only to check whether a VAT number is required, and stored on the member's business profile (not on the application itself). Use getCountries to find a value.
applicantLastNameNoOverrides the profile default for this application only — does not change the member's profile
laundryFacilitiesNo
applicantFirstNameNoOverrides the profile default for this application only — does not change the member's profile
experienceCountryIdNotbCountry.CountryId for where the experience actually takes place — this is the country the application itself is filed under. Use getCountries to find a value.
availabilitySupplierNo
overnightLocationsQtyNo
Behavior4/5

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

It discloses several non-obvious behaviors: the applicant name defaults from the Nomad Stays profile, country-specific rules are validated server-side with field-specific rejections, experiences must run at least 4 days, and a token is required. It does not explicitly state the application's draft lifecycle or return value, but the mention of filling in later via saveExperienceApplication implies a draft workflow; overall this adds substantial context beyond the annotations.

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?

Four front-loaded sentences cover purpose, alternatives, prerequisites, validation rules, and auth with no filler. Each sentence earns its place, and the structure flows naturally from what the tool does to how to use it correctly.

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?

For a 28-optional-parameter create tool with no output schema, the description covers the essential context: why to call helper tools, what server-side rules apply, how to update later, and authorization. It could further clarify the post-creation state or return shape, but the provided context is sufficient for a reasonably safe first invocation.

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?

With only 36% schema description coverage, the description compensates by explaining the key relationships for experienceCountryId, postalCountryId, and businessModelId, including VAT/tourism number requirements. Many of the remaining 28 parameters are optional and deferred, and the description says any fields can be supplied later, reducing the risk of incorrect invocation despite incomplete per-parameter detail.

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?

The description opens with 'Start a new Experience Application', a specific verb and resource, and immediately distinguishes this creation action from saveExperienceApplication and submitExperienceApplication. It clearly frames the tool as initiating a draft that can be completed later.

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

Usage Guidelines5/5

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

The description explicitly instructs the caller to call getCountries and getBusinessModels first to resolve experienceCountryId/postalCountryId/businessModelId, and points to saveExperienceApplication for filling in fields later. It also notes server-side enforcement and the 4-day minimum, giving clear when-to-use and when-to-defer context.

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

createStayApplicationAInspect

Start a new Stay Application for the caller. Any fields can be supplied now or filled in later via saveStayApplication — the applicant's name defaults from their Nomad Stays profile if not supplied. Call getCountries and getBusinessModels first to resolve stayCountryId/postalCountryId/businessModelId, since country-specific rules (VAT number, tourism number, permitted business models) are enforced server-side and rejections name the specific field/reason. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo
cityNo
stateNo
mobileNo
streetNo
websiteNo
commentsNo
stayNameNo
vatNumberNoRequired if the postal country's vatNumberRequired flag is true (see getCountries)
hasKitchenNo
businessNameNo
monthlyPriceNo
downloadSpeedNo
numberOfRoomsNo
stayCountryIdNotbCountry.CountryId for where the Stay is actually located — this is the country the application itself is filed under. Use getCountries to find a value.
tourismNumberNoRequired if the stay country's tourismNumberRequired flag is true (see getCountries)
applicantEmailNo
workFacilitiesNo
businessModelIdNotbBusinessModel.EntryID — use getBusinessModels. If the stay country's bookingModelsRestricted flag is true, only a 'StayDirect'-prefixed model is accepted.
postalCountryIdNotbCountry.CountryId for the applicant's billing/postal address — used only to check whether a VAT number is required, and stored on the member's business profile (not on the application itself). Use getCountries to find a value.
applicantLastNameNoOverrides the profile default for this application only — does not change the member's profile
laundryFacilitiesNo
applicantFirstNameNoOverrides the profile default for this application only — does not change the member's profile
availabilitySupplierNo
Behavior5/5

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

The description adds behavior beyond the annotations: the applicant's name defaults from the profile, country-specific validation is enforced server-side, and rejections name the specific field/reason. It also discloses the token requirement. None of this contradicts the annotations, and it materially improves the agent's understanding of what happens when this tool is invoked.

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?

Three sentences, front-loaded with the primary action, followed by incremental detail and a required-token note. Each sentence earns its place: purpose, deferral to saveStayApplication, prerequisite calls and validation behavior, and authentication.

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 24 optional parameters and no output schema, this is a well-rounded description covering purpose, fill-in-later flow, ID resolution, and server-side validation. It would be slightly stronger if it explicitly stated what the tool returns (e.g., application ID) and whether the new application is a draft, but the overall context is sufficient for the agent to proceed.

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?

With only 29% schema coverage, the description compensates for the most ambiguous parameters by explaining that stayCountryId/postalCountryId/businessModelId come from getCountries/getBusinessModels, and how VAT/tourism number requirements are tied to country flags. It also clarifies that applicant name overrides are profile-only. It does not explain every one of the 24 parameters, but the key complex ones are addressed.

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?

The description opens with 'Start a new Stay Application for the caller,' which names a specific verb and resource. It also distinguishes itself from the sibling tools saveStayApplication and submitStayApplication by framing creation as a separate first step and referencing saveStayApplication for later edits.

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

Usage Guidelines5/5

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

Explicitly tells the agent to call getCountries and getBusinessModels first to resolve the required ID fields, and notes that fields can be filled later via saveStayApplication. It also warns about country-specific server-side rules, giving clear before-versus-after guidance. The required token adds an auth-related usage condition.

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

createStayPackageAInspect

Create a new pricing package on a Stay, optionally with initial price tiers. Requires an MCP agent token scoped to the owning account.

ParametersJSON Schema
NameRequiredDescriptionDefault
listedNoOPTIONAL: whether the package is publicly listed
maxPaxNoOPTIONAL: max occupancy for this package
pricesNoOPTIONAL: initial price tiers. If supplied, replaces all price rows for the package. Exactly one entry per 7/14/21/30-night tier used.
stayIdYesThe Stay's EntryID
endDateNoOPTIONAL: last check-in date this package is available for
startDateNoOPTIONAL: first check-in date this package is available for
currencyFKNoOPTIONAL: currency id. Call getCurrencyOptions for valid values.
roomTypeFKNoOPTIONAL: room type id this package covers. Call getRoomTypeOptions for valid values.
stayRoomFKNoSTRONGLY RECOMMENDED: the specific room this package covers (tbStaysRoom.EntryID). Call getMyStayRooms to find the right room id first. If omitted, the server guesses a room matching roomTypeFK, which may pick the wrong one when a Stay has multiple rooms of the same type.
descriptionNoOPTIONAL: package description
packageNameYesPackage name
advertisingEndpointNoOPTIONAL: only usable on Advertising-business-model Stays — ignored otherwise, matching the host UI which hides this field for all other business models. Check getBusinessModelOptions / the Stay's businessModelFK before setting.
Behavior3/5

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

The description adds the auth requirement, which is not in the annotations. It also states creating a new package, consistent with readOnlyHint=false. But it doesn't disclose side effects like price row replacement or server-computed sellPrice, though those are covered in the schema. Given the annotations already handle safety, this is moderate value.

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 that front-loads the verb and resource, then adds the auth note. No fluff or redundant details.

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?

The description provides the essential purpose and prerequisite. The input schema is exceptionally detailed, covering constraints like tier enums and sellPrice computation, so the description doesn't need to repeat them. It doesn't mention the return value or response format, but without an output schema this may be acceptable. Given the complexity is high but schema richness compensates, a 4 is appropriate.

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?

The schema provides 100% coverage for all 12 parameters with detailed descriptions. The tool description only mentions 'optionally with initial price tiers', which repeats schema information. No additional parameter semantics are provided, so baseline 3 is appropriate.

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?

The description uses the specific verb 'Create' and identifies the resource as 'a new pricing package on a Stay', clearly distinguishing from sibling update/delete tools. It also mentions the optional initial price tiers, adding scope.

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?

The description implies usage for creating a new package, and the 'Requires an MCP agent token scoped to the owning account' note gives a prerequisite. However, it doesn't explicitly name alternatives like updateStayPackage or state when not to use it, so it falls 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.

createStayRoomAInspect

Create a new room on a Stay. Call getRoomTypeOptions(stayId) and getRoomFacilityOptions() first to find valid roomTypeFK/roomFacilityFk values. Boutique Stays are capped at 6 rooms total (one per Boutique1-6 slot) — creation is rejected once all 6 exist. Requires an MCP agent token scoped to the owning account.

ParametersJSON Schema
NameRequiredDescriptionDefault
bedsNoOPTIONAL: number of beds
stayIdYesThe Stay's EntryID
maxPersonNoOPTIONAL: max occupancy
mcpRoomIdNoOPTIONAL: external MCP room identifier to bind. NOT AVAILABLE for boutique Stays — the host UI has no field for this there, and the API will reject it.
roomTitleYesRoom name/title
roomTypeFKNoREQUIRED for non-boutique Stays — a roomTypeId from getRoomTypeOptions(stayId). IGNORED for boutique Stays — the next available Boutique1-6 slot is auto-assigned server-side, matching the host UI (which has no room-type picker for boutique room creation).
mainBedSizeNoOPTIONAL: main bed size
otherBedSizeNoOPTIONAL: other bed size, or empty for none
roomFacilityFkNoOPTIONAL: facilityDetailId values from getRoomFacilityOptions() — the full set of amenities this room has. Wi-Fi is added automatically even if omitted.
roomDescriptionNoOPTIONAL: room description
Behavior4/5

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

The description discloses important behavioral details beyond the annotations: the need for an MCP agent token scoped to the owning account, the boutique cap that causes rejection after 6 rooms, and the auto-assignment of Boutique1-6 slots for boutique stays. These complement the annotations, which only show readOnlyHint=false and destructiveHint=false, and there is no contradiction.

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?

The description is four sentences with the primary purpose front-loaded, followed by prerequisites, constraints, and auth requirements. Every sentence contributes meaningful information without redundancy or 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?

The description provides prerequisite calls, auth requirements, a hard cap, and special boutique behavior, which is thorough for a mutation tool with no output schema. It doesn't state the return value or success indicator, but that is not strictly necessary given the absence of an output schema.

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?

The input schema already covers 100% of parameters with rich descriptions, including the boutique-specific behavior of roomTypeFK and mcpRoomId. The description adds caller guidance (e.g., 'find valid roomTypeFK/roomFacilityFk values') but does not introduce new per-field semantics beyond what the schema already provides, so a baseline of 3 is appropriate.

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?

The description opens with 'Create a new room on a Stay', which is a specific verb and resource, and it clearly distinguishes this from sibling tools like updateStayRoom and deleteStayRoom. The rest of the description reinforces the creation purpose by mentioning prerequisites and constraints.

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?

The description explicitly instructs to call getRoomTypeOptions(stayId) and getRoomFacilityOptions() first, and warns about the boutique 6-room cap. It doesn't explicitly discuss when not to use it versus alternatives like updateStayRoom, but the creation context is clear and the guidance is actionable.

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

deleteRoomPhotoA
Destructive
Inspect

Delete one photo from a room's gallery. Call getMyStayRooms first to find the exact fileName. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomIdYesThe room's EntryID
stayIdYesThe Stay's EntryID
fileNameYesThe exact file name from getMyStayRooms
roomAreaYes'photos' for the regular room gallery, 'workspace' for the room's coworking gallery
Behavior4/5

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

Beyond the destructiveHint annotation, the description adds the authentication requirement ('Requires NOMADSTAYS_MCP_AGENT_TOKEN') and the need for an exact fileName from getMyStayRooms. It does not describe side effects like irreversibility, but the annotation already signals destructiveness.

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?

The description is concise, with three short sentences. It front-loads the action, then provides the prerequisite and auth requirement. Every sentence adds necessary information without redundancy.

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?

The description covers purpose, prerequisite, and auth. Given the tool has no output schema, it doesn't explain return values, but for a delete operation this is often implicit. The roomArea enum is not explained in the description, but the schema covers it. Overall, the description is sufficiently complete for the tool's complexity.

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?

With 100% schema description coverage, the schema already documents all four parameters. The description adds context by instructing to call getMyStayRooms first to obtain the exact fileName, which clarifies the source of that parameter. It doesn't add much for roomArea or stayId/roomId but the prerequisite is valuable.

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?

The description clearly states the tool's action: 'Delete one photo from a room's gallery.' It distinguishes from sibling tools like deleteStayPhoto (which deletes stay photos) by specifying 'room's gallery.' The mention of 'roomArea' further clarifies it handles both regular and coworking galleries.

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?

The description provides a clear prerequisite: 'Call getMyStayRooms first to find the exact fileName.' This guides the agent on the required preceding step. It also notes the auth requirement. However, it does not explicitly mention when not to use it or name alternatives, though the distinction from deleteStayPhoto is implied by the resource.

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

deleteStayPackageA
Destructive
Inspect

Permanently delete a pricing package and all its price tiers from a Stay. This is a hard delete (unlike room deletion, which is soft). Requires an MCP agent token scoped to the owning account.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID
packageIdYesThe package's EntryID (tbStayPackages) to delete
Behavior5/5

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

Discloses that this is a hard, permanent delete and that all price tiers are removed. The auth scope requirement adds useful context beyond the destructiveHint annotation. No contradiction with annotations.

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?

Two short sentences that front-load the action and scope, then add the important contrast and auth requirement. No filler or redundancy.

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?

For a simple 2-param delete with annotations marking it destructive, the description covers the core behavior, permanence, and auth. Could optionally mention the return format or constraints (e.g., whether bookings block deletion), but these are not critical for this tool.

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?

The input schema already provides 100% coverage with descriptions for both parameters (stayId and packageId). The description adds no additional parameter-level meaning, so the baseline of 3 applies.

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?

Clearly states 'Permanently delete a pricing package and all its price tiers from a Stay' with a specific verb and resource. The explicit contrast with room deletion ('unlike room deletion, which is soft') distinguishes it from the sibling tool deleteStayRoom.

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?

The description gives context by contrasting with soft room deletion and states the authorization requirement ('MCP agent token scoped to the owning account'). However, it does not explicitly mention when to prefer updating over deleting, such as using updateStayPackage.

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

deleteStayPhotoA
Destructive
Inspect

Delete one photo from a Stay. Call getMyStayPhotos first to find the exact fileName. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaYesWhich photo area the file belongs to (room photos aren't supported by this tool — manage those via updateStayRoom)
stayIdYesThe Stay's EntryID
fileNameYesThe exact file name from getMyStayPhotos, e.g. '69bdf22cdb0c43a7be3e825a0a3a2074.jpg'
Behavior4/5

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

With annotations already declaring destructiveHint=true, the description adds valuable context by specifying the required auth token (NOMADSTAYS_MCP_AGENT_TOKEN) and the necessary lookup step via getMyStayPhotos. It is consistent with the annotations and provides extra procedural detail without contradicting them.

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?

The description is three short, information-dense sentences: action, prerequisite, and auth requirement. Every sentence earns its place with no redundancy or fluff.

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

Completeness5/5

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

For a straightforward delete operation, this description is complete. It covers the prerequisite workflow, the auth requirement, and, combined with the rich schema and annotations (destructiveHint), fully informs the agent about the tool's usage and constraints. The schema handles the area restriction, so the description does not need to repeat it.

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?

The input schema provides 100% coverage for all three parameters, including the area enum with an explicit note about unsupported room photos and an example for fileName. The description merely reiterates that the fileName should be exact, adding no meaningful semantic value beyond 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?

The description clearly specifies the action ('Delete one photo from a Stay') and the resource, making it easy to understand the tool's core purpose. However, it does not explicitly distinguish itself from the sibling deleteRoomPhoto, which is a similar tool for room photos; the schema's area parameter notes this limitation instead.

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?

The description gives a clear prerequisite: 'Call getMyStayPhotos first to find the exact fileName.' This establishes the expected workflow and when to use the tool. It does not explicitly state when not to use it (e.g., for room photos) or mention alternatives like deleteRoomPhoto, which is left to the schema's area parameter description.

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

deleteStayRoomA
Destructive
Inspect

Delete (soft-delete) a room from a Stay. Requires an MCP agent token scoped to the owning account.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomIdYesThe room's EntryID — use getMyStayRooms to find it
stayIdYesThe Stay's EntryID
Behavior4/5

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

The description discloses that the delete is a soft-delete, which is not implied by the annotations' destructiveHint=true (which could suggest a hard delete). It also mentions the token scope requirement, adding auth context beyond structured annotations. This goes beyond what annotations alone convey, though it doesn't describe reversibility or side effects.

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?

The description is a single, front-loaded sentence that immediately states the action and object. It includes a necessary auth caveat without adding fluff. Every word contributes value, making it highly concise and well-structured.

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?

For a simple two-parameter delete operation with no output schema, the description covers the core purpose and the key auth context. It is sufficient for an agent to use the tool correctly. A minor omission is that it doesn't say what happens after deletion (e.g., return value), but this is non-critical for a soft-delete operation.

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?

The input schema already provides 100% coverage with descriptions for both parameters, including how to find the roomId via getMyStayRooms. The description itself adds no extra parameter meaning, so the baseline of 3 applies, as the schema does the heavy lifting.

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?

The description states a specific action (Delete) on a specific resource (a room from a Stay), and clarifies it is a soft-delete. This clearly distinguishes it from sibling tools like deleteRoomPhoto, deleteStayPackage, and deleteStayPhoto. The verb+resource structure is unambiguous.

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?

The description gives a clear context for when to use the tool (to soft-delete a room) and a prerequisite (MCP agent token scoped to the owning account). It does not explicitly mention alternatives or when not to use it, but the context is straightforward and the auth requirement is useful guidance.

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

findNearestAvailabilityA
Read-only
Inspect

Find the nearest available dates when requested dates are not available. Searches for alternative check-in dates within a specified window and can adjust length of stay.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe unique identifier of the stay
maxLengthOfStayNoMaximum length of stay in days (optional)
minLengthOfStayYesMinimum length of stay in days
preferredCheckInYesPreferred check-in date in ISO format (YYYY-MM-DD)
searchWindowDaysNoNumber of days before and after preferred date to search (default: 90)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read-only nature is covered. The description adds useful behavioral detail: it searches a window and can adjust length of stay, which goes beyond the annotations. No contradictions found.

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?

The description is two sentences, front-loaded with the core purpose, and every phrase adds value. No fluff or repetition.

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 the tool's moderate complexity, the description covers the essential purpose and behavior. Although there is no output schema, the description does not explain return values or edge cases (e.g., what if no availability is found). However, the annotations and parameter schema are rich enough that the description is largely adequate for selection and invocation.

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 description coverage is 100%, so baseline is 3. The description mentions 'within a specified window' and 'adjust length of stay', which loosely map to searchWindowDays and min/maxLengthOfStay, but it does not add detailed parameter-level semantics beyond what the schema already provides.

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?

The description clearly states the tool's function: finding the nearest available dates when requested dates are unavailable. It specifies the resource (available dates) and the verb (find), and distinguishes itself from sibling tools like checkStayAvailability by focusing on alternative date searches.

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?

The description implies when to use this tool: when requested dates are not available. It explains the search mechanism (within a specified window) and the ability to adjust length of stay, giving clear context. However, it does not explicitly name alternatives or state when not to use it, though the 'when requested dates are not available' phrase serves as a strong trigger.

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

getAdditionalInformationOptionsA
Read-only
Inspect

List valid values for one of the Additional Information picklists used in updateStayOrganisationalData: Children Allowed, Pets Allowed, or Parking. These are NOT booleans — they're lookup IDs (e.g. 'Yes', 'No', 'On Request') — call this to find the right value before writing petsAllowedId/childrenAllowedId/parkingId. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNameYesWhich picklist to fetch options for
Behavior5/5

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

Beyond the readOnlyHint annotation, the description warns that the values are NOT booleans but lookup IDs, and discloses the required token (NOMADSTAYS_MCP_AGENT_TOKEN). This adds meaningful behavioral context that the agent would not otherwise know.

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?

The description is compact (three sentences) and front-loaded with the primary purpose. Every sentence contributes useful information without repetition or 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?

Given the simple one-parameter read-only tool and no output schema, the description adequately explains what the tool returns (valid picklist values) with examples. However, it could mention the return format (e.g., array of option objects) to be fully complete, so a slight deduction applies.

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?

The input schema already defines the filterName enum (Children Allowed, Pets Allowed, Parking) with 100% coverage. The description merely restates those enum values and does not add deeper parameter semantics, so the baseline of 3 is appropriate.

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?

The description clearly states the tool lists valid values for Additional Information picklists (Children Allowed, Pets Allowed, or Parking). It ties the tool to a specific consumer (updateStayOrganisationalData) and names the exact fields it supports, distinguishing it from sibling tools.

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

Usage Guidelines5/5

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

Explicitly tells the agent when to use it: 'call this to find the right value before writing petsAllowedId/childrenAllowedId/parkingId'. This provides a clear use case and context, even if alternatives are not mentioned.

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

getAllAmenitiesA
Read-only
Inspect

List all possible amenities in the database, grouped into Stay Amenities (referenced by tbStaysFacilities) and Room Amenities (referenced by tbStaysRoom.RoomFacilityFk).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds meaningful context by specifying the grouping and the underlying database references (tbStaysFacilities and tbStaysRoom.RoomFacilityFk), which clarifies what 'all' means and how results are organized.

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?

The description is a single, front-loaded sentence that begins with the action and object. The parenthetical table references are concise and add necessary grouping context without wasted words.

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?

For a zero-parameter read-only list tool with no output schema, the description adequately conveys purpose and grouping. It does not detail the exact return format, but the grouping statement largely covers expectations. The lack of explicit output shape is a minor gap, not a critical one.

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 has zero parameters and schema coverage is vacuously 100%. The baseline for 0-parameter tools is 4, and since no parameters exist, the description correctly adds no parameter-specific details.

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?

The description clearly states a specific action ('List all possible amenities') with a defined scope (database-wide) and a meaningful grouping into Stay Amenities and Room Amenities. This distinguishes it from sibling tools like getRoomAmenities by emphasizing the 'all possible' scope and the grouping.

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?

No explicit when-to-use or alternative guidance is provided. The scope implies use for obtaining the full master list of amenities, but the description does not contrast with related siblings like getRoomAmenities or getFacilityGroups, leaving some ambiguity.

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

getAllLifestylesA
Read-only
Inspect

Returns all active lifestyle/genre categories available in NomadStays. Use this to discover what lifestyle categories exist before searching with getStaysByLifestyle.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is established. The description adds behavioral context by noting it returns 'active' categories, which implies a filter on inactive ones, and frames it for discovery.

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?

Two sentences: the first states what it does, the second states when to use it. No filler, front-loaded, highly efficient.

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

Completeness5/5

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

Given the tool's simplicity (no params, no output schema), the description fully covers the purpose, the active filter, and its role in a workflow with a sibling tool. Nothing essential is missing.

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 has zero parameters, so the baseline is 4. There is nothing to document about parameters, and the description doesn't need to compensate.

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?

The description clearly states the tool returns active lifestyle/genre categories, using a specific verb ('Returns') and identifying the resource. It also distinguishes itself from the sibling tool getStaysByLifestyle by positioning itself as the discovery step.

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

Usage Guidelines5/5

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

It explicitly says to use this tool before searching with getStaysByLifestyle, providing both when to use and an alternative. This is direct and actionable.

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

getAvailabilityByMonthA
Read-only
Inspect

Get all available booking windows in a specific month that meet the minimum length of stay requirement. Returns all possible check-in dates and their corresponding available periods.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesYear (e.g., 2026)
monthYesMonth number (1-12, where 1=January, 12=December)
stayIdYesThe unique identifier of the stay
minLengthOfStayYesMinimum length of stay in days required
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to repeat safety traits. It adds value by explaining the filtering behavior ('meet the minimum length of stay requirement') and the output shape ('Returns all possible check-in dates and their corresponding available periods'). This is useful context beyond the annotations, though it doesn't cover edge cases like response limits or date ranges.

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?

The description is two sentences, both informative and free of fluff. It front-loads the main purpose and includes a brief output explanation. Every word earns its place, making it highly concise and well-structured.

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?

For a read-only query tool with a simple schema and no output schema, the description is largely complete. It states the purpose and output format clearly. However, it could briefly mention that results are tied to a specific stayId (though schema implies this) or clarify how 'available' is determined, which would make it fully complete.

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 description coverage is 100%, with all four parameters (year, month, stayId, minLengthOfStay) already documented in the schema. The description only reinforces the minLengthOfStay concept without adding new semantic meaning. It earns the baseline score for high schema coverage but doesn't elevate it further.

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?

The description clearly states the tool's function: 'Get all available booking windows in a specific month that meet the minimum length of stay requirement.' It uses a specific verb ('Get'), identifies the resource ('available booking windows'), and specifies key constraints ('specific month', 'minimum length of stay'). The added detail about returning 'check-in dates and their corresponding available periods' further clarifies the output, distinguishing it from other availability tools.

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?

The description implies usage context (monthly availability with length-of-stay filter) but does not explicitly differentiate it from sibling tools like checkStayAvailability or findNearestAvailability. There is no mention of when to prefer this tool over alternatives or when not to use it. The guidance is implicit rather than explicit.

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

getBookingStatusA
Read-only
Inspect

Check a Stay booking's real payment status by PNR. Status is always freshly re-verified against Airwallex directly if not already confirmed paid — never trust a client-supplied claim of success. Only ever returns bookings owned by the caller's own account. Requires NOMADSTAYS_MCP_AGENT_TOKEN with the 'bookings' scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
pnrYesThe booking reference (PNR) returned by bookStay
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds crucial behavioral context: direct re-verification against Airwallex, account ownership restriction, and the required token scope. This enriches the agent's understanding without contradicting the annotations.

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?

The description is three dense sentences, each contributing distinct value: purpose, verification logic, account restriction, and authentication requirement. There is no redundancy or wasted text.

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

Completeness5/5

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

For a single-parameter read-only tool with no output schema, this description covers all essential aspects: what it checks, how it behaves, who can access what, and what authentication is needed. It is sufficiently complete for an agent to select and invoke the tool correctly.

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?

The schema already provides 100% coverage of the single 'pnr' parameter, describing it as the booking reference returned by bookStay. The description only repeats 'by PNR' and adds no new semantic detail, so the baseline score of 3 is appropriate.

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 opens with a specific verb and resource: 'Check a Stay booking's real payment status by PNR.' It clearly identifies the tool's operation and scope, but does not explicitly contrast it with sibling tools like getPurchaseStatus or listMyBookings.

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?

It provides clear contextual guidance: the status is freshly re-verified against Airwallex, and the agent is told never to trust client-supplied success claims. It also states the tool only returns bookings owned by the caller's account, but it does not name alternative tools for other cases.

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

getBusinessModelOptionsA
Read-only
Inspect

List valid values for a Stay's listing/business model (businessModelId, read-only — displayed on the Stay but not editable via MCP or the host UI itself). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds meaningful context: the value is displayed on the Stay, not editable via MCP or host UI, and requires the NOMADSTAYS_MCP_AGENT_TOKEN. These details clarify the tool's behavior and constraints beyond what annotations alone provide.

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?

The description is a single, well-structured sentence that packs in the action, scope, read-only status, edit restrictions, and auth requirement without wordiness. Every clause adds value.

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

Completeness5/5

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

For a simple parameterless read-only options-listing tool, the description fully covers purpose, scope, field, read-only nature, edit restriction, and token requirement. With annotations handling safety traits and no output schema expected, the description is complete.

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 has 0 parameters and the schema is empty, so the baseline of 4 per rubric applies. The description references businessModelId as output scope, but no parameter documentation is needed. No additional parameter semantics could be added.

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?

The description clearly states the tool lists valid values for a Stay's listing/business model, with the specific field businessModelId. This distinguishes it from sibling options tools like getRoomTypeOptions or getStayTypeOptions by naming the exact domain and field.

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?

The description implies usage for read-only lookup of valid business model values and explicitly notes the field is not editable via MCP or host UI. However, it does not explicitly state when to choose this tool over alternatives or provide exclusions, so it falls one point short of full guidance.

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

getCancellationPolicyOptionsA
Read-only
Inspect

List valid values for a Stay's cancellation policy (cxPolicyId in updateStayOrganisationalData). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the requirement of NOMADSTAYS_MCP_AGENT_TOKEN, disclosing an authentication need beyond the annotations. It doesn't describe the return format, but for a list tool this is implied.

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?

The entire description is one sentence that front-loads the action ('List valid values') and includes only necessary information: the purpose and the authentication requirement. No wasted words.

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

Completeness5/5

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

For a zero-parameter, read-only tool with no output schema, the description fully covers what it does, what it's for, and the auth requirement. The annotations cover safety. This is complete for the tool's simplicity.

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 input schema is empty with zero parameters, so the baseline is 4. The description mentions cxPolicyId but that is a field in another tool, not a parameter here; no additional parameter documentation is needed.

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?

The description uses the specific verb 'List' and identifies the resource as 'valid values for a Stay's cancellation policy', and further clarifies it pertains to the cxPolicyId field in updateStayOrganisationalData. This clearly distinguishes it from other options-list sibling tools like getRoomTypeOptions or getCountryOptions.

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?

The description provides clear context by linking the output to the cxPolicyId field in updateStayOrganisationalData, indicating this tool is used when needing valid cancellation policy values for that update operation. It does not explicitly list when not to use it or name alternatives, but the purpose is specific enough to infer appropriate usage.

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

getCountryOptionsA
Read-only
Inspect

List valid values for a Stay's country (countryId in updateStayOrganisationalData), with each country's name and 2-letter code. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safe read behavior is covered. The description adds the auth requirement ('Requires NOMADSTAYS_MCP_AGENT_TOKEN') and the return content (name and 2-letter code), providing useful context beyond the annotations.

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?

The description is two concise sentences, front-loaded with the action and then the auth note. Every sentence adds necessary information with no filler or repetition of schema details.

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

Completeness5/5

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

For a simple, zero-parameter, read-only tool, the description fully covers what is returned (country name and 2-letter code), its purpose (valid values for countryId), and access requirements. The lack of an output schema is compensated by explicitly stating the return contents.

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?

There are zero parameters, so schema coverage is trivially 100%. The description adds value by explaining the purpose of the output (valid values for countryId) even though no parameter documentation is needed. Baseline 4 applies due to no params.

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?

The description clearly states the tool's function: 'List valid values for a Stay's country' with output details ('name and 2-letter code'). It also distinguishes from siblings by referencing the specific field (countryId in updateStayOrganisationalData), making its purpose unambiguous.

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?

The description implies when to use the tool by tying it to a specific field ('countryId in updateStayOrganisationalData'), which guides the agent to use it when needing valid country values for updates. It does not explicitly exclude alternatives or mention when not to use it, but the context is clear enough.

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

getCoworkingApplicationA
Read-only
Inspect

Get the full current state of one Coworking Application, including a nextAction hint and (if incomplete) a missingFields list naming exactly which required fields are still empty. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdYesThe application's ID (use listCoworkingApplications to find it)
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is covered. The description adds valuable behavioral context beyond annotations: it discloses the auth token requirement and specifies the return content (nextAction hint and missingFields list for incomplete applications), which is not present in the schema or annotations.

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?

The description is a single, front-loaded sentence that immediately states the core purpose, then provides key additional details (return content, auth requirement) without unnecessary words. Every clause earns its place, and there is no repetition of schema or annotation information.

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

Completeness5/5

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

For a single-parameter read-only tool with no output schema, the description adequately explains what the tool returns (full state, nextAction hint, missingFields) and mentions the auth requirement. Given the low complexity, this is complete enough for an agent to select and invoke the tool correctly.

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 description coverage for the single parameter is 100%, and the schema itself already provides guidance ('use listCoworkingApplications to find it'). The description does not add additional parameter syntax or format details, so it stays at the baseline of 3 since the schema does the heavy lifting.

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?

The description uses a specific verb ('Get') and clearly identifies the resource ('one Coworking Application') and scope ('full current state'). It also adds distinctive details (nextAction hint, missingFields list) that differentiate it from listCoworkingApplications and other get tools.

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?

The description clearly implies when to use this tool: when you need the full current state of a single application, particularly to see a nextAction hint or missing required fields. It also notes an auth requirement (NOMADSTAYS_MCP_AGENT_TOKEN). However, it does not explicitly state when not to use it or mention direct alternatives beyond the schema hint for applicationId.

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

getCurrencyOptionsA
Read-only
Inspect

List valid currency ids/codes for use as a package's currencyFK.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds the domain context (currency ids/codes for currencyFK) but does not disclose response formats or other behavioral details. With annotations covering the core, this is adequate but not rich.

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?

The description is a single sentence, directly front-loaded with the action ('List valid currency ids/codes'), and contains no unnecessary words. It is optimally 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 the tool's simplicity (no parameters, no output schema), the description provides sufficient context about its purpose and output. It could specify the exact return structure (e.g., array of strings), but the phrase 'List valid currency ids/codes' already implies the output shape, making it nearly complete.

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 has zero parameters, and the schema coverage is 100%, so there is no need to explain parameters. The description compensates by clarifying what the output represents (valid currency ids/codes), earning the baseline score of 4 for parameterless tools.

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?

The description clearly states 'List valid currency ids/codes' with a specific purpose ('for use as a package's currencyFK'). The verb 'List' and the resource definition make it distinct from siblings like getCountryOptions or getRoomTypeOptions, which target different fields.

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?

The phrase 'for use as a package's currencyFK' provides clear context on when to use this tool, implying it is appropriate when setting or validating the currency of a package. However, it does not explicitly mention alternatives or when not to use it, so it falls 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.

getExperienceApplicationA
Read-only
Inspect

Get the full current state of one Experience Application, including a nextAction hint and (if incomplete) a missingFields list naming exactly which required fields are still empty. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdYesThe application's ID (use listExperienceApplications to find it)
Behavior5/5

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

Annotations already indicate read-only, non-destructive, non-open-world. The description adds value by disclosing the auth token requirement and the specific response details (nextAction hint, missingFields). No contradictions with annotations.

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?

Two concise, information-dense sentences with no filler. Front-loaded with the core action and immediately useful response details.

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

Completeness5/5

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

For a simple read tool with one parameter, the description covers the purpose, auth requirement, and return characteristics, even without an output schema. It's sufficiently complete.

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 applicationId parameter is well-described in the schema with a pointer to listExperienceApplications. The tool description itself adds nothing about parameters, so baseline 3 applies.

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?

The description uses a specific verb ('get') and resource ('one Experience Application'), and differentiates from sibling listing/writing tools by stating it retrieves the full current state. It also mentions the nextAction and missingFields details, which further clarifies its unique function.

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?

The description implies the tool is for reading a single experience application's state, and the parameter description directs users to listExperienceApplications to find the ID. However, it doesn't explicitly mention alternatives or when not to use it, so context is clear but exclusions are absent.

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

getFacilityGroupsA
Read-only
Inspect

List every facility/checkbox group name that exists on the platform (e.g. 'Languages Spoken', 'General', 'Services', 'Meal', 'Position', 'Remote Worker'). Call this first if you don't already know the exact group name to pass to getMyStayFacilities/updateStayFacilities. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare read-only and non-destructive behavior. The description adds useful context beyond annotations: the requirement for NOMADSTAYS_MCP_AGENT_TOKEN and the scope (list of group names only). It does not contradict annotations.

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?

Two sentences that are information-dense with no redundancy. The first sentence defines the action and provides examples; the second covers usage context and auth requirements. Every word earns its place.

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

Completeness5/5

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

For a zero-parameter read-only tool with no output schema, this description is complete: it states what is returned (group names), when to use it (before dependent tools), and the required token. It fully covers the agent's need to select and invoke the tool correctly.

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 has zero parameters, so the baseline is 4. The description correctly implies no parameters are needed by saying 'List every...' and gives examples of the data returned, which is sufficient for a no-parameter tool.

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?

The description clearly states the tool's purpose: 'List every facility/checkbox group name that exists on the platform' with specific examples. It also distinguishes from siblings by explicitly referencing getMyStayFacilities/updateStayFacilities as the intended consumers of the output.

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

Usage Guidelines5/5

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

It provides explicit usage guidance: 'Call this first if you don't already know the exact group name to pass to getMyStayFacilities/updateStayFacilities.' This tells the agent exactly when to use it and names the alternative tools, making the decision context clear.

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

getHelpCenterArticleA
Read-only
Inspect

Fetch a specific NomadStays Help Center article by its ID. Returns the full article content, title, slug, and categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe WordPress post ID of the Help Center article (e.g., '123')
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, so the safety profile is established. The description adds value by explicitly stating the output includes full article content, title, slug, and categories, which is useful behavioral context beyond the annotations.

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?

The description is two sentences long, front-loads the primary action, and contains no filler or redundant wording. Every word contributes to understanding the tool.

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

Completeness5/5

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

For a simple single-parameter fetch tool with no output schema, the description adequately explains what the tool does and what it returns. It covers the essential information an agent needs to select and invoke the tool correctly.

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?

The schema already provides full coverage for the single parameter 'id' with a clear description that it is a WordPress post ID. The tool description adds no new semantic detail about the parameter beyond what the schema already states, so the baseline of 3 is appropriate.

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?

The description uses a specific verb 'Fetch' with a clear resource ('specific NomadStays Help Center article') and identifies the method of identification ('by its ID'). It also lists what is returned (article content, title, slug, and categories), which distinguishes this from the sibling tools 'searchHelpCenter' and 'listHelpCenterCategories'.

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?

The phrase 'by its ID' clearly implies that this tool is for retrieving a known article, whereas 'searchHelpCenter' would be for finding articles by query. However, it does not explicitly mention alternative tools or exclusions, so it falls 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.

getMyBusinessProfileA
Read-only
Inspect

Get the host account's business profile: legal business name, VAT/business registration numbers, whether registered as a business entity. Does NOT include bank or tax-ID details — those are never exposed via MCP. Call this before updateHostBusinessProfile. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Beyond the read-only annotations, the description discloses that bank/tax-ID details are never exposed via MCP and that a specific auth token is required. This adds meaningful context about data scope and authentication.

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?

Four concise sentences, each serving a purpose: definition, exclusions, usage order, and auth requirement. No redundant phrases.

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

Completeness5/5

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

For a zero-parameter getter with no output schema, the description provides sufficient context: field list, exclusions, sequencing, and auth. No gaps in understanding what the tool does.

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 has zero parameters, so the schema is effectively empty. The description adds no parameter-specific semantics, but the baseline of 4 is appropriate given the absence of parameters.

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?

The description clearly states 'Get the host account's business profile' and enumerates specific fields (legal business name, VAT numbers, registration status). This distinguishes it from sibling tools like updateHostBusinessProfile and other getters.

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

Usage Guidelines5/5

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

Explicitly instructs to 'Call this before updateHostBusinessProfile', providing a clear sequencing guideline. Also states exclusions (bank/tax-ID details) to prevent misuse.

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

getMyStayContactsA
Read-only
Inspect

Get a Stay's contact/owner/manager details and social media links: owner name/email/mobile, manager (day-to-day contact person) name/email/mobile, booking email/phone/mobile, host display name, and website/Facebook/Twitter/YouTube/Instagram/TikTok/LinkedIn links. Call this before updateStayContacts so the agent knows current values. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior4/5

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

Annotations already cover read-only and non-destructive behavior, so the description adds value by disclosing the required auth token ('Requires NOMADSTAYS_MCP_AGENT_TOKEN') and enumerating the exact return fields, which is especially important given no output schema. It also reveals the sequencing dependency (before updateStayContacts). It does not contradict annotations. Slight deduction for not mentioning rate limits or error conditions, but overall strong.

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?

Three concise sentences: purpose with return fields, usage context relative to updateStayContacts, and auth requirement. Each sentence serves a distinct purpose. It is front-loaded with the main action and not padded with filler. Despite the long enumeration in the first sentence, it is information-dense and well-structured.

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

Completeness5/5

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

Given there is no output schema, the description fully enumerates the expected return fields, which is essential for the agent to know what this tool provides. It also includes the auth requirement and sequencing with updateStayContacts, making it self-contained for the agent's decision-making. No additional information is needed for typical use.

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?

The input schema covers 100% of parameters: stayId is described as 'The Stay's EntryID (use getMyStays to find it)'. The description itself does not add any additional parameter-specific meaning; it focuses on the return value instead. Per the rubric baseline of 3 for high schema coverage, this is appropriate.

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?

The description states a specific verb 'Get' plus a distinct resource: a Stay's contact/owner/manager details and social media links. It enumerates the exact fields (owner/manager name/email/mobile, booking email/phone/mobile, website/social links), which clearly differentiates it from generic getMyStayDetail. The explicit reference to updateStayContacts further clarifies its role.

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

Usage Guidelines5/5

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

Description gives explicit usage guidance: 'Call this before updateStayContacts so the agent knows current values.' This tells the agent when to invoke this tool relative to a sibling and provides a rationale. It clearly implies this is the precursor read for contacts before making updates, which is the primary use case.

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

getMyStayDetailA
Read-only
Inspect

Get the current title, description, and listed status for one of your Stays. Call this before updateStayDetail so the agent knows the current values and doesn't accidentally overwrite them. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by mentioning the auth requirement ('Requires NOMADSTAYS_MCP_AGENT_TOKEN') and implying a read of current state ('current values'), which goes beyond the structured annotations.

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?

Each of the three sentences earns its place: purpose, usage guidance, and auth requirement. No fluff or redundancy; the description is front-loaded with the primary purpose and stays under three sentences.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, read-only, no output schema), the description is complete. It specifies what is returned (title, description, listed status), the scope (your stays), the prerequisite (call before updateStayDetail), and the token requirement, covering all necessary context for an agent to invoke correctly.

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?

The input schema already has 100% description coverage for stayId, including guidance to use getMyStays. The tool description does not add parameter-level semantics beyond that, so the schema carries the full burden, matching the baseline score of 3.

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?

The description uses a specific verb ('Get') and clearly identifies the resource ('the current title, description, and listed status for one of your Stays'). It distinguishes from siblings by scope ('your Stays') and by naming the exact fields returned, unlike getStayByID which likely returns broader stay data.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'Call this before updateStayDetail so the agent knows the current values and doesn't accidentally overwrite them.' This provides a clear prerequisite and rationale, effectively guiding tool selection relative to the updateStayDetail sibling.

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

getMyStayFacilitiesA
Read-only
Inspect

Get the available options AND current selections for one facility/checkbox group on a Stay — e.g. 'Languages Spoken' returns every language the platform supports plus which ones are currently selected for this Stay. Call getFacilityGroups first if you don't know the exact group name. Common groups: 'General', 'Services', 'Languages Spoken', 'Meal', 'Position', 'Remote Worker'. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupYesExact facility group name, e.g. 'Languages Spoken', 'General', 'Services', 'Meal', 'Position', 'Remote Worker' (call getFacilityGroups for the full list)
stayIdYesThe Stay's EntryID
Behavior4/5

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

Annotations already declare readOnlyHint=true, but the description adds meaningful context by explaining that the tool returns all platform-supported options plus the currently selected ones, using a concrete example. It also discloses the required auth token, offering behavioral details beyond 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.

Conciseness5/5

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

The description is compact—three sentences that front-load the core purpose, then add a clarifying example, usage guidance, and auth requirement. No filler or redundancy; every sentence earns its place.

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 output schema, the description adequately describes the response concept (all supported options + current selections) via example. It also provides necessary prerequisite guidance and parameter context. It could be more precise about the exact response structure, but it is sufficient for a simple 2-param read-only tool.

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% with both parameters described. The description reinforces the exact group name requirement and provides examples, but does not add significant semantic value beyond what the schema already states. Baseline of 3 is appropriate.

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?

The description clearly states the tool's function: getting both available options and current selections for a facility/checkbox group on a Stay. It uses a specific example ('Languages Spoken') and distinguishes itself from sibling tools like getFacilityGroups (which lists group names) and updateStayFacilities (which modifies selections).

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?

It explicitly says to call getFacilityGroups first if the exact group name is unknown, which provides direct guidance on prerequisites and an alternative. It also lists common group names, giving clear context on when to use this tool, though it does not explicitly state exclusions for other tools like room-related facility queries.

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

getMyStayOnboardingStatusA
Read-only
Inspect

Get the Stay's listing-completion scores — the same six 'Listing Completion' cards shown on the Stay dashboard (Stay Details, Availability, Rooms, Packages, Wi-Fi, Operator Information), plus an overall completion percentage. Use this when a host asks how far along they are with onboarding or what's left to finish. Note: Wi-Fi is a test-freshness score (recency of the last speed test), not a speed rating, and Operator Information is a status label ('Open'), not a real percentage — both are noted via isPlaceholder/behavior in the response. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior4/5

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

Beyond the annotations (readOnlyHint, destructiveHint), the description adds valuable field-level caveats: Wi-Fi is a test-freshness score not speed, Operator Information is a status label not a percentage, and both are marked via isPlaceholder/behavior. It also mentions the required auth token, giving operational context.

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 description is front-loaded with the primary purpose, followed by usage guidance and caveats. It's a bit long due to the field clarifications, but every sentence adds value and nothing is redundant.

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?

For a tool with no output schema, the description explains what the response contains: six named scores plus an overall percentage, with important caveats about placeholder semantics. It also covers authentication. It lacks exact value formats, but is otherwise complete for a read-only status tool.

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?

The single parameter stayId is fully described in the schema with a helpful pointer to getMyStays. The description itself doesn't add extra parameter details, but with 100% schema coverage, the baseline 3 applies.

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?

The description clearly states the tool's function: 'Get the Stay's listing-completion scores' with specific detail about the six dashboard cards and overall percentage. It distinguishes itself from sibling getMyStay* tools by focusing on completion/onboarding status rather than details, photos, or packages.

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?

Provides explicit when-to-use guidance: 'Use this when a host asks how far along they are with onboarding or what's left to finish.' It doesn't name alternative tools, but the usage context is clear and sufficient for selection among the many sibling tools.

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

getMyStayOrganisationalDataA
Read-only
Inspect

Get a Stay's organisational data: address, check-in/out policy, pets/children/parking, cancellation policy, tourism/land-registration numbers. Call this before updateStayOrganisationalData so the agent knows current values. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds the token requirement and the purpose of retrieving current values. This is useful context beyond annotations, though it does not discuss rate limits or response details.

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?

The description is two sentences, front-loaded with the core purpose, then usage guidance, then auth requirement. Every sentence earns its place with no filler.

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

Completeness5/5

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

No output schema exists, but the description compensates by explicitly listing the categories of returned data, giving the agent a clear picture of what to expect. Combined with the parameter guidance and auth note, it is fully self-contained for a simple read operation.

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%: the single parameter stayId has a descriptive schema entry explaining it's the EntryID and how to find it. The description adds no additional parameter information, so a baseline 3 is appropriate.

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?

The description clearly states the tool's function with a specific verb 'Get' and resource 'Stay's organisational data', and enumerates the exact data categories (address, check-in/out policy, etc.). This distinguishes it from sibling getMyStay* tools by explicitly narrowing scope.

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

Usage Guidelines5/5

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

Explicitly instructs to call this before updateStayOrganisationalData to obtain current values, providing clear sequencing guidance. It also notes the token requirement, alerting the agent to authentication prerequisites.

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

getMyStayPackagesA
Read-only
Inspect

List all pricing packages on one of your Stays, including their full price tiers (days, buy price, sell price, comparison price, listed status). Call this before createStayPackage or updateStayPackage — hosts often forget exactly what packages/pricing they've already set. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior4/5

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

Annotations already mark readOnlyHint=true and destructiveHint=false; the description adds auth requirements ('Requires NOMADSTAYS_MCP_AGENT_TOKEN') and specifies the exact pricing fields returned. No contradiction or destructive behavior is implied. Minor gap: no mention of pagination or response shape, but the field enumeration helps compensate.

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?

Two focused sentences, front-loaded with the verb and scope. The second sentence adds actionable guidance and auth info without fluff; every word earns its place.

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

Completeness5/5

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

For a simple read-only lookup with one well-documented parameter and strong annotations, the description covers purpose, return fields, auth, and usage order. No output schema exists, but the listed fields sufficiently describe the return value.

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 parameter already has a clear description ('The Stay's EntryID (use getMyStays to find it)'). The tool description adds no extra parameter-level details, so the baseline of 3 applies.

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?

Description opens with 'List all pricing packages on one of your Stays', a specific verb+resource+scope, and enumerates returned fields (days, buy/sell/comparison price, listed status). It is clearly distinct from siblings like createStayPackage and updateStayPackage.

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

Usage Guidelines5/5

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

Explicitly instructs 'Call this before createStayPackage or updateStayPackage', naming the relevant alternatives and giving direct when-to-use guidance. The rationale ('hosts often forget exactly what packages/pricing they've already set') further clarifies context.

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

getMyStayPhotosA
Read-only
Inspect

Get every current photo for a Stay across all areas (listing gallery, main/hero, workspace/coworking gallery, host), each as a full https:// CDN URL an agent can view directly (not just a filename). Call this before deleteStayPhoto or reorderStayPhotos to see current filenames. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable context by disclosing the output format (full https URLs, not filenames), the scope (all photo areas), and an auth requirement (NOMADSTAYS_MCP_AGENT_TOKEN). No contradiction with annotations.

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?

The description is two sentences, front-loaded with the primary purpose, and every sentence delivers useful information: scope, output format, usage timing, and auth. No wasted words.

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

Completeness5/5

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

Given the simple tool (1 param, no output schema), the description is complete: it explains what is returned (full URLs), the breadth of coverage (all areas), prerequisites (token), and when to invoke it (before delete/reorder). This is sufficient for an agent to select and call the tool correctly.

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 description coverage is 100% for the single parameter stayId, whose description already explains it is the Stay's EntryID and points to getMyStays. The tool description adds no additional parameter-level meaning, so the baseline of 3 applies without needing compensation.

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?

The description uses a specific verb ('Get') and resource ('every current photo for a Stay'), clarifying scope by enumerating all areas (listing gallery, main/hero, workspace/coworking gallery, host). It also distinguishes from sibling photo tools by emphasizing full CDN URLs and 'all areas'.

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

Usage Guidelines5/5

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

Explicitly instructs when to use this tool: 'Call this before deleteStayPhoto or reorderStayPhotos to see current filenames.' This names alternative/related tools and provides a clear workflow context, exceeding minimal guidance.

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

getMyStayRoomsA
Read-only
Inspect

List all rooms currently configured on one of your Stays, including bed setup, occupancy, facilities (resolved to names, not just IDs), and every room/workspace photo as a viewable CDN URL. Call this before createStayRoom, updateStayRoom, deleteStayRoom, deleteRoomPhoto, or reorderRoomPhotos so the agent can show current values or find the right roomId/fileName. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value by revealing the auth requirement (NOMADSTAYS_MCP_AGENT_TOKEN), the resolved-to-names behavior for facilities, and the inclusion of viewable CDN URLs for photos. These details go beyond annotations, though it doesn't mention pagination or error behavior.

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?

Three sentences, each earning its place: purpose + return contents, usage timing + benefit, and auth requirement. No fluff or repetition, with key information front-loaded.

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 output schema, the description compensates by listing the main fields returned (bed setup, occupancy, facilities, photo URLs) and hints at roomId/fileName availability. It's a simple one-parameter tool, so this is fairly complete. Could be improved by explicitly stating the return is an array of rooms, but the wording 'List all rooms' implies that.

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% with stayId described as 'The Stay's EntryID (use getMyStays to find it).' The description doesn't add anything about the parameter itself, relying on the schema. This matches the baseline for full schema coverage.

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?

The description opens with a specific verb and resource: 'List all rooms currently configured on one of your Stays.' It goes beyond a simple list by enumerating the returned data (bed setup, occupancy, facilities resolved to names, photo CDN URLs), which distinguishes it from sibling tools like getMyStayDetail or getMyStayPhotos. The mention of being a prerequisite for room mutation tools further clarifies its unique role.

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

Usage Guidelines5/5

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

Explicitly states when to call: 'Call this before createStayRoom, updateStayRoom, deleteStayRoom, deleteRoomPhoto, or reorderRoomPhotos.' It also explains the benefit: 'so the agent can show current values or find the right roomId/fileName.' This provides clear, actionable guidance and implicitly differentiates from the mutation tools.

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

getMyStaysA
Read-only
Inspect

List all Stays owned by the account bound to the MCP agent token. Returns stayId, title, and listed status for each — use this to find a stayId before calling any other owner-scoped tool. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable context: it discloses the account-bound scope, the specific return fields (stayId, title, listed status), and the authentication requirement (NOMADSTAYS_MCP_AGENT_TOKEN). This goes beyond the annotations, though it doesn't mention pagination or potential empty results.

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?

The description is three sentences, each earning its place: the first states what the tool does, the second lists return fields and the primary use case, and the third notes the auth requirement. It is front-loaded with the action and resource, and there is no filler or repetition of schema/annotation information.

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

Completeness5/5

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

For a simple zero-parameter list tool with no output schema, the description is complete: it states the scope, return values, authentication need, and the practical use case (finding stayId). No additional context seems necessary for an agent to invoke this tool correctly.

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?

With zero parameters, the input schema provides no meaning to clarify. The description compensates by explaining that the tool returns stays owned by the token-bound account and includes stayId, which is useful context. Baseline for 0 params is 4, and the description meets that baseline.

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?

The description clearly specifies the action ('List all Stays'), the resource ('Stays owned by the account bound to the MCP agent token'), and the returned fields. It distinguishes itself from public stay search tools and owner-scoped detail tools by emphasizing the ownership scope and the 'find a stayId' purpose.

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?

The description gives explicit guidance on when to use it ('use this to find a stayId before calling any other owner-scoped tool'), which is clear and actionable. It doesn't explicitly state when not to use it or name alternatives, but the 'before any other owner-scoped tool' instruction effectively implies a prerequisite role.

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

getProductInfoA
Read-only
Inspect

Look up a Nomad Stays product's price and purchasability — currently only product 8, the Stay Application fee (EUR 39). Returns isWaivedForCaller: true if the caller is already a Stay Partner re-applying, in which case there's nothing to pay and purchaseProduct will process the waiver automatically. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
productIdYesThe product's EntryID — use 8 for the Stay Application fee
Behavior5/5

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

The description adds substantial behavioral context beyond the readOnlyHint annotation: it reveals the isWaivedForCaller return field, the special case for re-applying Stay Partners, and the authentication token requirement. No contradiction with annotations.

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?

Three sentences each add distinct value: purpose, return behavior/waiver logic, and auth requirement. No redundancy, front-loaded with the main purpose.

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

Completeness5/5

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

For a single-parameter read-only lookup with annotations, the description covers purpose, output meaning, the special waiver condition, and authentication. It is complete enough for an agent to decide when to use the tool and what to expect.

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?

The input schema already fully documents productId, including instruction to use 8. The description repeats this info but does not add new parameter semantics beyond what the schema provides, so baseline 3 is appropriate.

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?

The description clearly states the tool looks up a product's price and purchasability, identifies the specific product (8, Stay Application fee), and distinguishes it from purchaseProduct by focusing on lookup rather than purchase. The verb 'look up' and resource 'Nomad Stays product' are specific.

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?

The description implies usage as a pre-purchase check, referencing purchaseProduct for processing waivers, and notes the token requirement. However, it does not explicitly state when not to use it or list alternative lookup tools among many siblings.

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

getPurchaseStatusA
Read-only
Inspect

Check whether a purchase has been paid. Only ever reports 'paid' after a fresh server-side check against the payment provider — never trust the member's own claim that they've paid, always poll this instead. Possible statuses: pending, paid, failed, waived. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
saleIdYesThe saleId returned by purchaseProduct
Behavior5/5

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

The description adds substantial behavioral context beyond the readOnlyHint annotation: it discloses that a fresh server-side check is performed against the payment provider, lists the possible statuses, and notes the token requirement. This exceeds the annotation baseline.

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?

The description is two sentences, front-loaded with the primary purpose, and includes necessary caveats and statuses without redundancy.

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?

The description covers the tool's behavior, return statuses (pending, paid, failed, waived), and authentication requirement, making it fairly complete despite lacking an output schema. It doesn't specify the exact return format, so 4.

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?

The schema already provides 100% coverage with a clear description for saleId ('returned by purchaseProduct'), so the description doesn't need to add parameter details. The baseline of 3 applies.

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?

The description clearly states the tool's function with a specific verb ('Check') and resource ('whether a purchase has been paid'), and provides the possible statuses. It distinguishes itself from siblings like getBookingStatus by focusing on purchases rather than bookings.

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?

The description provides clear usage guidance, instructing to 'never trust the member's own claim' and to 'always poll this instead', indicating this is the authoritative source for payment status. However, it doesn't explicitly name alternatives or exclusions, so it's not a 5.

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

getRoomAmenitiesA
Read-only
Inspect

Get comprehensive list of all facilities and amenities for a specific room, including WiFi metrics (download/upload speed, jitter). Returns room details, all facilities, and network performance data.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomIdYesThe unique identifier of the room (tbStaysRoom.EntryID)
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safe read-only nature. The description adds the return contents (room details, facilities, network performance), but does not disclose potential edge cases (e.g., invalid roomId, missing WiFi data) or formatting details, so it provides only modest additional behavioral context.

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?

The description is a single, well-structured sentence that front-loads the main action and lists the expected returns. Every phrase provides useful information without redundancy, making it highly concise and efficient.

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 the simplicity of the tool (one input, read-only, no output schema), the description sufficiently summarizes what the tool returns. It doesn't specify behavior for missing or invalid inputs, but for a straightforward getter this is a minor gap. The description is complete enough for an agent to understand the tool's core functionality.

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?

The input schema covers 100% of the parameter (roomId) with a clear description. The tool description adds minimal value by referring to 'a specific room' but does not elaborate on parameter behavior, formats, or constraints beyond the schema. Baseline 3 is appropriate given high schema coverage.

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?

The description clearly states the tool's purpose: to get a comprehensive list of facilities and amenities for a specific room, including WiFi metrics. It distinguishes itself from siblings like getAllAmenities (global list) and getRoomFacilityOptions (options) by specifying 'for a specific room' and including unique data like jitter.

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?

The description implies when to use this tool: when you need detailed amenities for a specific room, indicated by 'for a specific room'. It doesn't explicitly mention alternatives or exclusions, but the context is clear enough to infer the intended use case, though it could benefit from a direct comparison with similar tools.

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

getRoomAvailabilityA
Read-only
Inspect

Check a specific room's availability for each night in a date range. Returns availability status (available/not available) for each night.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomIdYesThe unique identifier of the room (tbStaysRoom.EntryID)
checkInYesCheck-in date in ISO format (YYYY-MM-DD)
checkOutYesCheck-out date in ISO format (YYYY-MM-DD)
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns per-night availability status, which is useful context but does not disclose additional behavioral traits like error handling, authentication requirements, or date inclusivity nuances. With annotations covering safety, this is adequate but not exceptional.

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?

The description is two sentences, front-loaded with the primary action, and contains no unnecessary information. It directly states the purpose and what is returned, making it highly efficient.

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?

For a read-only tool with three simple parameters and no output schema, the description adequately covers the purpose and return format (per-night availability status). It does not explain edge cases like whether checkOut is exclusive, but this is minor for the tool's simplicity. Given the richness of annotations, the description is sufficiently complete.

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 description coverage is 100%, with all three parameters (roomId, checkIn, checkOut) already documented in the input schema. The description only loosely refers to 'date range' without adding new meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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?

The description clearly states the tool's purpose: checking a specific room's availability for each night in a date range. The verb 'check' + resource 'room availability' + scope ('specific room', 'date range') distinguishes it from sibling tools like checkStayAvailability or getAvailabilityByMonth.

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?

The description implies the use case—checking per-night availability for a specific room—which is clear context. However, it does not explicitly mention when not to use this tool or name alternative tools that might be more appropriate for other availability queries (e.g., findNearestAvailability).

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

getRoomFacilityOptionsA
Read-only
Inspect

List every room-level amenity/facility option available (roomFacilityFk in createStayRoom/updateStayRoom) — e.g. Wi-Fi, Air Conditioning, Private Bathroom. Wi-Fi is mandatory and always included even if not explicitly selected. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety is known. The description adds an auth token requirement and the mandatory Wi-Fi behavior, providing valuable context beyond what annotations offer.

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?

Three sentences, each serving a clear purpose: purpose/examples, mandatory Wi-Fi caveat, auth requirement. No wasted words and front-loaded with the primary action.

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?

For a no-parameter, no-output-schema tool, the description covers purpose, special behavior, and auth. It's sufficient for an agent to select and invoke. Minor gap: doesn't specify return format, but the examples imply a list of strings.

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 has zero parameters, so there are no parameter semantics to clarify. Per the baseline for 0-param tools, the description doesn't need to explain parameters; it adds contextual meaning by linking the output to roomFacilityFk usage.

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?

The description uses a specific verb ('List') and identifies the exact resource: all room-level amenity/facility options. It explicitly references roomFacilityFk in createStayRoom/updateStayRoom, distinguishing it from sibling tools like getAllAmenities or getRoomAmenities.

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?

The description clearly implies when to use this tool: to discover valid roomFacilityFk values for room creation/update endpoints. It also provides a usage caveat that Wi-Fi is mandatory and always included. However, it doesn't explicitly mention alternative tools or state when it should not be used.

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

getRoomTypeOptionsA
Read-only
Inspect

List valid room types for a specific Stay's rooms (roomTypeFK in createStayRoom/updateStayRoom). Valid values depend on the Stay: boutique Stays choose from a fixed boutique type range; standard Stays are restricted to types already used on one of their own rooms. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds context about the token requirement and how valid values differ by stay type. This goes beyond annotations by explaining the conditional behavior of the returned options.

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?

Three tightly written sentences: the first states the core action, the second explains the dependency rule, and the third notes the auth requirement. No wasted words.

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

Completeness5/5

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

Despite lacking an output schema, the description makes the return type clear ('List valid room types') and explains the two categories of valid values. Combined with the single well-documented parameter and safety annotations, this is sufficient for an agent to invoke the tool correctly.

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?

The schema already fully describes stayId as 'The Stay's EntryID' with 100% coverage. The description reinforces its role by linking to specific stay rooms but does not add new format or type details beyond the schema.

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?

The description clearly states the tool 'List valid room types for a specific Stay's rooms' and explicitly ties it to roomTypeFK in createStayRoom/updateStayRoom. This specific verb+resource scope distinguishes it from sibling tools like getStayTypeOptions or getRoomFacilityOptions.

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?

It specifies the use case is to get valid room types for a stay's rooms, with a clear dependency on stay type (boutique vs standard). It directly references the context of roomTypeFK in createStayRoom/updateStayRoom, making when-to-use clear, though it does not explicitly name alternative tools.

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

getStayApplicationA
Read-only
Inspect

Get the full current state of one Stay Application, including a nextAction hint and (if incomplete) a missingFields list naming exactly which required fields are still empty. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdYesThe application's ID (use listStayApplications to find it)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds value by disclosing the auth token requirement and describing the response shape (nextAction hint, missingFields list). This contextualizes behavior beyond the structured annotations, though it could detail more about the 'nextAction' semantics.

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?

The description is two sentences, front-loaded with the core purpose and response details, followed by the auth requirement. Every word adds value, with no redundancy or extraneous information.

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?

For a read-only single-resource getter, the description covers the return content, conditionality (if incomplete), and auth requirements. No output schema exists, so the description carries the burden and does so well. Minor gaps like the meaning of 'nextAction' or state transitions prevent a perfect score, but overall it is complete enough for effective tool selection.

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?

The input schema has 100% coverage with a clear description for applicationId, including guidance to use listStayApplications. The tool description adds no additional parameter-level meaning, but since the schema already fully explains the parameter, the baseline of 3 is appropriate.

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?

The description clearly states the tool gets the full current state of one Stay Application, specifically naming the nextAction hint and missingFields list. This distinguishes it from sibling tools like listStayApplications (which lists applications), getCoworkingApplication, and getExperienceApplication by using the explicit resource 'Stay Application' and unique response details.

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?

The description implies usage when you need the complete state of a specific stay application, including next steps and missing fields. The parameter schema adds 'use listStayApplications to find it', giving a clear path to obtain the required ID. However, there is no explicit exclusion of alternative tools, so it falls 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.

getStayByIDA
Read-only
Inspect

Returns full details for a single stay. The id parameter searches both EntryId and StayId fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStay identifier (searches the EntryId field)
Behavior4/5

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

Annotations already mark the operation as read-only and non-destructive; the description adds a meaningful behavioral detail by stating the id parameter searches both EntryId and StayId fields. However, this contradicts the input schema's parameter description, and return format/pagination are not mentioned, so it is not a perfect score.

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?

The description is a single, front-loaded sentence with no filler. Every word contributes meaning: it states the action, scope, and a key search behavior.

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?

This is a simple one-parameter read tool with strong annotations (readOnlyHint=true) and a description that clarifies the search scope. Without an output schema, 'full details' sufficiently conveys the response type, though a bit more detail about response structure or common use cases would make it fully complete.

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?

The schema already provides a description for the only required parameter (100% coverage), so the baseline is 3. The tool description adds that the id searches both EntryId and StayId, but this conflicts with the schema's statement that it 'searches the EntryId field,' creating ambiguity rather than purely adding value.

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?

The description clearly identifies the action ('Returns full details') and the specific resource ('a single stay'), and distinguishes this tool from sibling listing/search tools by noting it operates on a single ID and searches both EntryId and StayId fields.

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?

Use is implied: call this when you have a stay identifier and need full details. However, there is no explicit guidance on when to choose this over similar sibling tools like getMyStayDetail or getStaysByLocation, and no exclusion criteria.

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

getStaysByAmenitiesA
Read-only
Inspect

Find all stays that have specific amenities. Searches both stay-level amenities (referenced by tbStayFacilities) and room-level amenities (referenced by tbRoomFacilities). Use matchType 'any' to find stays with at least one amenity, or 'all' to find stays with all requested amenities. Can optionally filter by minimum WiFi download speed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25)
amenitiesYesArray of amenity names to search for (e.g., ['WiFi', 'Air Conditioning', 'Pool']). Use getAllAmenities to see all available amenities.
matchTypeNoOPTIONAL: 'any' (default) finds stays with at least one amenity, 'all' finds stays with all amenities
minWifiSpeedNoOPTIONAL: Minimum WiFi download speed in Mbps (default: 0). Only returns stays with WiFi speed at or above this threshold.
Behavior4/5

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

Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful behavioral details—that the tool searches both stay-level (tbStayFacilities) and room-level (tbRoomFacilities) references and supports two match modes—which goes beyond annotation information.

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?

The description is three sentences long, front-loaded with the main purpose, and every sentence adds value (purpose, match behavior, optional filter). There is no redundancy or filler.

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

Completeness5/5

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

Despite lacking an output schema, the description sufficiently covers the tool's operation: it identifies what is searched, the two scanning levels, the matchType behavior, and the optional WiFi speed threshold. For a read-only search tool with these parameters, this is complete.

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 parameters are well-documented. The description enriches the schema by explaining the dual-level search scope (referencing tbStayFacilities and tbRoomFacilities) and clarifying the matchType semantics, adding context not present in the parameter descriptions.

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?

The opening sentence 'Find all stays that have specific amenities' uses a specific verb and resource, and the subsequent detail about searching both stay-level and room-level amenities clearly defines the tool's scope, distinguishing it from amenity-specific siblings like getStaysByWiFiSpeed.

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?

The description provides explicit instructions on using matchType 'any' vs 'all' and the optional minWifiSpeed filter, giving clear context for when to apply these options. However, it does not mention alternative tools for amenity-specific searches or exclusions, so it falls short of full 5.

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

getStaysByBudgetA
Read-only
Inspect

Search for stays that fit within a budget for a given duration. Country is OPTIONAL - can search globally or filter by specific country. Perfect for queries like 'Find me somewhere to stay for 1 month under EUR 1000' or 'Find me a place in Spain for 1 month under EUR 1000'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 15)
currencyYesCurrency code (e.g., 'EUR', 'USD', 'GBP')
maxPriceYesMaximum price for the entire duration (e.g., 1000 for EUR 1000)
checkInDateNoOPTIONAL: Check-in date. Can be a full date (e.g., '2026-05-15'), a month name (e.g., 'May' ? uses May 1st), or omit for today (2026-01-19)
countryCodeNoOPTIONAL: 2-letter country code (e.g., 'ES', 'PT') or country name (e.g., 'Spain'). If omitted, searches all countries globally.
durationDaysYesDuration of stay in days (e.g., 30 for 1 month, 90 for 3 months)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds behavioral context by stating that country is optional and can search globally, which is not directly inferable from the schema alone. The example queries further clarify how the budget and duration parameters are interpreted together.

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?

The description is three sentences long, front-loaded with the core purpose, and includes two illustrative examples without any fluff. Every sentence earns its place, and the structure flows naturally from the primary function to optional parameters to concrete usage scenarios.

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?

The description covers the essential aspects: what the tool does, the optional country filter, and example queries. It does not explain the return format or the limit/checkInDate parameters, but those are documented in the schema. Given the existing schema coverage and the tool's search-oriented nature, the description is sufficiently complete for an agent to select and invoke it correctly.

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 input schema has 100% parameter coverage, so the baseline is 3. The description exceeds this by providing example mappings (e.g., '1 month under EUR 1000' translates to durationDays=30, maxPrice=1000, currency='EUR'), which clarifies how the parameters interact. It also reinforces that countryCode is optional, adding meaning beyond the schema's field descriptions.

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?

The description clearly states the tool's function: searching for stays within a budget for a given duration. It distinguishes itself from sibling tools by focusing on budget as the primary filter, and the examples ('Find me somewhere to stay for 1 month under EUR 1000') make the purpose immediately actionable.

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?

The description provides clear context on when to use the tool (budget-based searches) and highlights that country is optional, enabling global or country-specific queries. It does not explicitly name alternatives or exclusions, but the example queries effectively illustrate the intended use cases, making it easy for an agent to infer when this tool is appropriate.

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

getStaysByContinentA
Read-only
Inspect

Returns stays from the NomadStays database filtered by continent. Search by continent name (e.g., 'Europe', 'Asia', 'Africa', 'North America', 'South America', 'Oceania')

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 15)
continentYesContinent name or partial match (e.g., 'Europe', 'Asia', 'Africa')
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds minimal behavioral context ('from the NomadStays database') but does not disclose details like default pagination or return format, which is acceptable given annotations cover the key behavioral trait.

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?

The description is two short sentences with the main purpose in the first sentence and continent examples in the second. No redundant words or repetition; every word adds value.

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?

For a simple read-only filter tool with two parameters and no output schema, the description is sufficiently complete. It explains what is returned and how to search, while the schema handles parameter details. It does not mention other filter alternatives, but that is not necessary for this tool's functionality.

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 description coverage is 100%, so the baseline is 3. The description adds continent examples, but the schema already defines 'continent' as 'Continent name or partial match' with examples, so the added value is marginal. The 'limit' parameter is not mentioned in the description but is fully explained in the schema.

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?

The description clearly states the tool 'Returns stays from the NomadStays database filtered by continent,' using a specific verb and resource. It also provides continent examples, which distinguishes it from sibling tools like getStaysByCountry or getStaysByAmenities.

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?

The description gives clear context: it is used when searching stays by continent name. It does not explicitly mention alternatives or when-not-to-use, but the continent filter is unambiguous and the examples make the usage obvious.

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

getStaysByCountryA
Read-only
Inspect

Returns stays from the NomadStays database. Search by 2-letter country code (e.g., 'MA', 'US') or country name (e.g., 'Antigua' matches 'Antigua and Barbuda')

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 15)
countrycodeYes2-letter country code (e.g., 'MA', 'US') or partial country name (e.g., 'Antigua')
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds a useful behavioral detail: partial country names are matched (e.g., 'Antigua' matches 'Antigua and Barbuda'). It doesn't discuss pagination or limits, but with annotations covering safety, this is adequate.

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?

The description is two sentences, front-loaded with the main action, and every word earns its place. No filler or redundancy.

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?

For a simple read-only search tool, the description covers the essential aspects: entity, search criteria, and matching behavior. The lack of an output schema is not a major gap since the intent is clear, though the return structure is not described.

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 description coverage is 100%, so the baseline is 3. The description adds example values for countrycode and clarifies partial matching behavior, but does not add meaning for the limit parameter beyond what the schema already states.

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?

The description clearly states 'Returns stays from the NomadStays database' with a specific verb+resource. The tool name 'getStaysByCountry' and the search criteria (country code or name) distinguish it from sibling tools like getStaysByContinent and getStaysByLocation.

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?

The description clearly implies use when filtering by country, with explicit examples of accepted inputs. However, it does not explicitly exclude or contrast with alternatives like getStaysByContinent or getStaysByLocation, making the guidance clear but not fully explicit.

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

getStaysByLifestyleA
Read-only
Inspect

Returns stays from the NomadStays database filtered by lifestyle/genre category (e.g., 'Digital Nomad', 'Beach Life', 'City Living', 'Mountain Retreat'). Each stay can belong to multiple lifestyle categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 15)
lifestyleYesLifestyle/genre category name or partial match (e.g., 'Digital Nomad', 'Beach', 'City'). Use getAllLifestyles tool to see all available categories.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's added note that 'each stay can belong to multiple lifestyle categories' provides useful result-set semantics that help interpret duplicate appearances. This goes beyond structured fields and does not contradict any annotation.

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?

The description is two sentences, front-loaded with the primary function and quickly adds the multi-category nuance. Every word contributes meaning, with no filler or redundant information.

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

Completeness5/5

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

The tool is a straightforward read-only list filter. The combination of schema (with parameter details), annotations (read-only, safe), and a clear description fully covers usage. No output schema is needed for this simple list operation, and the description provides sufficient context for an agent to invoke it correctly.

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?

Both parameters (lifestyle and limit) have detailed schema descriptions with 100% coverage. The schema explains the partial-match behavior and default limit, while the tool description only repeats examples and adds no new parameter semantics. The baseline of 3 is appropriate since the schema carries the full load.

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?

The description uses the specific verb 'Returns' and identifies the resource as 'stays from the NomadStays database', filtered by 'lifestyle/genre category'. It includes concrete examples that clarify the domain and clearly distinguishes it from sibling tools like getStaysByAmenities or getStaysByBudget, which filter by different criteria.

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?

The description establishes this tool as the lifestyle-based filter for stays, and the parameter description directs users to the getAllLifestyles tool for valid categories. It does not explicitly state when not to use it or name alternative filtering tools, but the context is clear enough for an agent to select it appropriately.

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

getStaysByLocationA
Read-only
Inspect

Returns stays from the NomadStays database that match a location search term. Searches across City, State, location_name, location_country, and location_description fields. Use this for flexible location searches (e.g., 'Paris', 'California', 'Beach', 'Mountain')

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 15)
locationYesLocation search term to match against City, State, location_name, location_country, or location_description (e.g., 'Paris', 'California', 'Beach', 'Mountain')
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safety profile. The description adds behavioral context by specifying the multi-field search behavior, which helps the agent understand the tool's flexible matching semantics. It does not contradict annotations, and the added detail is useful beyond 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.

Conciseness5/5

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

The description is two sentences with no redundancy. It opens with the primary purpose, then details the fields and provides concrete usage examples, all in a compact format that respects the agent's attention.

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 two simple parameters, no output schema, and read-only annotations, the description provides sufficient context for a tool of this complexity. It communicates what is returned (stays), the search scope (fields), and when to use it. Minor omissions like return format or pagination are not critical given the simplicity and the presence of a 'limit' parameter.

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 description coverage is 100% (both 'location' and 'limit' have descriptions). The tool description essentially repeats the schema's examples and field list, adding no new parameter-level meaning. Per the calibration baseline, a score of 3 is appropriate when the schema carries the parameter documentation burden.

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?

The description clearly states 'Returns stays from the NomadStays database that match a location search term', using a specific verb and resource. It also lists the exact fields searched (City, State, location_name, location_country, location_description), distinguishing it from sibling tools like getStaysByCountry or getStaysByContinent which likely use more structured filters.

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?

The description explicitly says 'Use this for flexible location searches' with examples like 'Paris', 'California', 'Beach', 'Mountain', providing clear guidance on when to choose this tool. However, it does not explicitly mention when not to use it or name alternatives (e.g., use getStaysByCountry for exact country matches), leaving some ambiguity among the many getStays* siblings.

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

getStaysByWiFiSpeedA
Read-only
Inspect

Find all stays with WiFi download speed greater than 10Mbps, listed and not suspended.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 15)
minWiFiDownloadSpeedNoMinimum WiFi download speed in Mbps (default: 10)
Behavior3/5

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

Annotations already declare readOnlyHint:true and destructiveHint:false, covering the safety profile. The description adds the 'listed and not suspended' filter, which is useful context, but does not disclose other behavioral details like pagination, response format, or default limits. Since annotations cover the main safety aspects, the description provides moderate additional value.

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?

The description is a single sentence that front-loads the core filter criteria and contains no extraneous words. Every piece of information is relevant and clearly structured.

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?

For a simple read-only filter tool with two optional parameters and no output schema, the description covers the essential purpose and filtering criteria. It omits mention of limit/pagination behavior, but the schema documents the limit parameter, and the annotations cover safety. A brief note on result ordering or pagination would make it more complete, but it is adequate for the tool's simplicity.

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% for the two parameters, and each has a clear description. The description adds semantic value by specifying 'greater than' for minWiFiDownloadSpeed, clarifying an exclusive comparison, and it highlights the default threshold (10Mbps). This goes beyond simply restating the schema.

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?

The description explicitly states the verb 'find', the resource 'stays', and the specific filter criteria: WiFi download speed greater than 10Mbps, plus status filters (listed, not suspended). This clearly distinguishes it from sibling tools like getStaysByAmenities or getStaysByBudget which filter by other attributes.

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?

The description implies when to use this tool (when searching for stays with fast WiFi), but it does not explicitly mention alternatives or state when not to use it. Given the large number of similar sibling filter tools, explicit guidance such as 'for other filters see getStaysBy*' would improve clarity. However, the core use case is clear.

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

getStayTypeOptionsA
Read-only
Inspect

List valid values for a Stay's 'Main Accommodation Type' (stayTypeId in updateStayOrganisationalData). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing an authorization requirement (NOMADSTAYS_MCP_AGENT_TOKEN) that is not in annotations. It also adds domain context by referencing the target field. No contradiction with annotations.

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?

The description is a single, front-loaded sentence with no filler. It efficiently communicates the action, scope, and authorization requirement without redundant repetition.

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

Completeness5/5

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

For a simple no-parameter, read-only option-list tool, the description is complete. It states the output (valid values), domain context (Main Accommodation Type), and a special requirement (token). No output schema exists, but the description sufficiently informs an agent about expected behavior.

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 has zero parameters, so the baseline is 4. The description adds semantic value by explicitly identifying the data scope (Main Accommodation Type) and the related field (stayTypeId), clarifying what the tool operates on beyond the empty schema.

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?

The description clearly states the tool's function with a specific verb ('List') and resource ('valid values for a Stay's 'Main Accommodation Type''). It also distinguishes itself from sibling option-getter tools by referencing the exact field (stayTypeId) and its usage in updateStayOrganisationalData.

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?

The description provides clear context by linking the tool to a specific field in updateStayOrganisationalData, implying when it should be used. It does not explicitly exclude alternatives or mention when-not-to-use scenarios, but the context is sufficient for an AI agent to select it correctly among similar option-listing tools.

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

listCoworkingApplicationsA
Read-only
Inspect

List the caller's Coworking Applications (draft and submitted), each with a nextAction hint (provide_coworking_details, submit, awaiting_review, or accepted). Coworking has no Application Fee, so unlike Stay/Experience there is no pay_application_fee step. Call this to find an in-progress application's applicationId before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful context: the draft/submitted scope, the nextAction hint values, the no-fee distinction, and the auth token requirement. It does not describe full return structure, but this is acceptable given the annotations.

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?

The description is four sentences, each contributing value: purpose, fee distinction, invocation trigger, and auth requirement. It is front-loaded with the core list action and contains no filler.

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

Completeness5/5

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

For a parameterless list operation, the description covers scope (draft/submitted), output hints, the fee-flow difference, a concrete use case, and auth. This is sufficient for an agent to select and invoke the tool correctly.

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 has zero parameters and an empty schema, so the baseline of 4 applies. No parameter explanations are needed, and the description correctly focuses on output and usage context rather than inventing parameter details.

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?

The description begins with a specific verb and resource: 'List the caller's Coworking Applications (draft and submitted)'. It distinguishes Coworking from Stay/Experience by noting the absence of pay_application_fee and enumerates nextAction hint values, clearly separating it from sibling list tools.

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?

The description gives a direct use case: 'Call this to find an in-progress application's applicationId before resuming it.' It also contrasts the Coworking fee flow with Stay/Experience. However, it does not explicitly name alternative tools (e.g., listStayApplications) for other application types, so it lacks full when-not guidance.

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

listExperienceApplicationsA
Read-only
Inspect

List the caller's Experience Applications (draft and submitted), each with a nextAction hint telling you what's needed next (provide_applicant_details, provide_experience_details, pay_application_fee, submit, awaiting_review, or accepted). Call this to find an in-progress application's applicationId before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations declare readOnlyHint=true, so safety is known. The description adds beyond that: it requires NOMADSTAYS_MCP_AGENT_TOKEN, scopes to the caller's own applications, and details the nextAction field with possible values. This is useful context beyond the annotations.

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?

The description is three sentences, front-loaded with purpose, then a specific use case, then an auth requirement. Every sentence adds value with no wasted words.

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?

For a simple list tool with no output schema, the description covers the key output field (nextAction with enumerated values) and the primary use case, plus auth and scope. It does not describe pagination or sorting, but those are likely not essential.

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 has zero parameters and the schema is an empty object with 100% coverage. The description adds no parameter details because there are none, matching the baseline for 0 parameters.

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?

The description clearly specifies the verb 'List' and the resource 'the caller's Experience Applications' with scope ('draft and submitted'). It distinguishes from siblings like listStayApplications by naming the specific application type and from getExperienceApplication by stating its use for finding an applicationId before resuming.

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?

The description explicitly says 'Call this to find an in-progress application's applicationId before resuming it,' providing a clear usage context. It does not mention alternatives or exclusions, but the context is specific enough to guide an agent.

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

listHelpCenterCategoriesA
Read-only
Inspect

List all available NomadStays Help Center categories. Returns category ID, name, slug, description, and article count for each category.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare the tool read-only and non-destructive. The description adds that it returns all categories with specific fields (ID, name, slug, description, article count), which is useful. However, it does not disclose other behavioral traits like pagination, ordering, or error conditions beyond the annotations.

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?

The description is a single sentence that front-loads the action and resource, then concisely lists return fields. Every word earns its place with no fluff or repetition.

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

Completeness5/5

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

For a simple, parameterless listing tool with annotations indicating safe read-only behavior, the description sufficiently covers what the tool does and what it returns. No output schema exists, but the field list in the description compensates. The complexity is low, so the description is complete.

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 input schema is empty with zero parameters, so there is no parameter semantics to clarify. The description correctly implies no parameters are needed. Baseline for 0 params is 4, and the description does not undermine this.

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?

The description clearly states the tool's purpose: 'List all available NomadStays Help Center categories.' It uses a specific verb (list) and resource (categories), and distinguishes itself from sibling tools like getHelpCenterArticle or searchHelpCenter by focusing on category listing, not articles.

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?

The description implies usage: use when you need all help center categories. However, it lacks explicit guidance on when to choose this over alternatives, such as using searchHelpCenter or getHelpCenterArticle for article-specific queries. No exclusions or alternative recommendations are provided.

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

listMyBookingsA
Read-only
Inspect

List all Stay bookings owned by the caller's own account, most recent first, with each one's current status. Each booking includes needsAction: true if it's still unpaid, with a ready-to-use checkoutUrl — call this proactively (e.g. at the start of a session, or when the member asks what's pending) and surface any needsAction bookings to the member, since there is no other way for them to be notified of an incomplete booking through this connection. Requires NOMADSTAYS_MCP_AGENT_TOKEN with the 'bookings' scope.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds valuable context: authentication requirement (token with 'bookings' scope), result details (needsAction flag, checkoutUrl), and ordering. No contradiction with annotations.

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?

The description is front-loaded with the core action and then adds necessary details (ordering, status, needsAction, usage guidance, auth). Each sentence earns its place without redundancy, though slightly long, it remains efficient.

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

Completeness5/5

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

With no output schema, the description explains return values (status, needsAction, checkoutUrl), covers usage context, and states auth requirements. For a zero-parameter listing tool, it is fully complete.

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 input schema has no parameters, so the baseline is 4. The description properly focuses on behavior and output, and no parameter explanation is needed.

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?

The description uses a specific verb ('List') and resource ('all Stay bookings owned by the caller's own account'), with clear ordering ('most recent first') and content ('current status'). It distinguishes itself from siblings like getBookingStatus (single booking) and getMyStays (likely host's stays).

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

Usage Guidelines5/5

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

Explicitly states when to call proactively ('at the start of a session, or when the member asks what's pending') and why ('there is no other way for them to be notified'), while also advising to surface needsAction bookings. This provides clear usage context with alternatives implied.

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

listStayApplicationsA
Read-only
Inspect

List the caller's Stay Applications (draft and submitted), each with a nextAction hint telling you what's needed next (provide_applicant_details, provide_property_details, pay_application_fee, submit, awaiting_review, or accepted). Call this to find an in-progress application's applicationId before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the read-only nature is declared. The description adds value by revealing the nextAction hint behavior and the token requirement, giving extra context about what the tool returns and what's needed to call it.

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?

Two sentences, front-loaded with the core action, and no unnecessary words. Each sentence adds useful information: what the tool lists, the nextAction hint, the use case, and the required token.

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

Completeness5/5

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

For a parameterless list tool with a read-only annotation, the description covers the essential aspects: scope (caller's applications), states (draft/submitted), the nextAction hint, the practical purpose, and authentication. No output schema exists, but the description mentions the key output fields (applicationId, nextAction).

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?

There are zero parameters and the schema is empty, so the baseline is 4. The description explains the response characteristics (nextAction values) which is relevant despite no parameters, and it doesn't need to compensate for schema gaps.

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?

The description states a specific action and resource: 'List the caller's Stay Applications'. It distinguishes from sibling list tools by specifying 'Stay' and mentioning draft/submitted states and the nextAction hint, which is unique to this tool.

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?

Provides a clear use case: 'Call this to find an in-progress application's applicationId before resuming it.' This tells when to use it, though it doesn't explicitly mention alternatives or exclusions. The context is strong enough for an agent to decide correctly.

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

purchaseProductAInspect

Start a purchase of a Nomad Stays product on the caller's own behalf. If the caller already qualifies for a waiver (e.g. an existing Stay Partner re-applying), this resolves immediately with no payment step and returns status 'waived'. Otherwise it returns a checkoutUrl hosted on nomadstays.com — you must hand this URL to the member and ask them to open it in their own browser and pay; you cannot complete payment on their behalf. Poll getPurchaseStatus with the returned saleId afterwards to find out when it's actually paid. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
productIdYesThe product's EntryID — use 8 for the Stay Application fee
applicationIdNoOptional: if this purchase is paying a Stay Application's fee, pass its applicationId (from createStayApplication) so the payment is applied back to that application automatically once paid
Behavior5/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false, which are minimal. The description goes far beyond this by detailing side effects (purchase initiation), possible immediate resolution with 'waived' status, the return of a checkoutUrl, the agent's inability to pay on behalf, the need to poll for payment status, and a required auth token. This is rich behavioral context that no annotation provides.

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?

The description is concise and well-structured, with four sentences that each carry essential information. It front-loads the core action, then explains conditional behavior, the payment flow, and follow-up steps. No filler or redundant content.

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

Completeness5/5

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

Given that there is no output schema, the description handles return behavior well by explicitly mentioning the 'waived' status, checkoutUrl, and saleId. It also covers the required authentication token and the process flow (handing URL, polling). Combined with clear parameter schema, the description is sufficiently complete for an agent to select and invoke the tool correctly.

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?

The input schema already provides 100% coverage, including example values for productId ('use 8 for the Stay Application fee') and a clear explanation of applicationId. The description adds no direct parameter-specific detail beyond what the schema states. It does add broader context (like the waived scenario) but that doesn't alter parameter meaning. Baseline of 3 is appropriate.

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?

The description clearly states the tool's purpose: 'Start a purchase of a Nomad Stays product on the caller's own behalf.' It uses a specific verb and resource, and distinguishes itself from sibling tools like getPurchaseStatus by framing it as the initiation step. It also clarifies the 'caller's own behalf' nuance, making it unmistakable what the tool does.

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

Usage Guidelines5/5

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

The description provides explicit workflow guidance: it explains when the tool resolves immediately (waived status) versus when it returns a checkoutUrl, and instructs that the URL must be handed to the member (not paid by the agent). It also directs the agent to poll getPurchaseStatus afterward, effectively naming the follow-up tool. This is clear, actionable guidance for when and how to use the tool.

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

quoteStayBookingAInspect

Get a server-computed price and availability quote for booking a Stay package on the caller's own behalf. Price is always re-derived from the package's actual pricing tiers — never trust or reuse a price shown elsewhere. Picks the largest price tier whose length is <= the requested nights (e.g. 10 nights against 7/14/21/30-day tiers uses the 7-day tier's rate), falling back to the smallest tier if the stay is shorter than all of them. Returns a quoteId valid for about 15 minutes — call bookStay with it to actually create the booking and get a payment link. Requires the caller's token to carry the 'bookings' OAuth scope (McpMember role), separate from the listings-management 'McpAgent' scope other tools here use.

ParametersJSON Schema
NameRequiredDescriptionDefault
petsNoNumber of pets. Defaults to 0.
roomsNoNumber of rooms to book. Defaults to 1.
adultsNoNumber of adult guests. Defaults to 1.
checkInYesCheck-in date, YYYY-MM-DD
checkOutYesCheck-out date, YYYY-MM-DD
childrenNoNumber of child guests. Defaults to 0.
packageIdYesThe Stay package's ID (from getPackages or search/browse tools)
Behavior5/5

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

Beyond annotations, the description discloses crucial behaviors: price is always re-derived from actual pricing tiers, the tier-selection algorithm with fallback, quoteId validity of ~15 minutes, and the specific OAuth scope requirement. This significantly enriches the minimal annotations (readOnlyHint=false only).

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?

The description is dense but every sentence earns its place: purpose, pricing behavior, tier selection, quote validity, next step, and auth requirement. No redundancy or filler. Front-loaded with the primary purpose.

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

Completeness5/5

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

Without an output schema, the description covers return value (quoteId), validity, pricing logic, fallback behavior, and required scope. It is complete for a quote tool, addressing edge cases and next steps. No major gaps.

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%, providing baseline 3. The description adds value by explaining how the parameters (e.g., checkIn/checkOut length) map to pricing tiers, and clarifies the meaning of packageId. This extra contextualization justifies a 4.

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?

The description opens with a specific verb+resource: 'Get a server-computed price and availability quote for booking a Stay package'. It clearly differentiates from siblings like bookStay (which creates the booking) and checkStayAvailability (which likely only checks availability).

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?

It states when to use the tool (before booking) and explicitly directs the caller to use bookStay with the returned quoteId for actual booking. It also explains the required OAuth scope and how it differs from other tools, though it doesn't explicitly contrast with checkStayAvailability.

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

reorderRoomPhotosAInspect

Change the display order of a room's photo gallery. fileNames must be the FULL current gallery (same set, just reordered) — call getMyStayRooms first. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomIdYesThe room's EntryID
stayIdYesThe Stay's EntryID
roomAreaYes'photos' for the regular room gallery, 'workspace' for the room's coworking gallery
fileNamesYesThe complete gallery file names in the new desired order — must match the current set exactly (call getMyStayRooms first)
Behavior4/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description adds valuable behavioral context: it must be called after getMyStayRooms, the fileNames must exactly match the current set, and it requires a specific token. This goes beyond the schema and annotations.

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?

The description is two sentences, front-loaded with the purpose and immediately giving critical constraints. Every sentence adds value without redundancy or filler.

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

Completeness5/5

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

For a mutation tool with four parameters and no output schema, the description provides all necessary context: prerequisite workflow, required token, and the critical fileNames constraint. It is complete for an agent to invoke the tool correctly.

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?

The input schema covers all four parameters with descriptions, achieving 100% coverage. The description reinforces the fileNames constraint but does not add significantly new parameter meaning beyond what is already in the schema. Baseline 3 is appropriate.

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?

The description clearly states the action: 'Change the display order of a room's photo gallery.' It specifies the resource (room's photo gallery) and the operation (reorder), which distinguishes it from sibling tools like deleteRoomPhoto or reorderStayPhotos.

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?

The description gives explicit usage context by requiring 'fileNames must be the FULL current gallery' and instructs to 'call getMyStayRooms first.' This provides a clear precondition, though it does not explicitly name alternatives like reorderStayPhotos for comparison.

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

reorderStayPhotosAInspect

Change the display order of a Stay's listing or workspace photo gallery. fileNames must be the FULL current gallery (same set of files, just reordered) — call getMyStayPhotos first. This only reorders; it cannot add or remove photos. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaYesOnly these two areas support reordering
stayIdYesThe Stay's EntryID
fileNamesYesThe complete gallery file names in the new desired order — must match the current set exactly (call getMyStayPhotos first)
Behavior4/5

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

Annotations are minimal (all false), so the description carries the disclosure burden. It clearly states the operation is a mutation ('Change'), requires an authentication token, and emphasizes that fileNames must be the full current gallery, which indicates validation behavior. It does not describe error handling on mismatch, but overall provides meaningful behavioral context beyond the annotations.

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?

The description is three sentences, front-loaded with the primary purpose, and every sentence adds essential information (purpose, prerequisite, limitation, auth). No wasted words or repetition of schema details.

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?

For a tool with no output schema and sparse annotations, the description covers key contextual aspects: auth requirement, prerequisite call, behavioral limitation, and correct usage. It lacks explicit success/error response details, but for a simple reorder operation this is not critical. Overall, it is more complete than many similar tool descriptions.

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 parameters are already well-documented. The description adds value by elaborating on the fileNames parameter: it must be the full gallery and a prerequisite call is needed. This reinforces the most critical parameter and provides context not present in the schema, justifying a score above the baseline.

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?

The description clearly states the tool's function: 'Change the display order of a Stay's listing or workspace photo gallery.' It uses a specific verb ('reorder'), identifies the resource (Stay photo gallery), and distinguishes itself from siblings like reorderRoomPhotos and uploadStayPhoto by specifying the scope (Stay listing/workspace) and explicitly noting it cannot add or remove photos.

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?

The description provides explicit usage guidance: it instructs to call getMyStayPhotos first, and clarifies the tool only reorders and cannot add/remove photos, implying when not to use it. However, it does not explicitly name alternative tools for add/remove operations, so it falls slightly short of a perfect score.

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

saveCoworkingApplicationAInspect

Update any subset of fields on an existing, not-yet-submitted Coworking Application. Same field set and validation rules as createCoworkingApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
addressNo
countryNoExact tbCountry.CountryName (not a country ID) — use getCountries.
websiteNo
telephoneNo
applicantNameNo
applicationIdYesThe application's ID
coworkingNameNo
applicantEmailNo
Behavior5/5

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

Beyond annotations, it discloses the 409 conflict response, the sharing of validation rules with createCoworkingApplication, and the required auth token. These are valuable behavioral traits not present in the annotations.

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?

Four concise, front-loaded sentences with no redundant information. Each sentence contributes a distinct piece of information: purpose, field semantics, failure mode, and auth requirement.

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?

Covers purpose, usage constraints, conflict behavior, and authentication. Given that it's a mutation tool with no output schema, it could mention the return value, but the description is otherwise comprehensive.

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 description coverage is low (22%), but the description compensates by stating 'only pass the fields you're changing' and pointing to createCoworkingApplication for the complete field set and validation rules. This adds meaningful context for parameter usage.

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?

The description clearly states the tool updates any subset of fields on an existing, not-yet-submitted Coworking Application. The verb 'Update' is specific, the resource is identified, and it distinguishes itself from create and submit siblings.

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

Usage Guidelines5/5

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

It explicitly restricts usage to not-yet-submitted applications, references createCoworkingApplication for the same field set, and warns of a 409 if already submitted. This gives clear when-to-use and when-not-to-use guidance.

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

saveExperienceApplicationAInspect

Update any subset of fields on an existing, not-yet-submitted Experience Application. Same field set and validation rules as createExperienceApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo
cityNo
stateNo
maxPaxNo
mobileNo
streetNo
daysQtyNoMinimum 4 days, enforced server-side
websiteNo
commentsNo
vatNumberNo
hasKitchenNo
descriptionNo
businessNameNo
hasInsuranceNo
monthlyPriceNo
applicationIdYesThe application's ID
downloadSpeedNo
tourismNumberNo
applicantEmailNo
experienceNameNo
workFacilitiesNo
businessModelIdNotbBusinessModel.EntryID — use getBusinessModels.
postalCountryIdNotbCountry.CountryId — used only for the VAT check, stored on the business profile, not on the application. Use getCountries.
applicantLastNameNo
laundryFacilitiesNo
applicantFirstNameNo
experienceCountryIdNotbCountry.CountryId — the country the application itself is filed under. Use getCountries.
availabilitySupplierNo
overnightLocationsQtyNo
Behavior5/5

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

The description discloses partial update semantics, the 409 failure on submitted applications, and the auth requirement. Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description adds substantial behavioral context beyond the structured data.

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?

Three concise sentences: the first states the purpose, the second explains the field set and usage, the third covers error handling and auth. No wasted words, front-loaded with the core operation.

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 the complexity (29 params, no output schema), the description covers the essential context: update semantics, the critical precondition (not submitted), and the auth requirement. It doesn't mention the success response or other error cases, but the reference to createExperienceApplication fills in validation rules. A 4 is fair.

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?

With only 17% schema coverage, the description compensates by explaining the partial update rule ('only pass the fields you're changing') and referencing createExperienceApplication for the full field set and validation. However, it does not add meaning for most individual fields, so a 4 is appropriate.

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?

The description clearly states the verb 'Update' and the resource 'existing, not-yet-submitted Experience Application'. It distinguishes from siblings by noting the update scope ('any subset of fields') and the precondition ('not-yet-submitted'), differentiating it from create and submit tools.

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

Usage Guidelines5/5

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

Explicitly says to pass only changed fields, references createExperienceApplication for same field set and validation rules, and warns that it fails with a 409 if already submitted. Also states the required auth token. This gives clear when-to-use and when-not-to-use guidance.

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

saveStayApplicationAInspect

Update any subset of fields on an existing, not-yet-submitted Stay Application. Same field set and validation rules as createStayApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo
cityNo
stateNo
mobileNo
streetNo
websiteNo
commentsNo
stayNameNo
vatNumberNo
hasKitchenNo
businessNameNo
monthlyPriceNo
applicationIdYesThe application's ID
downloadSpeedNo
numberOfRoomsNo
stayCountryIdNotbCountry.CountryId — the country the application itself is filed under. Use getCountries.
tourismNumberNo
applicantEmailNo
workFacilitiesNo
businessModelIdNotbBusinessModel.EntryID — use getBusinessModels.
postalCountryIdNotbCountry.CountryId — used only for the VAT check, stored on the business profile, not on the application. Use getCountries.
applicantLastNameNo
laundryFacilitiesNo
applicantFirstNameNo
availabilitySupplierNo
Behavior4/5

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

Annotations already convey that this is a write operation and not destructive. The description adds valuable context beyond them by disclosing the 409 conflict for already-submitted applications and the required NOMADSTAYS_MCP_AGENT_TOKEN. It also mentions that validation rules match createStayApplication, providing additional behavioral expectations.

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?

The description consists of three sentences, each serving a distinct purpose: action and scope, usage guidance, and error/auth context. It is front-loaded with the primary purpose and contains no redundant information.

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 the 25-parameter schema and no output schema, the description covers the essential operational aspects: what it updates, constraints (unsubmitted, 409), auth requirements, and validation inheritance. It does not describe success response or return values, which is a minor gap since there is no output schema, but the core behavior is well covered.

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 description coverage is low (16%), so the description must compensate. It does so by clarifying partial-update semantics ('only pass the fields you're changing') and by stating 'same field set and validation rules as createStayApplication,' which directs the agent to that tool's schema for full field meanings. This is a reasonable compensation for the low inline coverage.

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?

The description clearly states 'Update any subset of fields on an existing, not-yet-submitted Stay Application' with a specific verb and resource. It distinguishes from siblings by emphasizing 'existing, not-yet-submitted' and referencing the same field set as createStayApplication, making it distinct from create and submit operations.

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?

Provides explicit conditions: use for existing applications that have not been submitted, and fails with 409 if already submitted. Also advises 'only pass the fields you're changing.' It references createStayApplication for field set/validation, but does not explicitly name alternatives like create or submit, so it lacks an explicit 'when to use vs other tools' statement.

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

searchHelpCenterA
Read-only
Inspect

Search NomadStays Help Center articles from the public knowledgebase endpoint and return matching title/content/slug entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 15)
queryNoSearch term to match against Help Center knowledgebase articles
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so safety is disclosed. The description adds the 'public knowledgebase endpoint' context and the return fields (title/content/slug), but does not reveal additional behavioral traits such as pagination behavior, whether a query is required, or how results are ordered. This is acceptable given the annotations, but not rich.

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?

The description is a single, compact sentence that leads with the verb and resource. It is appropriately sized with no redundant or filler wording.

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?

For a simple search tool with two optional parameters, no output schema, and safety annotations, the description adequately covers purpose, endpoint, and return fields. It lacks explicit mention of default limit or behavior when no query is given, but those are handled by the schema, so the description is sufficiently complete.

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?

The input schema provides full descriptions for both parameters (limit and query), achieving 100% schema description coverage. The description does not add extra meaning beyond what the schema already states, so the baseline score of 3 applies.

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?

The description clearly states that the tool searches Help Center articles from a public knowledgebase endpoint and returns matching title/content/slug entries. This is a specific verb-resource pair that distinguishes it from sibling tools like getHelpCenterArticle (retrieves a single article) and listHelpCenterCategories (lists categories).

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?

The description implies usage for searching articles via the 'search' verb and mentions the public endpoint, but it does not explicitly contrast with sibling tools or specify when to use search versus fetching a single article or listing categories. No exclusions or alternative guidance are provided.

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

signupNomadStaysAccountAInspect

Creates a new NomadStays account on behalf of a person who does not have one yet. No authentication required — this is how an AI agent gets a person started. The account is created but inactive until the person clicks the confirmation link sent to their email; this call returns no session or token, so the agent cannot sign in or act as the user itself. Once confirmed, the person can log in at nomadstays.com/Account/Login and request their own MCP bearer token or OAuth grant to let an agent manage their account/listings going forward.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesA real email address the person controls — the confirmation link is sent here and the account stays inactive until it's clicked
lastNameYesThe person's last name
passwordYesAccount password, minimum 6 characters
firstNameYesThe person's first name
telephoneYesContact telephone number
acceptGdprYesMust be true — the person has agreed to NomadStays' GDPR terms
Behavior5/5

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

Annotations only mark this as not read-only, not open-world, and not destructive. The description adds crucial behavior: account stays inactive until confirmation link is clicked, returns no session/token, and the agent cannot sign in or act as the user. This is far beyond what annotations convey and matches the write operation indicated by readOnlyHint=false.

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?

Three sentences, each earning its place: the core purpose, the inactive-until-confirmation behavior and missing session/token, and the downstream authentication path. It is front-loaded with the primary purpose and stays tightly focused despite covering a multi-step workflow.

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

Completeness5/5

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

Given the absence of an output schema and the complexity of a signup flow with email confirmation, the description is complete: it explains the result, the limitation (no session/token), and what the person must do next. It fully compensates for the lack of structured output documentation.

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?

All six parameters are fully described in the JSON schema (100% coverage), so the schema does the heavy lifting. The description reinforces why email must be real and that no session is returned, but it doesn't add new parameter-specific meaning beyond what the schema already provides; hence baseline 3.

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?

The description opens with 'Creates a new NomadStays account on behalf of a person who does not have one yet,' using a specific verb and resource while making the scope clear. This clearly differentiates it from sibling tools like bookStay or getMyStays, which serve different actions.

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

Usage Guidelines5/5

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

It explicitly states 'No authentication required — this is how an AI agent gets a person started,' providing direct when-to-use guidance. It also explains the post-condition (inactive until email confirmation), that no session/token is returned, and points to the future auth flow (login + request MCP bearer token or OAuth grant) as the alternative for ongoing agent access.

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

submitCoworkingApplicationAInspect

Submit a completed Coworking Application for human review. Rejects with a missingFields list if any required field is still empty. There is no Application Fee to pay for Coworking, so — unlike submitStayApplication/submitExperienceApplication — this never returns a pay_application_fee/409-unpaid response. On success the application moves to human review. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdYesThe application's ID
Behavior5/5

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

The description discloses key behavioral traits: it rejects with a missingFields list if required fields are empty, never returns a pay_application_fee/409-unpaid response, moves the application to human review on success, and requires an agent token. This adds significant context beyond the annotations, which only indicate non-read-only and non-destructive behavior.

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?

The description is concise and well-structured: three sentences that front-load the primary purpose, then add important behavioral details and a sibling distinction. No wasted words.

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?

For a simple single-parameter tool with no output schema, the description covers the main behavioral aspects: error handling (missingFields), fee absence, state transition (human review), and auth requirement. It could possibly mention the success response format, but that is not critical given the simplicity.

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?

The schema already provides 100% coverage for the single parameter (applicationId) with a clear description. The tool description does not add further semantic detail about the parameter, so baseline 3 is appropriate.

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?

The description clearly states the tool's purpose: submitting a completed Coworking Application for human review. It uses a specific verb (submit) and resource (Coworking Application), and explicitly distinguishes from sibling tools by noting the absence of an application fee, unlike submitStayApplication/submitExperienceApplication.

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?

The description provides context for when to use the tool (for completed applications requiring human review) and contrasts with sibling submit tools by highlighting the fee difference. It also notes the token requirement. However, it does not explicitly mention saveCoworkingApplication as the alternative for drafts, though the distinction is implied.

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

submitExperienceApplicationAInspect

Submit a completed Experience Application for human review. Rejects with a missingFields list if any required field is still empty, or a 409 if the Application Fee hasn't been paid/waived yet (call purchaseProduct with productId 9 and applicationId first — Experience uses product 9, NOT product 8). There is no partial/optimistic submission. On success the application moves to human review. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdYesThe application's ID
Behavior5/5

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

Goes well beyond annotations by disclosing the auth token requirement, the 409 error for unpaid fees, the missingFields rejection list, the lack of optimistic submission, and the success state transition to human review. This gives the agent a full picture of the tool's behavior without relying on 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.

Conciseness5/5

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

The description is front-loaded with the main purpose, then efficiently covers error conditions, prerequisites, and auth in a few sentences. Every sentence contributes valuable information with no padding or filler.

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

Completeness5/5

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

For a simple one-parameter mutation with no output schema, the description is remarkably complete. It covers what the tool does, when to use it, what could go wrong and how to recover, and what happens on success, leaving no critical gaps.

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 schema only says 'The application's ID.' The description adds meaning by clarifying that the ID refers to a completed Experience Application and connecting it to the fee-payment flow (product 9). This is useful context beyond the generic schema field description.

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?

The description states a specific verb and resource: 'Submit a completed Experience Application for human review.' It clearly distinguishes from sibling tools like saveExperienceApplication (drafts) and createExperienceApplication (initial creation) by emphasizing final submission and the resulting human review state.

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

Usage Guidelines5/5

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

Explicitly provides a prerequisite and alternative: if the fee hasn't been paid/waived, call purchaseProduct with productId 9 and applicationId first, and warns that Experience uses product 9, not product 8. Also states 'There is no partial/optimistic submission,' which clarifies when not to use the tool.

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

submitStayApplicationAInspect

Submit a completed Stay Application for human review. Rejects with a missingFields list if any required field is still empty, or a 409 if the Application Fee hasn't been paid/waived yet (call purchaseProduct with productId 8 and applicationId first). There is no partial/optimistic submission — everything required must already be in place. On success the application moves to human review; nothing further is needed from the agent. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdYesThe application's ID
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses two failure modes (missingFields list and 409 on unpaid fee), the no-partial-submission policy, the success outcome (moves to human review, nothing further needed), and the auth token requirement. This adds rich behavioral context beyond the annotations.

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?

Every sentence serves a purpose: action, error modes, prerequisite, success/next-step, auth. It's compact, front-loaded with the main verb, and contains zero fluff.

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 output schema, the description adequately covers the outcome ('application moves to human review; nothing further is needed') and all failure paths. It omits the exact success response format, but for a one-parameter submit action the operational behavior is sufficiently complete.

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% for applicationId, which is already described as 'The application's ID'. The description adds important state context: the ID must correspond to an application that is complete and for which the fee has been paid/waived. This is meaningful beyond the schema's type-level description.

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?

The description opens with 'Submit a completed Stay Application for human review' – a specific verb+resource that clearly distinguishes it from saveStayApplication and other submit tools by naming the exact resource. It also clarifies the finality of the action.

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?

The description explicitly states prerequisites: all required fields must be non-empty and the Application Fee must be paid/waived. It gives an explicit alternative (call purchaseProduct) for the unpaid-fee case and notes there is no partial/optimistic submission. However, it doesn't explicitly name saveStayApplication as the alternative for incomplete applications, though the missingFields rejection implies it.

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

updateHostBusinessProfileAInspect

Update the host account's business profile (legal business name, VAT/business registration numbers). Applies to the account owning the MCP agent token, not a specific stay. Only fields supplied are changed. Does NOT touch bank or tax-ID details — those are not MCP-writable.

ParametersJSON Schema
NameRequiredDescriptionDefault
vatNumberNo
businessNameNo
entityAccountNoWhether the host operates as a registered business entity
businessNumberNo
Behavior4/5

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

Annotations indicate a non-read-only, non-destructive operation. The description adds significant context beyond annotations: partial-update semantics ('Only fields supplied are changed'), account-level scope, and non-writable fields (bank/tax-ID). No contradiction with annotations.

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?

Four concise sentences, each delivering critical information: main purpose, scope, update semantics, and exclusions. Information is front-loaded, with no filler or repetition of schema/annotations.

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?

Comprehensive for a 4-parameter update tool with no output schema. It covers scope, partial updates, and field restrictions. Missing details like empty-update behavior or validation rules, but those are less critical and not hinted at by the schema or annotations.

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 only 25% (only entityAccount has a description). The tool description adds group-level meaning by mapping 'legal business name, VAT/business registration numbers' to businessName, vatNumber, and businessNumber. It does not detail each parameter's constraints or valid combinations, but partially compensates for the low schema coverage.

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?

The description clearly states the action ('Update the host account's business profile') and specifies the exact fields involved ('legal business name, VAT/business registration numbers'). It explicitly distinguishes this tool from sibling tools by noting it applies to the account owning the MCP agent token, not a specific stay, which differentiates it from the updateStay* tools.

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?

Provides clear context on scope ('account owning the MCP agent token, not a specific stay') and behavior ('Only fields supplied are changed'), plus an explicit exclusion ('Does NOT touch bank or tax-ID details'). While it doesn't name alternative tools, the scope and exclusions effectively guide when to use this tool.

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

updateStayContactsAInspect

Update a Stay's contact/owner/manager details and social media links. Only fields supplied are changed. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
stayIdYesThe Stay's EntryID
tikTokNo
twitterNoX (Twitter) profile link
websiteNo
youtubeNo
linkedInNo
instagramNo
ownerNameNo
ownerEmailNo
managerNameNoThe day-to-day contact person's name (not necessarily the owner)
ownerMobileNo
bookingEmailNoEmail guests use to reach the Stay about bookings
bookingPhoneNo
facebookPageNo
hostFullNameNoDisplay name shown to guests as the host
managerEmailNo
bookingMobileNo
managerMobileNo
Behavior4/5

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

The description adds valuable context beyond the annotations: partial update semantics ('Only fields supplied are changed') and an authentication requirement ('Requires NOMADSTAYS_MCP_AGENT_TOKEN'). Since annotations only indicate non-read-only and non-destructive, these details meaningfully clarify the operation's behavior.

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?

The description is compact: two sentences, front-loaded with the action and scope, with no redundant wording. Every sentence delivers functional information (what updates, partial update behavior, auth requirement).

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

Completeness2/5

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

This is a mutation tool with 18 parameters and no output schema. The description omits return value behavior, error conditions (e.g., invalid stayId), and prerequisites beyond the token. While partial-update semantics are helpful, the description leaves significant gaps that an agent would need to guess or infer.

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

Parameters2/5

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

With only 28% schema description coverage and 18 parameters, the description does not compensate for the schema's gaps. It groups parameters into broad categories ('contact/owner/manager details and social media links') but provides no insight into specific roles like ownerEmail vs bookingEmail, or hostFullName. This leaves the agent without guidance for many parameters.

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?

The description states a specific verb ('Update') and a specific resource ('Stay's contact/owner/manager details and social media links'), clearly distinguishing it from sibling tools like getMyStayContacts (read operation) and updateStayDetail (general stay details). The scope is precise and unambiguous.

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?

The description implies the tool is for updating contact-related information but does not explicitly state when to use it versus alternatives. 'Only fields supplied are changed' is a behavioral note rather than tool-selection guidance. There is no mention of when not to use or which sibling tool might be a better fit.

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

updateStayDetailAInspect

Update a Stay's title and/or description. Requires an MCP agent token (NOMADSTAYS_MCP_AGENT_TOKEN) scoped to the owning account. Only fields supplied are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoOPTIONAL: new title
stayIdYesThe Stay's EntryID
descriptionNoOPTIONAL: new description
Behavior4/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, and the description adds valuable context beyond that: the requirement for an MCP agent token scoped to the owning account, and the partial-update behavior ('Only fields supplied are changed'). No contradiction with annotations.

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?

Two sentences with no wasted words: the first states the purpose, the second covers auth and partial update. Front-loaded and efficient.

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?

For a simple 3-parameter update tool with complete schema descriptions and annotations, the description covers purpose, auth requirements, and partial update behavior. The absence of return-value info is acceptable given no output schema and low complexity.

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 adds meaning by stating that only supplied fields are changed, which clarifies how the optional title and description parameters behave in a partial update. This is a useful semantic beyond the schema's 'OPTIONAL' labels.

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?

The description uses a specific verb ('Update') and resource ('Stay's title and/or description'), making the tool's purpose immediately clear. It distinguishes itself from sibling tools like updateStayContacts and updateStayRoom by explicitly limiting scope to title and description.

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?

The description clearly confines usage to updating a Stay's title and/or description, which implies when to use this tool versus others. However, it does not explicitly name alternatives or state 'use X for other fields,' so it lacks explicit exclusions.

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

updateStayFacilitiesAInspect

Set which options are selected for one facility/checkbox group on a Stay — e.g. which languages are spoken. facilityDetailIds is the COMPLETE replacement list: anything not included will be UNCHECKED. Call getMyStayFacilities first to see current selections and valid IDs before changing them. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupYesExact facility group name, matching what getMyStayFacilities was called with
stayIdYesThe Stay's EntryID
facilityDetailIdsYesThe FULL list of facilityDetailId values that should be selected after this call — call getMyStayFacilities first to see valid IDs. An empty array clears all selections in this group.
Behavior4/5

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

Annotations already indicate a write operation (readOnlyHint false) and non-destructive behavior (destructiveHint false). The description adds critical context by stating that facilityDetailIds is a COMPLETE replacement list and that anything not included will be UNCHECKED, plus it mentions the required auth token. This adds value beyond the annotations without contradicting them.

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?

The description is three sentences long and every sentence earns its place: it states the purpose, explains the critical replacement behavior, and gives the prerequisite and auth requirement. There is no filler or redundancy.

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?

For a mutation tool with no output schema, the description covers the essential aspects: what it does, the key behavioral caveat (complete replacement), a prerequisite call, and the auth requirement. It does not mention return values or error handling, but those are less critical for this type of tool and are not expected without an output 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. The description enhances the meaning of facilityDetailIds by emphasizing the replacement semantics and that unspecified items will be unchecked, which goes beyond the schema's description. Group and stayId are adequately described in the schema and do not need additional clarification.

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?

The description uses a specific verb ('Set') and names the resource ('one facility/checkbox group on a Stay') with a concrete example, making the tool's purpose immediately clear. This distinguishes it from sibling getters like getMyStayFacilities and other update tools by focusing on the facility/checkbox group selection behavior.

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?

The description provides an explicit prerequisite: 'Call getMyStayFacilities first to see current selections and valid IDs before changing them.' It also clarifies the complete replacement semantics, but it does not explicitly mention when not to use this tool or name alternative tools, 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.

updateStayOrganisationalDataAInspect

Update a Stay's organisational data: address, check-in/out policy, pets/children/parking, cancellation policy, accommodation type, tourism/land-registration numbers, 'Why Choose Us' reasons, and more. Only fields supplied are changed. IMPORTANT: countryId, petsAllowedId, childrenAllowedId, parkingId, cxPolicyId, and stayTypeId are lookup IDs, NOT plain text or booleans — call getCountryOptions / getAdditionalInformationOptions / getCancellationPolicyOptions / getStayTypeOptions first to find the correct ID to send. Requires an MCP agent token scoped to the owning account.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
stateNo
geoLatNoMap pin latitude
geoLngNoMap pin longitude
stayIdYesThe Stay's EntryID
addressNo
reason1NoFirst 'Why Choose Us' reason shown to guests
reason2No
reason3No
postCodeNo
checkInToNo
countryIdNoA country ID from getCountryOptions — NOT a country name.
parkingIdNoAn optionId from getAdditionalInformationOptions(filterName='Parking') — NOT a boolean.
checkOutToNo
cxPolicyIdNoA cxPolicyId from getCancellationPolicyOptions.
stayTypeIdNoA stayTypeId from getStayTypeOptions.
totalRoomsNo
checkInFromNo
fullPaymentNoWhether guests must pay in full up front (vs. pay on arrival). Only settable if the Stay's country allows it — check fullPaymentAllowedByCountry from getMyStayOrganisationalData first; writing true when the country doesn't allow it will be rejected.
checkOutFromNo
earlyCheckInNo
lateCheckoutNo
petsAllowedIdNoAn optionId from getAdditionalInformationOptions(filterName='Pets Allowed') — NOT a boolean.
tourismNumberNo
receiveReviewsNo
childrenAllowedIdNoAn optionId from getAdditionalInformationOptions(filterName='Children Allowed') — NOT a boolean.
customCxPolicyLinkNo
registeredBusinessNoWhether the Stay is officially registered for tourism/lodging
landRegistrationNumberNo
checkinLocationWhat3WordsNowhat3words location for guest check-in
Behavior4/5

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

Beyond the simple annotations (readOnlyHint=false, destructiveHint=false), the description discloses key behavioral traits: partial update semantics, the need to resolve lookup IDs via separate getter calls, and a country-based restriction on fullPayment (writing true when disallowed will be rejected). It also states the token scope requirement. It does not cover error formats or return values, but given the annotation hints, this is a solid level of transparency.

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?

The description is compact—two sentences—and front-loaded with the core purpose. The second sentence uses 'IMPORTANT:' to draw attention to critical lookup ID semantics without burying the main point. Every sentence adds necessary operational detail, making it efficient and well-structured.

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?

For a tool with 30 parameters, no output schema, and moderate annotation richness, this description covers the essential operational context: partial updates, ID resolution workflow, token authorization, and a specific business rule for fullPayment. It does not specify time formats for check-in/out fields or the meaning of 'receiveReviews', but those are relatively intuitive. Overall, it is complete enough for an agent to select and invoke the tool correctly.

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 description coverage is only 43%, so the description must compensate for under-documented parameters. It does this admirably for the most error-prone ones: countryId, petsAllowedId, childrenAllowedId, parkingId, cxPolicyId, and stayTypeId are explicitly flagged as lookup IDs with the correct getter calls, and fullPayment gets a detailed country-eligibility caveat. However, many simple fields like city, state, and address are left to the schema without additional context, though these are self-explanatory.

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?

The description opens with 'Update a Stay's organisational data' and enumerates specific field categories (address, check-in/out policy, pets/children/parking, cancellation policy, etc.), making the tool's purpose and scope immediately clear. The verb 'update' plus the resource 'Stay's organisational data' distinguishes it from sibling tools like updateStayContacts or updateStayDetail.

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?

The description provides strong usage guidance: it states 'Only fields supplied are changed' (partial update behavior), warns that certain fields are lookup IDs and instructs the agent to call specific getter tools first, and notes the MCP token scope requirement. It does not explicitly name alternative tools (e.g., 'use updateStayContacts for contacts'), but the field list makes the intended domain clear.

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

updateStayPackageAInspect

Update an existing pricing package on a Stay. Supplying 'prices' replaces ALL price rows for that package. Requires an MCP agent token scoped to the owning account.

ParametersJSON Schema
NameRequiredDescriptionDefault
listedNo
maxPaxNo
pricesNoOPTIONAL: replaces ALL price rows for this package when supplied. Exactly one entry per 7/14/21/30-night tier used.
stayIdYesThe Stay's EntryID
endDateNoOPTIONAL: last check-in date this package is available for
isActiveNoOPTIONAL: archive (false) or restore (true) this package — cascades to 'listed' on all its price tiers, matching the host UI's Archive/Restore actions
packageIdYesThe package's EntryID (tbStayPackages)
startDateNoOPTIONAL: first check-in date this package is available for
currencyFKNoCall getCurrencyOptions for valid values.
roomTypeFKNoCall getRoomTypeOptions for valid values.
stayRoomFKNoThe specific room this package covers (tbStaysRoom.EntryID). Call getMyStayRooms to find valid values.
descriptionNo
packageNameNo
advertisingEndpointNoOPTIONAL: only usable on Advertising-business-model Stays — ignored otherwise, matching the host UI which hides this field for all other business models.
Behavior4/5

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

Beyond annotations, the description discloses that supplying 'prices' replaces ALL price rows, a significant behavioral trait, and requires an MCP agent token scoped to the owning account. This adds useful context not available from annotations.

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?

Three short, focused sentences front-load the purpose and include only essential extra warnings. No filler or redundant phrasing.

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?

For a 14-parameter tool, the description plus schema is largely sufficient. It highlights the critical replacement behavior and auth requirement, though it doesn't explicitly state partial-update semantics for non-price fields. No output schema exists, so return value info is absent but not mandatory.

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?

With 71% schema coverage and detailed property descriptions, the schema carries most parameter semantics. The description's note about 'prices' replacing all rows repeats the schema's own description, adding no new parameter meaning.

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?

The description states 'Update an existing pricing package on a Stay' with a specific verb and resource, clearly distinguishing it from sibling tools like createStayPackage and deleteStayPackage.

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?

It implies use on existing packages and mentions the auth prerequisite, but doesn't explicitly contrast with createStayPackage or state when not to use this tool. No alternatives are named.

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

updateStayRoomAInspect

Update an existing room on a Stay. Only fields supplied are changed. Call getRoomTypeOptions(stayId) and getRoomFacilityOptions() first to find valid roomTypeFK/roomFacilityFk values. Requires an MCP agent token scoped to the owning account.

ParametersJSON Schema
NameRequiredDescriptionDefault
bedsNo
roomIdYesThe room's EntryID (tbStaysRoom) — use getMyStayRooms to find it
stayIdYesThe Stay's EntryID
maxPersonNo
mcpRoomIdNoExternal MCP room identifier. NOT AVAILABLE for boutique Stays — the host UI has no field for this there, and the API will reject it.
roomTitleNo
roomTypeFKNoA roomTypeId from getRoomTypeOptions(stayId).
mainBedSizeNo
otherBedSizeNo
roomFacilityFkNoThe FULL replacement list of facilityDetailId values from getRoomFacilityOptions() — anything not included will be removed (except Wi-Fi, which is always kept).
roomDescriptionNo
Behavior4/5

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

With neutral annotations (no read-only or destructive hints), the description carries the burden of transparency. It discloses partial-update behavior ('Only fields supplied are changed') and the authentication requirement ('MCP agent token scoped to the owning account'). However, it does not mention the full-replacement semantics of roomFacilityFk (though that is in the schema), and it does not discuss any side effects beyond the update itself.

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?

The description is three sentences, each earning its place: purpose, update behavior, prerequisites/auth. It is front-loaded with the core action and maintains excellent brevity without sacrificing essential details.

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?

For a tool with 11 parameters and no output schema, the description covers the key aspects: what it does, partial update, prerequisites, and auth. It does not explain the return value, but that is not critical for a mutation tool. The guidance to call option-fetching endpoints before use addresses the most complex param dependencies, making it sufficiently complete.

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 description coverage is 45%, and the description adds value by directing users to the option-fetching endpoints for roomTypeFK and roomFacilityFk. It also clarifies that all non-required fields are optional via partial-update semantics. However, it does not help with the six params lacking schema descriptions (beds, maxPerson, roomTitle, mainBedSize, otherBedSize, roomDescription), leaving some semantics to inference from names.

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?

The description states 'Update an existing room on a Stay' with a specific verb and resource, clearly distinguishing from createStayRoom and deleteStayRoom. The additional 'Only fields supplied are changed' clarifies the partial-update semantics, making the tool's purpose unambiguous.

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?

The description provides clear context for when to use the tool, including the prerequisite calls to getRoomTypeOptions and getRoomFacilityOptions. It implicitly differentiates from sibling creation/deletion tools, though it stops short of explicitly stating when not to use it or naming alternatives. The prerequisite call guidance is valuable and earns a high score.

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

uploadStayPhotoAInspect

Upload a photo to one of your Stay's photo areas. Supply EXACTLY ONE of 'url' (a public https:// link, e.g. a Google Drive or Dropbox share link — the server downloads it) or 'base64' (the raw image bytes, base64-encoded — use this when you already have the image data in hand, e.g. a user attached a photo in the conversation, and have nowhere public to host it first). The photo is validated against the same minimum specs as a manual upload: JPEG, PNG, or WebP, under 20MB, and a minimum resolution that depends on area. Most areas require at least 1920x1080 landscape; 'host' requires at least 1080x1350 PORTRAIT — a landscape photo will be rejected for that area. Every upload is downscaled to fit within 2560x1440 and re-encoded server-side as WebP (stripping metadata and anything that isn't genuine image data) before storage. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoA public https:// URL the server can download the image from (e.g. a Google Drive or Dropbox share link). Supply this OR base64, not both.
areaYesWhich photo area this belongs to: - 'listing': general Stay gallery photos (multiple allowed, min 1920x1080 landscape) - 'main': the single hero/cover photo shown first for the Stay (min 1920x1080 landscape, replaces any existing main photo) - 'workspace': coworking/workspace photos for the whole Stay (multiple allowed, min 1920x1080 landscape) - 'host': a photo of the HOST/CONTACT PERSON, not the property — must be PORTRAIT orientation, min 1080x1350 (replaces any existing host photo) - 'room': photos for one specific room — requires roomId (multiple allowed, min 1920x1080 landscape)
base64NoBase64-encoded JPEG, PNG, or WebP image bytes (a data:image/...;base64,... URI prefix is also accepted and stripped automatically). Supply this OR url, not both. Under ~27MB encoded (20MB image).
roomIdNoRequired when area is 'room' — the room's EntryID (use getMyStayRooms to find it). Ignored for other areas.
stayIdYesThe Stay's EntryID (use getMyStays to find it)
Behavior5/5

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

Beyond the annotations (which only indicate a non-read-only mutation), the description discloses significant behavioral details: server-side downloading of URLs, validation specs (JPEG/PNG/WebP, under 20MB, resolution minimums), downscaling to 2560x1440, re-encoding as WebP, metadata stripping, and the required auth token. This gives the agent a complete picture of side effects and constraints.

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?

The description is front-loaded with the core purpose and then methodically covers input methods, validation, server-side transformations, and auth. Every sentence carries substantive information without repetition or filler. It is appropriately sized for the complexity of the operation.

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 the tool's complexity (multiple areas with different specs, two input modes, server-side processing) and the absence of an output schema, the description covers the operational details thoroughly. It doesn't mention the response format or error handling, but that is not critical given the rich input and transformation details. With no output schema, a bit more on expected return could push it to a 5.

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 input schema already covers all parameters with rich descriptions, so baseline is 3. The description adds value by explaining the 'EXACTLY ONE' constraint between url and base64, clarifying the base64 use case, and emphasizing the portrait requirement for the host area. However, it doesn't add much beyond what the schema already conveys about stayId or roomId, so not a 5.

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?

The description opens with a specific verb and resource: 'Upload a photo to one of your Stay's photo areas.' This clearly distinguishes the tool from sibling operations like deleteStayPhoto, reorderStayPhotos, and updateStayDetail, which manage other aspects.

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

Usage Guidelines5/5

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

The description explicitly explains when to use url vs base64, giving concrete scenarios: 'use this when you already have the image data in hand, e.g. a user attached a photo in the conversation, and have nowhere public to host it first.' It also specifies per-area requirements (e.g., host requires portrait) and conditions for roomId, providing clear guidance on correct usage.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Enables AI agents to search and explore remote job listings, salary stats, and popular roles, and supports token-authenticated actions like job alerts and apply redirects.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Search current remote / work-from-home jobs by category, region, perk, or company — with ready-to-apply links.
    5
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Enables users to search Airbnb listings using natural language, including flexible dates, guest counts, price range, property type, and amenities. It provides listing summaries and details but does not handle bookings.
    GPL 3.0

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.