Skip to main content
Glama

Duoly

List bookable services

list_services
Read-onlyIdempotent

Compare services with plain-language descriptions, from prices in EUR per unit, exact rank and region tokens and bookUrls. Share bookUrl so the user can book on Duoly.

Input Schema

NameRequiredDescriptionDefault
gameYesGame id or slug from list_games.

Output Schema

NameRequiredDescriptionDefault
urlYes
gameYes
servicesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / services / items / properties / bookUrl
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / services / items / properties / description
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / services / items / properties / fromPrice
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "amountMinor": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "basis": {
      +      "const": "base price before account perks",
      +      "type": "string"
      +    },
      +    "currency": {
      +      "const": "EUR",
      +      "type": "string"
      +    },
      +    "quantity": {
      +      "const": 1,
      +      "type": "number"
      +    },
      +    "unit": {
      +      "enum": [
      +        "game",
      +        "hour"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "amountMinor",
      +    "currency",
      +    "unit",
      +    "quantity",
      +    "basis"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / services / items / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "category",
      -  "unit",
      -  "ranks",
      -  "regions",
      -  "editions",
      -  "requiredInputs",
      -  "url"
      -]New value: +[
      +  "id",
      +  "name",
      +  "category",
      +  "description",
      +  "fromPrice",
      +  "unit",
      +  "ranks",
      +  "regions",
      +  "editions",
      +  "requiredInputs",
      +  "bookUrl",
      +  "url"
      +]
  2. First observed

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds behavioral context by directing the agent to surface bookUrl to the user for booking on Duoly, which is a genuinely useful action instruction, but it says nothing about ordering, result volume, or failure behavior.

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

Conciseness3/5

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

Two sentences, no filler, and the actionable booking instruction is placed at the end where it is likely to be read. However, the first sentence is a comma-spliced run-on that mixes output-field enumeration into the purpose statement, which reduces front-loading and readability.

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

Completeness3/5

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

With an output schema present, the description need not restate return values, and it is adequate for a one-parameter read tool. Gaps remain around how results are scoped and ordered and how this tool fits into the quote/availability/booking sibling workflow, which matters because those siblings are adjacent steps in the same flow.

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% and the single 'game' parameter is already documented in-schema as an id or slug from list_games. The description contributes no additional meaning about that parameter, so the baseline of 3 applies.

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

Purpose3/5

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

The description names the resource (services) but leads with the verb 'Compare' rather than stating plainly that it lists bookable services for a game, which is what the tool name implies. It does enumerate the meaningful output fields (EUR per-unit prices, rank and region tokens, bookUrls), giving an agent a decent sense of the payload, but it never frames the operation itself as a retrieval keyed by game.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer 'compare services, then share the bookUrl so the user can book.' There is no explicit when-to-use statement, no mention of when to prefer get_quote, get_availability, or find_session instead, and no statement of the prerequisite that the game id comes from list_games.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources