Skip to main content
Glama

Project handicap

project_handicap
Read-onlyIdempotent

Hándicap explicado y proyectado con la cuenta WHS hecha en código (nunca la hagas tú): sus últimos 20 diferenciales oficiales, los 8 que cuentan y cuál sale de la ventana con la próxima vuelta. Solo muestra umbrales si la reconstrucción coincide con el oficial (forecast.shown); si no, explica el bloqueo sin calcular un sustituto. scope=next_round: estima UNA próxima vuelta, nunca una secuencia de torneos ni una regla permanente. Con course_id y la barra devuelve brutos ajustados orientativos, y con target_index el bruto objetivo. Si devuelve tee_required, pregunta la barra con las opciones de tees.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "project_handicap"
  }
}

Input Schema

NameRequiredDescriptionDefault
genderNoM or F, for the tees' ratings.
layoutNoRecorrido, si el campo tiene varios (de las opciones de tee_required).
tee_idNoThe tees on that course; asked for when the answer says tee_required.
course_idNoA course, to get indicative adjusted gross targets there.
tee_colorNoColor de la barra tal como lo dice el jugador: amarillas, blancas, rojas…
target_indexNoA handicap index to aim for, -10 to 54: returns the gross score that would reach it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / course_id / description
      Added value: +"A course, to get indicative adjusted gross targets there."
    • addedInput schema / properties / gender / description
      Added value: +"M or F, for the tees' ratings."
    • addedInput schema / properties / target_index / description
      Added value: +"A handicap index to aim for, -10 to 54: returns the gross score that would reach it."
    • addedInput schema / properties / tee_id / description
      Added value: +"The tees on that course; asked for when the answer says tee_required."
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Beyond the readOnly/idempotent/non-destructive annotations, it discloses a real behavioral rule: thresholds are only shown when the reconstruction matches the official figure (forecast.shown), and otherwise the block is explained without fabricating a substitute. That is meaningful context the annotations cannot convey. It says nothing about latency, data freshness, or failure modes for players with fewer than 20 differentials, which keeps it short of a 5.

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?

Dense but front-loaded: the core capability, then the forecast.shown gating rule, then the scope limit, then the conditional parameter behaviors. Every clause carries information, though the single long first sentence packs three distinct facts and would read better split.

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 six all-optional parameters and no output schema, the description carries the return-value burden well: it names what comes back (20 differentials, the 8 counting, the one exiting the window, adjusted gross targets, target gross) and explains the tee_required branch. The reference to forecast.shown is unexplained as a field name, and the behavior for players lacking a full 20-round history is not addressed.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds relationships the schema does not: course_id plus the tee yields indicative adjusted gross scores, target_index yields the gross score needed to reach that index, and tee_id/layout/tee_color only become relevant after a tee_required response. That interplay is genuine added meaning, though the individual field meanings are already in the schema.

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

Purpose4/5

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

States a specific verb and resource with unusual precision: handicap explained and projected using the WHS calculation performed in code, returning the last 20 differentials, the 8 that count, and which one leaves the window on the next round. This clearly separates it from a static handicap read, but it never names the obvious siblings (get_handicap, playing_handicap, plays_like), so the agent must infer the boundary itself.

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

Usage Guidelines4/5

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

Gives explicit scope limits: scope=next_round estimates ONE upcoming round, never a sequence of tournaments or a permanent rule, and it forbids the agent from doing the math itself. It also prescribes the follow-up flow when tee_required is returned (ask for the tee with the offered options). The missing piece is an explicit comparison to get_handicap or playing_handicap for when the user just wants the current index.

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.