Skip to main content
Glama

MYOPL MCP Server - Official Pickleball Rules & Ratings

prepare_pickleball_browse

Read-onlyIdempotent

Offer courts to play at, clubs to join, or open play sessions for a named city, state or country. Returns up to five public directory listings with MYOPL links when a category is chosen, or structured choices otherwise. Does not verify live availability or join/book anything.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNoDirectory category to search. Omit to offer category choices; sessions and leaderboards return public league listings.
languageNoLanguage for MYOPL content and labels: en for English or es for Spanish.en
locationYesCity, state or country to search, such as Jupiter, FL. Clarify ambiguous locations with the user.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / description
      Added value: +"Arguments for prepare_pickleball_browse."
    • addedInput schema / properties / category / description
      Added value: +"Directory category to search. Omit to offer category choices; sessions and leaderboards return public league listings."
    • addedInput schema / properties / language / description
      Added value: +"Language for MYOPL content and labels: en for English or es for Spanish."
    • addedInput schema / properties / location / description
      Added value: +"City, state or country to search, such as Jupiter, FL. Clarify ambiguous locations with the user."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "description": "MYOPL structured response for prepare_pickleball_browse.",
      +  "oneOf": [
      +    {
      +      "additionalProperties": false,
      +      "allOf": [
      +        {
      +          "if": {
      +            "properties": {
      +              "status": {
      +                "enum": [
      +                  "results",
      +                  "no_results"
      +                ]
      +              }
      +            }
      +          },
      +          "then": {
      +            "required": [
      +              "selection",
      +              "results",
      +              "has_more"
      +            ]
      +          }
      +        }
      +      ],
      +      "properties": {
      +        "choices": {
      +          "description": "Available MYOPL Browse categories.",
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "browse_section": {
      +                "description": "Corresponding MYOPL Browse section.",
      +                "enum": [
      +                  "courts",
      +                  "clubs",
      +                  "opls"
      +                ],
      +                "type": "string"
      +              },
      +              "id": {
      +                "description": "Category accepted by the browse tool.",
      +                "enum": [
      +                  "courts",
      +                  "clubs",
      +                  "sessions"
      +                ],
      +                "type": "string"
      +              },
      +              "label": {
      +                "description": "Localized category label.",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "label",
      +              "browse_section"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "guidance": {
      +          "description": "Instructions for citing and interpreting directory listings.",
      +          "type": "string"
      +        },
      +        "has_more": {
      +          "description": "More listings matched than were returned; narrow the location to refine results.",
      +          "type": "boolean"
      +        },
      +        "language": {
      +          "description": "Language of the response.",
      +          "enum": [
      +            "en",
      +            "es"
      +          ],
      +          "type": "string"
      +        },
      +        "location": {
      +          "description": "Normalized city, state or country supplied by the caller.",
      +          "type": "string"
      +        },
      +        "results": {
      +          "description": "Public listings for the selected category.",
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "access": {
      +                "description": "Published listing access; null means unspecified.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "amenities": {
      +                "description": "Amenities recorded for the location.",
      +                "items": {
      +                  "description": "Published amenity identifier.",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "city": {
      +                "description": "Published listing city; null means unspecified.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "country": {
      +                "description": "Published listing country; null means unspecified.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "court_count": {
      +                "description": "Published court count. Zero is a known zero count.",
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "description": {
      +                "description": "Published listing description; null means unspecified.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "entity_type": {
      +                "description": "Type of public directory listing.",
      +                "enum": [
      +                  "location",
      +                  "club",
      +                  "league"
      +                ],
      +                "type": "string"
      +              },
      +              "indoor_courts": {
      +                "description": "Published indoor courts. Zero is a known zero count.",
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "leaderboard_status": {
      +                "const": "not_published",
      +                "description": "Whether public standings are supplied.",
      +                "type": "string"
      +              },
      +              "leaderboard_url": {
      +                "description": "Public standings URL when provided; null means none was returned.",
      +                "type": "null"
      +              },
      +              "location": {
      +                "additionalProperties": false,
      +                "description": "Public location linked to this league.",
      +                "properties": {
      +                  "city": {
      +                    "description": "City.",
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "country": {
      +                    "description": "Country.",
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "name": {
      +                    "description": "Public court or location name.",
      +                    "type": "string"
      +                  },
      +                  "public_url": {
      +                    "description": "MYOPL location page.",
      +                    "format": "uri",
      +                    "type": "string"
      +                  },
      +                  "region": {
      +                    "description": "State or region.",
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "name",
      +                  "city",
      +                  "region",
      +                  "country",
      +                  "public_url"
      +                ],
      +                "type": "object"
      +              },
      +              "locations": {
      +                "description": "Public locations linked to this club.",
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "city": {
      +                      "description": "City.",
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "country": {
      +                      "description": "Country.",
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "name": {
      +                      "description": "Public court or location name.",
      +                      "type": "string"
      +                    },
      +                    "public_url": {
      +                      "description": "MYOPL location page.",
      +                      "format": "uri",
      +                      "type": "string"
      +                    },
      +                    "region": {
      +                      "description": "State or region.",
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "name",
      +                    "city",
      +                    "region",
      +                    "country",
      +                    "public_url"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "name": {
      +                "description": "Listing display name.",
      +                "type": "string"
      +              },
      +              "nets": {
      +                "description": "Published listing nets; null means unspecified.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "outdoor_courts": {
      +                "description": "Published outdoor courts. Zero is a known zero count.",
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "public_url": {
      +                "description": "MYOPL listing page to cite.",
      +                "format": "uri",
      +                "type": "string"
      +              },
      +              "region": {
      +                "description": "Published listing region; null means unspecified.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "session_availability_checked": {
      +                "const": false,
      +                "description": "Whether live session availability was checked for this listing.",
      +                "type": "boolean"
      +              },
      +              "slug": {
      +                "description": "Public listing identifier.",
      +                "type": "string"
      +              },
      +              "source": {
      +                "const": "MYOPL",
      +                "description": "Source platform.",
      +                "type": "string"
      +              },
      +              "sport_type": {
      +                "const": "pickleball",
      +                "description": "Listing sport.",
      +                "type": "string"
      +              },
      +              "surface": {
      +                "description": "Published listing surface; null means unspecified.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "entity_type",
      +              "sport_type",
      +              "slug",
      +              "name",
      +              "public_url",
      +              "source"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 5,
      +          "type": "array"
      +        },
      +        "selection": {
      +          "additionalProperties": false,
      +          "description": "Present when a category was selected.",
      +          "properties": {
      +            "browse_section": {
      +              "description": "MYOPL Browse section.",
      +              "enum": [
      +                "courts",
      +                "clubs",
      +                "opls"
      +              ],
      +              "type": "string"
      +            },
      +            "category": {
      +              "description": "Selected category.",
      +              "enum": [
      +                "courts",
      +                "clubs",
      +                "sessions",
      +                "leaderboards"
      +              ],
      +              "type": "string"
      +            },
      +            "query": {
      +              "description": "Normalized location used for this search.",
      +              "type": "string"
      +            },
      +            "sport": {
      +              "const": "pickleball",
      +              "description": "Selected sport.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "category",
      +            "browse_section",
      +            "query",
      +            "sport"
      +          ],
      +          "type": "object"
      +        },
      +        "source": {
      +          "const": "MYOPL",
      +          "description": "Source platform.",
      +          "type": "string"
      +        },
      +        "source_url": {
      +          "description": "MYOPL court and club directory.",
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "spoken_reply": {
      +          "description": "Browse choices or result summary with MYOPL links.",
      +          "type": "string"
      +        },
      +        "sport": {
      +          "const": "pickleball",
      +          "description": "Sport being searched.",
      +          "type": "string"
      +        },
      +        "status": {
      +          "description": "Whether a category choice is needed or a search returned listings.",
      +          "enum": [
      +            "choice_required",
      +            "results",
      +            "no_results"
      +          ],
      +          "type": "string"
      +        },
      +        "version": {
      +          "const": 1,
      +          "description": "Browse response format version.",
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "version",
      +        "location",
      +        "language",
      +        "sport",
      +        "spoken_reply",
      +        "choices",
      +        "status",
      +        "guidance",
      +        "source",
      +        "source_url"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "error": {
      +          "description": "Tool execution or argument error; the enclosing result has isError set to true.",
      +          "type": "string"
      +        },
      +        "myopl_url": {
      +          "description": "MYOPL website.",
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "source": {
      +          "const": "MYOPL",
      +          "description": "Source platform.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "error",
      +        "source",
      +        "myopl_url"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "courts",
      -  "clubs",
      -  "sessions"
      -]New value: +[
      +  "courts",
      +  "clubs",
      +  "sessions",
      +  "leaderboards"
      +]
  3. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely new behavior: a cap of five public directory listings, MYOPL links returned when a category is supplied, structured choices otherwise, and the explicit caveat about unverified live availability. Auth requirements and rate limits are unstated, keeping it below 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?

Three sentences, front-loaded with the resource and scope, then the return shape, then the explicit non-capability. Every sentence carries information and there is no filler; the middle sentence packs links, cap size, and the no-category branch into one dense clause, which is efficient if slightly compressed.

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 need not explain return values, yet it helpfully summarizes the listing/choice shape. Combined with annotations covering read-only and safety semantics, the definition gives an agent enough to call the tool correctly; only auth/prerequisite context is absent, which is minor for a public directory read.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents location, category enums, and language. The description's 'when a category is chosen' versus 'structured choices otherwise' loosely reinforces the category-omission behavior the schema already describes, but adds no new syntax, format, or constraint details. Baseline 3 applies.

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?

The description states a concrete verb-and-resource pair ('Offer courts to play at, clubs to join, or open play sessions') scoped to a named location, so an agent knows exactly what it retrieves. It is distinguishable from all four sibling search/rating/help tools, none of which browse pickleball directories. The 'prepare_' prefix is slightly opaque, but the body resolves it.

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 gives a clear negative boundary: 'Does not verify live availability or join/book anything,' which tells the agent this is a discovery step, not a transaction or reservation step. It stops short of naming a follow-up or alternative tool for booking or for detailed lookup, so it is clear context rather than a full when-to-use routing instruction.

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