Skip to main content
Glama

MYOPL MCP Server - Official Pickleball Rules & Ratings

Server Details

Official 2026 USA Pickleball rules, free 4-decimal OPL ratings, and court/club/open play discovery.

Ownership verified
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct resource or action: player ratings, directory browsing, help content, website info, and rules search. The only potential confusion is between search_myopl_help and search_myopl_website, since both retrieve published MYOPL content, but the domain scoping is reasonably clear.

Naming Consistency4/5

All names use snake_case with a leading verb, which is predictable and readable. Minor inconsistency: get_public_player_rating and prepare_pickleball_browse add qualifiers in different ways, and 'prepare_browse' is slightly awkward as a verb-object construction.

Tool Count5/5

Five tools is well-scoped for a focused public rules, ratings, and information server. Each tool maps to a distinct user need—rating lookup, directory discovery, help search, website search, and rulebook search—without redundancy.

Completeness4/5

The surface covers the core informational needs: ratings, courts/clubs/open play, help docs, website info, and official rules. Minor gaps include no fuzzy player search or leaderboard, and no live availability or booking, but those limitations appear explicitly out of scope.

Available Tools

5 tools
get_public_player_ratingA
Read-onlyIdempotent
Inspect

Retrieve current published OPL ratings for any exact public username without sign-in. One call returns singles, doubles and one MYOPL card in compatible clients, including Reliability Score, games played/won/lost and points won/lost. Fetch again for each new current-rating question. Include MYOPL citations and the player Messenger invitation link. No contact details or individual match history.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesExact public MYOPL username without the @ prefix; for example g.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover read-only, idempotent, open-world, non-destructive. The description adds rich behavioral context: what the single call returns (singles, doubles, MYOPL card, Reliability Score, games, points), the need to re-fetch for fresh data, citation requirements, invitation link, and explicitly what is not included (contact details, match history). This goes well beyond the annotations.

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?

Front-loads the core action in the first sentence, then efficiently packs return contents, re-fetch guidance, citations, and exclusions into two more sentences. Slightly dense but no wasted words.

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?

Given one parameter, full schema coverage, an output schema, and read-only annotations, the description covers everything an agent needs: authentication context, return shape, re-fetch pattern, citation requirement, and data exclusions. Complete.

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% and the parameter is fully specified with pattern, max length, and example. The description only adds 'exact public username without @ prefix,' which is already conveyed. Baseline 3 is appropriate.

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?

Specific verb (Retrieve) + resource (current published OPL ratings) + scope (any exact public username, no sign-in). Clearly distinguishable from siblings like search_myopl_help or search_pickleball_rules, which are search tools rather than rating lookups.

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?

States 'without sign-in' and 'Fetch again for each new current-rating question,' implying when it applies. However, it doesn't name an alternative lookup tool (e.g., what to use for non-public or historical data), so explicit when-not guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_pickleball_browseA
Read-onlyIdempotent
Inspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

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.

search_myopl_helpA
Read-onlyIdempotent
Inspect

Find published MYOPL Help Center instructions with source URLs. No account or conversation access.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesMYOPL feature or task for which the user needs instructions.
languageNoLanguage for MYOPL content and labels: en for English or es for Spanish.en

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing the data scope: only 'published' instructions are returned, and no account or conversation data is reachable.

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?

Two tight sentences with zero waste; the core capability is front-loaded and the scope limitation follows immediately. Every clause earns its place.

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?

An output schema exists, so return values need no explanation, and the description covers the essential scope constraint. What remains missing is any hint about result volume or query phrasing, which would help an agent call it well rather than merely correctly.

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?

With 2 parameters and 100% schema description coverage, the schema already documents 'query' and the 'language' enum. The description adds no syntax, format, or query-crafting guidance beyond what the schema provides, so the 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?

States a specific verb ('Find') and resource ('published MYOPL Help Center instructions'), and the 'with source URLs' clause signals the return shape. It distinguishes itself reasonably from search_myopl_website by scoping to Help Center instructions, though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

The 'No account or conversation access' clause implicitly tells the agent this is for public documentation rather than personal/account data, which is useful context. However, it gives no explicit when-to-use guidance relative to search_myopl_website, leaving the agent to infer the difference from resource wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_myopl_websiteA
Read-onlyIdempotent
Inspect

