Skip to main content
Glama

MYOPL Personal MCP - Pickleball Ratings & Statistics

get_my_statistics_card

Read-onlyIdempotent

Retrieve your own private singles and doubles statistics card when asked for games, points, opponents or reliability. The get_my_rating tool already includes this card when statistics access is granted: do not call both tools for the same rating question. Include the public rating-card totals and a MYOPL source link in the reply.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / description
      Added value: +"No arguments. MYOPL uses the account connected through OAuth."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "description": "MYOPL structured response for get_my_statistics_card.",
      +  "oneOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "card_type": {
      +          "const": "myopl_rating",
      +          "description": "Type of the accompanying MYOPL card.",
      +          "type": "string"
      +        },
      +        "doubles": {
      +          "additionalProperties": false,
      +          "description": "Doubles rating and public card totals. Games are distinct from matches.",
      +          "properties": {
      +            "games_lost": {
      +              "description": "Games lost in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "games_played": {
      +              "description": "Games played in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "games_won": {
      +              "description": "Games won in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "points_lost": {
      +              "description": "Points lost in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "points_won": {
      +              "description": "Points won in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "rating": {
      +              "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "reliability_score": {
      +              "description": "Reliability Score from 0 to 100; null means unavailable.",
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "status": {
      +              "description": "Whether a published rating exists.",
      +              "enum": [
      +                "rated",
      +                "unrated"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "rating",
      +            "status",
      +            "reliability_score",
      +            "games_played",
      +            "games_won",
      +            "games_lost",
      +            "points_won",
      +            "points_lost"
      +          ],
      +          "type": "object"
      +        },
      +        "doubles_opl": {
      +          "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "found": {
      +          "const": true,
      +          "description": "Whether an accessible player with this exact username was found.",
      +          "type": "boolean"
      +        },
      +        "guidance": {
      +          "description": "Instructions for citing and interpreting the public rating totals.",
      +          "type": "string"
      +        },
      +        "messenger_url": {
      +          "description": "Player's unique MYOPL Messenger invitation link.",
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "singles": {
      +          "additionalProperties": false,
      +          "description": "Singles rating and public card totals. Games are distinct from matches.",
      +          "properties": {
      +            "games_lost": {
      +              "description": "Games lost in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "games_played": {
      +              "description": "Games played in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "games_won": {
      +              "description": "Games won in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "points_lost": {
      +              "description": "Points lost in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "points_won": {
      +              "description": "Points won in this format; null means unknown and zero means a known zero total.",
      +              "minimum": 0,
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "rating": {
      +              "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "reliability_score": {
      +              "description": "Reliability Score from 0 to 100; null means unavailable.",
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "status": {
      +              "description": "Whether a published rating exists.",
      +              "enum": [
      +                "rated",
      +                "unrated"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "rating",
      +            "status",
      +            "reliability_score",
      +            "games_played",
      +            "games_won",
      +            "games_lost",
      +            "points_won",
      +            "points_lost"
      +          ],
      +          "type": "object"
      +        },
      +        "singles_opl": {
      +          "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "source": {
      +          "const": "MYOPL",
      +          "description": "Source platform.",
      +          "type": "string"
      +        },
      +        "source_url": {
      +          "description": "MYOPL rating reference to cite in the answer.",
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "sport": {
      +          "const": "pickleball",
      +          "description": "Sport for these ratings.",
      +          "type": "string"
      +        },
      +        "summary": {
      +          "description": "MYOPL rating and statistics summary for the text reply.",
      +          "type": "string"
      +        },
      +        "username": {
      +          "description": "Exact MYOPL player username.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "found",
      +        "source",
      +        "source_url",
      +        "summary",
      +        "card_type",
      +        "username",
      +        "sport",
      +        "singles_opl",
      +        "doubles_opl",
      +        "singles",
      +        "doubles",
      +        "messenger_url",
      +        "guidance"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "error": {
      +          "description": "Tool execution or argument error; the enclosing result has isError set to true.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "error"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds meaningful context beyond them: the card is private and gated on statistics access being granted, and it instructs the agent to include the public rating-card totals and a MYOPL source link in the reply.

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?

Three sentences, front-loaded with the purpose and followed by the routing rule and output guidance; no wasted wording. The final presentation directive is somewhat unusual but still earns its place by shaping the reply.

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?

With no parameters, an output schema present, and full annotation coverage, the description supplies everything the agent needs: trigger conditions, the sibling conflict to avoid, auth gating, and reply-format guidance. Nothing material is missing.

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?

The tool takes zero arguments, and the schema states that MYOPL uses the OAuth-connected account, which is the baseline 4 for a parameterless tool. There is no additional parameter syntax the description could add.

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 verb (Retrieve) and resource (your own private singles and doubles statistics card) and explicitly distinguishes itself from the sibling get_my_rating by noting that tool already includes this card. An agent can route between the two without inspecting either schema.

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

Usage Guidelines5/5

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

Gives explicit triggers ('when asked for games, points, opponents or reliability') and an explicit when-not/alternative rule ('do not call both tools for the same rating question'). This is exactly the when/when-not/alternative structure the dimension rewards.

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