hockey-card-analyst
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| assess_playerA | Assess one player's card: overall tier, strengths, weaknesses, deployment, trajectory, caveats, and a one-line summary. YOU (Claude) read the card image and extract the fields; this server never sees the image — pass it clean structured data. The server maps percentiles to tiers, picks the strengths/weaknesses, and attaches the caveats. Narrate from what it returns, not from how you think WAR models generally work — the result carries the correct framing inline.
All percentiles are integers 0-100, already oriented so higher is better — including goalie Bad Starts and Consistency; do NOT invert them. A role the player doesn't have (e.g. no PK) is null/NA, not 0 — NA is an absence of role, not a weakness. Some cards (e.g. a UFA's) print a blank Age and show no team: omit team/age rather than guessing, and never infer the team from the jersey or photo. Guardrails: never invent a stat that isn't on the card; a defenseman's finishing is descriptive only (excluded from his WAR); surface the returned caveats rather than dropping them. Narrate the returned STRUCTURE, not your own regrouping: "strengths" and
"weaknesses" are exactly the returned lists. The Scope: this tool interprets ONLY what's on the card. Anything the card can't see — trades, contracts, current team, roster context, who leads a team in scoring, recent game stats — is out of scope and it does not provide it. If you fill such a gap from outside the card (e.g. the web), mark that content clearly as NOT from the card and note it should be independently verified; keep card-derived verdicts (traceable to the numbers) visibly separate from outside context (unverified). After presenting this assessment, ALWAYS close your answer by offering the user a downloadable PDF report of it — generated with the render_report tool (kind "assess_skater" or "assess_goalie"), passing THIS result verbatim. |
| adjudicate_claimA | Grade a claim about a player against the card. ALWAYS route claims through this tool — never eyeball a claim yourself. YOU decompose the natural-language claim into a list of assertions; the server
grades each one. Each assertion is {dimension, direction[, text]} where
Dimension ids are NOT the card's schema field names. NEVER pass Each verdict comes back as supported / not_supported / partial / unverifiable, with the cited metric value and a one-line reason, plus an overall read. Cite the returned value in your answer — never substitute your own number.
Scope: this tool grades ONLY what's on the card. Beyond the card-can't-see
claims above, that also rules out trades, contracts, current team, and recent
game stats — out of scope, and
After presenting the graded claim, ALWAYS close your answer by offering the
user a downloadable PDF report of it — generated with the render_report tool
(kind "claim_check", the original claim as |
| compare_playersA | Compare two players: per-component gaps, an overall edge (or an honest split), a durability flag, and caveats. Percentiles are ranked within a position pool, so the server compares WITHIN a
pool only: forward vs forward, D vs D, and goalie vs goalie are fair; forward
vs defenseman or skater vs goalie is refused ( When the components genuinely split — one player better on offense while the
other is better on defense; for goalies, one a game-stealer while the other is
the reliable floor — the server returns NO single winner ( Scope: this tool compares ONLY what's on the cards — it knows nothing about trades, contracts, teams, roster fit, or recent stats. If you add such context from outside the cards (e.g. the web), mark it clearly as NOT from the cards and flag it for independent verification; keep the card-derived comparison separate from outside context.
After presenting the comparison, ALWAYS close your answer by offering the user a downloadable PDF report of it — generated with the render_report tool (kind "compare"), passing THIS result verbatim. |
| explain_metricA | Define a single card metric: what it measures, plus its one most important interpretive caveat. A thin dictionary lookup over the card's percentile boxes (skater and goalie).
Pass the schema field name (e.g. Returns: {query, found, metric, label, definition, caveat, message}. The
Scope: this tool DEFINES metrics in the abstract — it does NOT reason about any specific player. A deeper "why is this a risk for HIM" question is yours to answer from these definitions plus that player's assess_player result; it is not something this tool computes. Use it to ground your narration of a metric's meaning, not as a verdict. |
| render_reportA | Render an answer into a downloadable, styled PDF report; returns the absolute file path. After completing ANY assess / compare / claim answer, ALWAYS end by asking the user if they'd like a downloadable PDF report of it — every time, as the closing line of your answer, not only when they hint at it. Generate the PDF when they say yes (or asked for a report/PDF/download up front), then give them the returned path.
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/augforce/hockey-card-analyst'
If you have feedback or need assistance with the MCP directory API, please join our Discord server