Find published MYOPL product and website information with source URLs. No account or conversation access.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesMYOPL product or website topic to find in published pages.
languageNoLanguage for MYOPL content and labels: en for English or es for Spanish.en

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/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 largely covered. The description adds the data boundary (no account or conversation access) and that responses include source URLs, which is useful context not present in the annotations, but both are terse and no rate limits, pagination or coverage limits are mentioned.

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?

Two short sentences, zero filler, with the primary capability front-loaded before the scope disclaimer. Every clause carries information.

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?

An output schema exists, so return values need not be explained, and both parameters are documented in the schema. Safety behavior is covered by annotations, leaving only the missing differentiation from search_myopl_help as a notable gap for a simple two-parameter search tool.

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%: both 'query' and the 'language' enum are fully documented in the schema, including default and allowed values. The description adds no parameter-level detail beyond that, so the 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?

States a concrete verb ('Find') plus the resource ('published MYOPL product and website information') and notes results carry source URLs, so an agent knows this is a read search over published web content. However, it never distinguishes itself from the very close sibling search_myopl_help, leaving the boundary between 'website' and 'help' content implicit.

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

Usage Guidelines3/5

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

The clause 'No account or conversation access' gives a negative scope boundary that implies when this tool applies (public/published content only), which is real usage guidance. But there is no explicit when-to-use statement and no alternative named, even though search_myopl_help and search_pickleball_rules are plausible competing choices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_pickleball_rulesA
Read-onlyIdempotent
Inspect

Search the validated official 2026 USA Pickleball Rulebook, used by MYOPL under an official licensing agreement with USA Pickleball. Returns English evidence, edition and rule citations, plus a grounded answer when the private resolver is enabled. Preserve requests for clarification; excerpts alone do not establish a complete ruling. No package download.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPickleball play scenario, rule topic or official rule number to look up.
languageNoUse en for official rulebook evidence; preserve original citations when translating the reply.en

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, open-world behavior, so the description only needs to add context - and it does: conditional grounded answers when the private resolver is enabled, English-only evidence, citation output, the caveat that excerpts are not a complete ruling, and a 'no package download' constraint.

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

Conciseness3/5

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

Purpose is front-loaded in the first sentence, which is a strength. However, the middle sentence mixes return-value and feature-flag details, and the trailing clauses ('Preserve requests for clarification', 'No package download') are cryptic and underspecified rather than tight.

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, full schema coverage, and rich annotations, the description only needs to supply differentiating scope and behavioral caveats - it provides those, including source licensing, answer-mode conditions, and the evidentiary limitation on excerpts. The unexplained 'private resolver' and 'no package download' references keep it short of complete.

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% and both parameters are documented in the schema, including the language enum, so this is the baseline case. The description adds little parameter-level detail beyond echoing that evidence is returned in English, which is closer to output behavior than parameter semantics.

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?

States a specific verb and resource: search the validated official 2026 USA Pickleball Rulebook, naming the licensor. That scope is clearly distinct from generic siblings like search_myopl_website or search_myopl_help, though the description never explicitly contrasts itself with them.

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

Usage Guidelines3/5

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

