Skip to main content
Glama

Match strokes

match_strokes
Read-onlyIdempotent

How many strokes each golfer gives or gets in a match and on which holes, with the course's stroke index: singles at 100 % or four-ball best ball at 90 %. Pass each golfer's handicap index and tee, or their course handicap, and the course. Without the course's hole handicaps it says how many strokes but not where: never guess the holes. Read-only.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "players": "<players>"
    },
    "name": "match_strokes"
  }
}

Input Schema

NameRequiredDescriptionDefault
courseNoThe course as the player writes it.
formatNosingles: one against one. fourball: pairs, best ball (90 %). Default singles.
layoutNoThe layout or loop, for courses with more than one.
playersYesThe golfers of the match, 2-4: in fourball, the first two are one pair.
course_idNoThe course id from get_course_info, when you have it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds value beyond them: it discloses the partial-result behaviour when course hole handicaps are missing and the hard warning "never guess the holes". It does not describe the shape of the returned allocation, which matters somewhat since there is no output schema.

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?

Front-loaded with the computation, then inputs, then the failure caveat — no filler sentences. The telegraphic phrasing ("never guess the holes") is effective but the colon-chained first sentence is slightly cramped for a first read.

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 5-parameter computation tool with no output schema, the description covers what is computed, what is returned (counts and holes), the input alternatives, the format percentages, and the missing-data fallback. An agent has everything needed to call it correctly and interpret the result.

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

Parameters5/5

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

Schema coverage is already 100%, yet the description adds real semantics: it explains that handicap_index and tee_color are an alternative route to course_handicap rather than both being required, and ties the format choice to the 100%/90% allowance. That either/or relationship is not obvious from the schema alone.

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

Purpose5/5

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

States a specific computation and its scope: strokes given/received per golfer and per hole, using the course's stroke index, with explicit format allowances (singles at 100%, four-ball best ball at 90%). That distinguishes it from neighbours like playing_handicap (a handicap conversion) and stableford (point scoring) without needing to open any schema.

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 concrete input paths ("Pass each golfer's handicap index and tee, or their course handicap, and the course") and a clear degradation rule when hole handicaps are unavailable. It lacks an explicit "use X instead" routing to siblings such as playing_handicap, so it stops short of full when/when-not guidance.

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.