Skip to main content
Glama

Shot map

get_shot_map
Read-onlyIdempotent

Use for a shot map: a club's shots (or, with against, the shots it conceded), a player's, or one match's, for a season (default: the latest). Returns totals and zones (six-yard box, penalty area, outside the box, penalties) with goals, shots on target, xG and conversion, and every located shot with its x/y, end point, outcome and xG. Costs 10 credits.

Input Schema

NameRequiredDescriptionDefault
teamNoClub id, abbreviation or name.
leagueNoLeague. Defaults to soccer. One of: soccer, mls, laliga, seriea, bundesliga, ligue1, ucl, championship, nwsl, ligamx, uel, uecl, eredivisie, primeira, scotland, brazil, argentina.
playerNoPlayer id (search_players).
seasonNoSeason by the year it starts (default: the latest).
againstNoWith team: the shots it conceded.
game_idNoOne match instead of a season.
include_shotsNofalse = totals and zones only.

Output Schema

NameRequiredDescriptionDefault
noteNo
shotsNo
zonesYes
seasonYes
totalsYes
shots_noteNo
shots_totalYes
unlocated_shotsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and closed-world, so the description's added value is the response shape (totals, zones, per-shot coordinates) and, importantly, the 10-credit cost — a real behavioral constraint absent from every structured field. It does not state rate limits or behavior when no scope parameter is supplied.

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?

Two sentences, front-loaded with scope then output, no filler. The opening "Use for a shot map:" lightly restates the title, and the dense parenthetical lists make it harder to scan than it needs to be, but nothing is wasted.

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 an output schema present the description didn't need to enumerate return fields, yet the extra detail is accurate and useful for choosing the tool. The one real gap is that all seven parameters are optional and the description never says what the default scope is when none are passed.

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 earns above that by explaining the interaction between `team` and `against` and by connecting `include_shots` to the presence of "every located shot" in the output. It still doesn't resolve the zero-required-parameter case (what happens if neither team, player nor game_id is given).

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 an explicit verb+resource ("Use for a shot map") and then enumerates the three scoping modes: a club's shots, a player's shots, or one match's shots, with the `against` inversion called out. An agent knows exactly what data product it is requesting and what each scope yields.

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 reach for this tool and names the season default ("default: the latest"), plus the `against` variant. It does not point to a competing sibling (e.g. get_team_stats or get_events) or say when this tool is the wrong choice, so it falls short of full routing 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.