MYOPL Personal MCP - Pickleball Ratings & Statistics
Server Details
MYOPL pickleball ratings, sessions, RSVP preparation and own statistics via OAuth sign-in and consent.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Score is being calculated.
Available Tools
5 toolsget_my_action_statusRead-onlyIdempotentInspect
Check whether MYOPL confirmed completion of your prepared RSVP.
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes | Action identifier returned by prepare_my_rsvp on this same account connection. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_my_next_sessionRead-onlyIdempotentInspect
Find the next session for a league you belong to.
| Name | Required | Description | Default |
|---|---|---|---|
| league | Yes | Exact MYOPL league slug from its link, for a league the signed-in account belongs to. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_my_ratingRead-onlyIdempotentInspect
Retrieve current published OPL ratings for the signed-in player. Use for questions such as what is my pickleball rating. Call again for each new current-rating question; previous chat answers may be stale. This connection also grants your statistics: this single call displays the complete MYOPL card. Do not call a second tool to display it again.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_my_statistics_cardRead-onlyIdempotentInspect
Retrieve your own private singles and doubles statistics card when asked for games, points, opponents or reliability. The get_my_rating tool already includes this card when statistics access is granted: do not call both tools for the same rating question. Include the public rating-card totals and a MYOPL source link in the reply.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
prepare_my_rsvpInspect
Prepare your RSVP for review and explicit confirmation on MYOPL. This call does not change an RSVP.
| Name | Required | Description | Default |
|---|---|---|---|
| league | Yes | Exact MYOPL league slug from its link, for a league the signed-in account belongs to. | |
| response | Yes | Proposed attendance: yes to attend, maybe if undecided, or no to decline. The owner confirms on MYOPL. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
get_my_action_status3 fields changed- added
Input schema / descriptionAdded value: +"Arguments for get_my_action_status." - added
Input schema / properties / action_id / descriptionAdded value: +"Action identifier returned by prepare_my_rsvp on this same account connection." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "MYOPL structured response for get_my_action_status.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "guidance": { + "description": "Instructions for interpreting the action state.", + "type": "string" + }, + "status": { + "description": "Only completed confirms that MYOPL synchronized the RSVP; unavailable means no accessible unexpired action.", + "enum": [ + "pending", + "processing", + "completed", + "failed", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "description": "Tool execution or argument error; the enclosing result has isError set to true.", + "type": "string" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
get_my_next_session3 fields changed- added
Input schema / descriptionAdded value: +"Arguments for get_my_next_session." - added
Input schema / properties / league / descriptionAdded value: +"Exact MYOPL league slug from its link, for a league the signed-in account belongs to." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "MYOPL structured response for get_my_next_session.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "date": { + "description": "Next session date as displayed by MYOPL.", + "type": "string" + }, + "league": { + "description": "MYOPL league slug.", + "type": "string" + }, + "league_name": { + "description": "League display name.", + "type": "string" + }, + "time": { + "description": "Next session time as displayed by MYOPL.", + "type": "string" + } + }, + "required": [ + "league", + "league_name", + "date", + "time" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "description": "Tool execution or argument error; the enclosing result has isError set to true.", + "type": "string" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
get_my_rating2 fields changed- added
Input schema / descriptionAdded value: +"No arguments. MYOPL uses the account connected through OAuth." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "MYOPL structured response for get_my_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" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
get_my_statistics_card2 fields changed- added
Input schema / descriptionAdded value: +"No arguments. MYOPL uses the account connected through OAuth." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "MYOPL structured response for get_my_statistics_card.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "card_type": { + "const": "myopl_rating", + "description": "Type of the accompanying MYOPL card.", + "type": "string" + }, + "doubles": { + "additionalProperties": false, + "description": "Doubles rating and public card totals. Games are distinct from matches.", + "properties": { + "games_lost": { + "description": "Games lost in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "games_played": { + "description": "Games played in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "games_won": { + "description": "Games won in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "points_lost": { + "description": "Points lost in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "points_won": { + "description": "Points won in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "rating": { + "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.", + "type": [ + "string", + "null" + ] + }, + "reliability_score": { + "description": "Reliability Score from 0 to 100; null means unavailable.", + "maximum": 100, + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "status": { + "description": "Whether a published rating exists.", + "enum": [ + "rated", + "unrated" + ], + "type": "string" + } + }, + "required": [ + "rating", + "status", + "reliability_score", + "games_played", + "games_won", + "games_lost", + "points_won", + "points_lost" + ], + "type": "object" + }, + "doubles_opl": { + "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.", + "type": [ + "string", + "null" + ] + }, + "found": { + "const": true, + "description": "Whether an accessible player with this exact username was found.", + "type": "boolean" + }, + "guidance": { + "description": "Instructions for citing and interpreting the public rating totals.", + "type": "string" + }, + "messenger_url": { + "description": "Player's unique MYOPL Messenger invitation link.", + "format": "uri", + "type": "string" + }, + "singles": { + "additionalProperties": false, + "description": "Singles rating and public card totals. Games are distinct from matches.", + "properties": { + "games_lost": { + "description": "Games lost in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "games_played": { + "description": "Games played in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "games_won": { + "description": "Games won in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "points_lost": { + "description": "Points lost in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "points_won": { + "description": "Points won in this format; null means unknown and zero means a known zero total.", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "rating": { + "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.", + "type": [ + "string", + "null" + ] + }, + "reliability_score": { + "description": "Reliability Score from 0 to 100; null means unavailable.", + "maximum": 100, + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "status": { + "description": "Whether a published rating exists.", + "enum": [ + "rated", + "unrated" + ], + "type": "string" + } + }, + "required": [ + "rating", + "status", + "reliability_score", + "games_played", + "games_won", + "games_lost", + "points_won", + "points_lost" + ], + "type": "object" + }, + "singles_opl": { + "description": "Published OPL rating as an exact decimal string, preserving precision; null means unrated.", + "type": [ + "string", + "null" + ] + }, + "source": { + "const": "MYOPL", + "description": "Source platform.", + "type": "string" + }, + "source_url": { + "description": "MYOPL rating reference to cite in the answer.", + "format": "uri", + "type": "string" + }, + "sport": { + "const": "pickleball", + "description": "Sport for these ratings.", + "type": "string" + }, + "summary": { + "description": "MYOPL rating and statistics summary for the text reply.", + "type": "string" + }, + "username": { + "description": "Exact MYOPL player username.", + "type": "string" + } + }, + "required": [ + "found", + "source", + "source_url", + "summary", + "card_type", + "username", + "sport", + "singles_opl", + "doubles_opl", + "singles", + "doubles", + "messenger_url", + "guidance" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "description": "Tool execution or argument error; the enclosing result has isError set to true.", + "type": "string" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
prepare_my_rsvp4 fields changed- added
Input schema / descriptionAdded value: +"Arguments for prepare_my_rsvp." - added
Input schema / properties / league / descriptionAdded value: +"Exact MYOPL league slug from its link, for a league the signed-in account belongs to." - added
Input schema / properties / response / descriptionAdded value: +"Proposed attendance: yes to attend, maybe if undecided, or no to decline. The owner confirms on MYOPL." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "MYOPL structured response for prepare_my_rsvp.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "action_id": { + "description": "Identifier to pass to get_my_action_status for this connection.", + "pattern": "^[A-Za-z0-9]{64}$", + "type": "string" + }, + "confirmation_url": { + "description": "MYOPL page where the owner reviews and confirms the RSVP.", + "format": "uri", + "type": "string" + }, + "expires_in": { + "description": "Seconds until this preparation expires.", + "minimum": 1, + "type": "integer" + }, + "guidance": { + "description": "Instructions for presenting the confirmation step.", + "type": "string" + }, + "status": { + "const": "confirmation_required", + "description": "The RSVP awaits the account owner's confirmation.", + "type": "string" + } + }, + "required": [ + "status", + "action_id", + "confirmation_url", + "expires_in", + "guidance" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "description": "Tool execution or argument error; the enclosing result has isError set to true.", + "type": "string" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
5 tool updates
- First observed
get_my_action_status - First observed
get_my_next_session - First observed
get_my_rating - First observed
get_my_statistics_card - First observed
prepare_my_rsvp
Publisher details
- Operator
- MYOPL | The Officially Casual Rating System for Open Play Pickleball · Publisher source
- Operator website
- https://myopl.net/ · Publisher source
- Vendor relationship
- First-party
- Documentation
- https://myopl.net/wiki/oauth/ · Publisher source
- Trust center
- https://myopl.net/security-policy/ · Publisher source
- Restrictions
- Requires a MYOPL.net account and any paid plan.
Related MCP Connectors
Official 2026 USA Pickleball rules, free 4-decimal OPL ratings, and court/club/open play discovery.
Permission-scoped Play Now, live scoring, and organization event operations for ProSide Golf users.
Run racket-sport tournaments from your AI assistant: fair draws, scores, live standings.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to connect to a privacy-first, self-hostable workout planning and training log, allowing coaching agents to preview and apply program changes while accessing training data through OAuth-protected endpoints.AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to sign in with OAuth 2.1 and read a user's WHOOP recovery, sleep, strain, and workout data through read-only tools, while also receiving and forwarding signed WHOOP webhooks to your endpoints.15 npmMIT
- AlicenseAqualityDmaintenanceExposes WHOOP recovery, sleep, strain, and workout metrics to MCP-compatible AI assistants using OAuth 2.0 authentication, enabling daily wellbeing snapshots, trend analysis, and workload recommendations.661 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables ChatGPT and other MCP clients to securely read Health Connect-derived health and training history, retrieve daily readiness and workout briefs, save schema-validated coach reports, and trigger email delivery through OAuth-protected tools.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.