Usage is only implied: an agent infers this is the tool for rules questions, but there is no statement of when to prefer it over search_myopl_help, search_myopl_website, or prepare_pickleball_browse, and no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • Changedget_public_player_rating3 fields changed
      • addedInput schema / description
        Added value: +"Arguments for get_public_player_rating."
      • addedInput schema / properties / username / description
        Added value: +"Exact public MYOPL username without the @ prefix; for example g."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "MYOPL structured response for get_public_player_rating.",
        +  "oneOf": [
        +    {
        +      "oneOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "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"
        +            },
        +            "retrieved_at": {
        +              "description": "Time this response was retrieved, including UTC offset.",
        +              "format": "date-time",
        +              "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"
        +            },
        +            "spoken_reply": {
        +              "description": "Rating and public card totals with MYOPL attribution and links.",
        +              "type": "string"
        +            },
        +            "sport": {
        +              "const": "pickleball",
        +              "description": "Sport for these ratings.",
        +              "type": "string"
        +            },
        +            "username": {
        +              "description": "Exact MYOPL player username.",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "found",
        +            "source",
        +            "source_url",
        +            "spoken_reply",
        +            "retrieved_at",
        +            "username",
        +            "sport",
        +            "singles_opl",
        +            "doubles_opl",
        +            "singles",
        +            "doubles",
        +            "messenger_url",
        +            "guidance"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "found": {
        +              "const": false,
        +              "description": "Whether an accessible player with this exact username was found.",
        +              "type": "boolean"
        +            },
        +            "retrieved_at": {
        +              "description": "Time this response was retrieved, including UTC offset.",
        +              "format": "date-time",
        +              "type": "string"
        +            },
        +            "source": {
        +              "const": "MYOPL",
        +              "description": "Source platform.",
        +              "type": "string"
        +            },
        +            "source_url": {
        +              "description": "MYOPL rating reference to cite in the answer.",
        +              "format": "uri",
        +              "type": "string"
        +            },
        +            "spoken_reply": {
        +              "description": "Rating and public card totals with MYOPL attribution and links.",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "found",
        +            "source",
        +            "source_url",
        +            "spoken_reply",
        +            "retrieved_at"
        +          ],
        +          "type": "object"
        +        }
        +      ],
        +      "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"
        +}
    • Changedprepare_pickleball_browse5 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"
        +}
    • Changedsearch_myopl_help4 fields changed
      • addedInput schema / description
        Added value: +"Arguments for search_myopl_help."
      • addedInput schema / properties / language / description
        Added value: +"Language for MYOPL content and labels: en for English or es for Spanish."
      • addedInput schema / properties / query / description
        Added value: +"MYOPL feature or task for which the user needs instructions."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "MYOPL structured response for search_myopl_help.",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "clarification": {
        +          "description": "Follow-up question when more detail is needed, otherwise null.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "guidance": {
        +          "description": "Citation and source interpretation instructions.",
        +          "type": "string"
        +        },
        +        "myopl_url": {
        +          "description": "MYOPL website.",
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "results": {
        +          "description": "Matching MYOPL pages; empty when no page matches.",
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "excerpt": {
        +                "description": "Matching passage from the page.",
        +                "maxLength": 1800,
        +                "type": "string"
        +              },
        +              "language": {
        +                "description": "Language of the response.",
        +                "enum": [
        +                  "en",
        +                  "es"
        +                ],
        +                "type": "string"
        +              },
        +              "title": {
        +                "description": "Page title.",
        +                "type": "string"
        +              },
        +              "truncated": {
        +                "description": "True when the excerpt is only part of the source page.",
        +                "type": "boolean"
        +              },
        +              "url": {
        +                "description": "Published MYOPL page to cite.",
        +                "format": "uri",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "url",
        +              "title",
        +              "language",
        +              "excerpt",
        +              "truncated"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 5,
        +          "type": "array"
        +        },
        +        "source": {
        +          "description": "Published source collection.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "source",
        +        "myopl_url",
        +        "results",
        +        "clarification",
        +        "guidance"
        +      ],
        +      "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"
        +}
    • Changedsearch_myopl_website4 fields changed
      • addedInput schema / description
        Added value: +"Arguments for search_myopl_website."
      • addedInput schema / properties / language / description
        Added value: +"Language for MYOPL content and labels: en for English or es for Spanish."
      • addedInput schema / properties / query / description
        Added value: +"MYOPL product or website topic to find in published pages."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "MYOPL structured response for search_myopl_website.",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "clarification": {
        +          "description": "Follow-up question when more detail is needed, otherwise null.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "guidance": {
        +          "description": "Citation and source interpretation instructions.",
        +          "type": "string"
        +        },
        +        "myopl_url": {
        +          "description": "MYOPL website.",
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "results": {
        +          "description": "Matching MYOPL pages; empty when no page matches.",
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "excerpt": {
        +                "description": "Matching passage from the page.",
        +                "maxLength": 1800,
        +                "type": "string"
        +              },
        +              "language": {
        +                "description": "Language of the response.",
        +                "enum": [
        +                  "en",
        +                  "es"
        +                ],
        +                "type": "string"
        +              },
        +              "title": {
        +                "description": "Page title.",
        +                "type": "string"
        +              },
        +              "truncated": {
        +                "description": "True when the excerpt is only part of the source page.",
        +                "type": "boolean"
        +              },
        +              "url": {
        +                "description": "Published MYOPL page to cite.",
        +                "format": "uri",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "url",
        +              "title",
        +              "language",
        +              "excerpt",
        +              "truncated"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 5,
        +          "type": "array"
        +        },
        +        "source": {
        +          "description": "Published source collection.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "source",
        +        "myopl_url",
        +        "results",
        +        "clarification",
        +        "guidance"
        +      ],
        +      "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"
        +}
    • Changedsearch_pickleball_rules4 fields changed
      • addedInput schema / description
        Added value: +"Arguments for search_pickleball_rules."
      • addedInput schema / properties / language / description
        Added value: +"Use en for official rulebook evidence; preserve original citations when translating the reply."
      • addedInput schema / properties / query / description
        Added value: +"Pickleball play scenario, rule topic or official rule number to look up."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "MYOPL structured response for search_pickleball_rules.",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "answer": {
        +          "description": "Grounded answer with rule citations when supplied.",
        +          "type": "string"
        +        },
        +        "clarification": {
        +          "description": "Required clarification of the play, or null.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "edition": {
        +          "description": "Rulebook edition year as a string.",
        +          "type": "string"
        +        },
        +        "evidence": {
        +          "description": "Up to five cited rule excerpts.",
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "authority": {
        +                "description": "Authority classification of the source record.",
        +                "type": "string"
        +              },
        +              "canonical_url": {
        +                "description": "MYOPL rulebook guide citation URL.",
        +                "format": "uri",
        +                "type": "string"
        +              },
        +              "canonical_url_type": {
        +                "const": "rulebook_guide",
        +                "description": "Identifies the linked source as a rulebook guide.",
        +                "type": "string"
        +              },
        +              "official_text": {
        +                "description": "Verbatim rule excerpt, or null if contact redaction was required.",
        +                "maxLength": 4000,
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "rule": {
        +                "description": "Rule identifier.",
        +                "type": "string"
        +              },
        +              "rule_number": {
        +                "description": "Official rule identifier for citation.",
        +                "type": "string"
        +              },
        +              "text": {
        +                "description": "Rule excerpt with contact details redacted where necessary.",
        +                "maxLength": 4000,
        +                "type": "string"
        +              },
        +              "title": {
        +                "description": "Rule title.",
        +                "type": "string"
        +              },
        +              "truncated": {
        +                "description": "True when the excerpt is shorter than the source rule.",
        +                "type": "boolean"
        +              }
        +            },
        +            "required": [
        +              "rule",
        +              "rule_number",
        +              "official_text",
        +              "canonical_url",
        +              "canonical_url_type",
        +              "title",
        +              "text",
        +              "truncated",
        +              "authority"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 5,
        +          "type": "array"
        +        },
        +        "governing_body": {
        +          "description": "Organization responsible for the rulebook.",
        +          "type": "string"
        +        },
        +        "guidance": {
        +          "description": "Instructions for preserving citations, exceptions and clarification questions.",
        +          "type": "string"
        +        },
        +        "language": {
        +          "description": "Language of the rulebook evidence.",
        +          "type": "string"
        +        },
        +        "myopl_url": {
        +          "description": "MYOPL rulebook guide to cite.",
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "source": {
        +          "description": "MYOPL rule evidence source.",
        +          "type": "string"
        +        },
        +        "source_url": {
        +          "description": "Governing body's official rulebook page.",
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "spoken_reply": {
        +          "description": "Rule response with MYOPL attribution and citation link.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "source",
        +        "governing_body",
        +        "edition",
        +        "language",
        +        "source_url",
        +        "myopl_url",
        +        "evidence",
        +        "clarification",
        +        "guidance",
        +        "spoken_reply"
        +      ],
        +      "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. 1 tool update
    • Changedprepare_pickleball_browse1 field changed
      • changedInput schema / properties / category / enum
        Previous value: -[
        -  "courts",
        -  "clubs",
        -  "sessions"
        -]New value: +[
        +  "courts",
        +  "clubs",
        +  "sessions",
        +  "leaderboards"
        +]
  3. 5 tool updates
    • First observedget_public_player_rating
    • First observedprepare_pickleball_browse
    • First observedsearch_myopl_help
    • First observedsearch_myopl_website
    • First observedsearch_pickleball_rules

Publisher details

Operator
MYOPL | The Officially Casual Rating System for Open Play · Publisher source
Vendor relationship
First-party
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Turns official pickleball scoring rules into callable tools for LLMs to track live matches accurately.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Tournament software for tennis, padel, pickleball and more: fair draws, live standings, scores and dropout handling.
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables checking Matchpoint club balance, listing free padel court availability, and booking private Open Matches through natural language from AI clients like Cursor or Claude Desktop.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Real-time tennis data for ATP, WTA, Challenger and ITF: live scores, player rankings, match-winner odds, and model win-probability. 12 read-only tools; a tier-gated endpoint returns a plain-English explanation of which plan it needs rather than a bare 403. Requires a paid API key.
    24
    98 npm
    152
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources