Skip to main content
Glama

MYOPL MCP Server - Official Pickleball Rules & Ratings

Find Pickleball Places to Play

prepare_pickleball_browse
Read-onlyIdempotent

Find public MYOPL pickleball courts, clubs and open play league listings for a city, state or country. Returns up to five listings with source links for a selected category, or category choices when none is selected. Live availability and bookings are not included.

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": {
      "location": "<location>"
    },
    "name": "prepare_pickleball_browse"
  }
}

Input Schema

NameRequiredDescriptionDefault
categoryNoDirectory category; no category returns available 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.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / category / description
      Previous value: -"Directory category to search. Omit to offer category choices; sessions and leaderboards return public league listings."New value: +"Directory category; no category returns available choices. Sessions and leaderboards return public league listings."
    • changedInput schema / properties / location / description
      Previous value: -"City, state or country to search, such as Jupiter, FL. Clarify ambiguous locations with the user."New value: +"City, state or country to search, such as Jupiter, FL."
  2. 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"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "courts",
      -  "clubs",
      -  "sessions"
      -]New value: +[
      +  "courts",
      +  "clubs",
      +  "sessions",
      +  "leaderboards"
      +]
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description discloses the result cap ('up to five listings'), that listings carry source links, the two-mode return (listings vs. category choices), and an explicit scope limitation (no live availability or bookings). It omits any note on rate limits, auth, or what 'prepare' implies about follow-up steps, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what is found and where, then the return shape, then the exclusion. Every clause carries information; nothing is restated from the title or schema verbatim in a wasteful way.

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 needn't spell out return fields, and for a 3-parameter read-only search it covers purpose, scope, and limits adequately. The gap is the 'prepare_' prefix, which hints at a preparation or follow-up step that the description never explains, leaving a small ambiguity about whether a second call is expected.

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 coverage is 100% and the enum descriptions already explain category values, the no-category behavior, language codes, and the location format. The description reinforces category behavior and the five-listing cap but adds no new syntax or format guidance, so the baseline 3 applies.

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 ('Find') and a specific resource ('public MYOPL pickleball courts, clubs and open play league listings') plus the scoping input (city, state or country). The resource is clearly distinct from the sibling tools (ratings, help, website search, rules), so an agent can route correctly without opening a 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?

Usage context is clear: use it for a geographic lookup, and if no category is selected it returns category choices rather than listings, which tells the agent how to bootstrap. It also states an exclusion ('live availability and bookings are not included'), but it never names an alternative tool for bookings or availability, so the routing guidance stops short of explicit when-not/use-instead.

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