{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/myopl-net/json-schema/myopl-net-mcp-request-schema.json",
  "title": "McpRequest",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/myopl-net-openapi.json#/components/schemas/McpRequest",
  "oneOf": [
    {
      "$ref": "#/$defs/InitializeRequest"
    },
    {
      "$ref": "#/$defs/PingRequest"
    },
    {
      "$ref": "#/$defs/ToolsListRequest"
    },
    {
      "$ref": "#/$defs/prepare_pickleball_browseRequest"
    },
    {
      "$ref": "#/$defs/search_pickleball_rulesRequest"
    },
    {
      "$ref": "#/$defs/search_myopl_helpRequest"
    },
    {
      "$ref": "#/$defs/search_myopl_websiteRequest"
    },
    {
      "$ref": "#/$defs/get_public_player_ratingRequest"
    },
    {
      "$ref": "#/$defs/InitializedNotification"
    },
    {
      "$ref": "#/$defs/ResourcesListRequest"
    },
    {
      "$ref": "#/$defs/ResourcesReadRequest"
    }
  ],
  "$defs": {
    "InitializeRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "initialize"
        },
        "params": {
          "type": "object",
          "properties": {
            "protocolVersion": {
              "type": "string"
            },
            "capabilities": {
              "type": "object"
            },
            "clientInfo": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "version"
              ],
              "additionalProperties": true
            }
          },
          "required": [
            "protocolVersion",
            "capabilities",
            "clientInfo"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method",
        "params"
      ],
      "additionalProperties": false
    },
    "InitializedNotification": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "method": {
          "const": "notifications/initialized"
        },
        "params": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "method"
      ],
      "additionalProperties": false
    },
    "PingRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "ping"
        },
        "params": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method"
      ],
      "additionalProperties": false
    },
    "ResourcesListRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "resources/list"
        },
        "params": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method"
      ],
      "additionalProperties": false
    },
    "ResourcesReadRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "resources/read"
        },
        "params": {
          "type": "object",
          "properties": {
            "uri": {
              "const": "ui://myopl/public-rating-v1.html"
            }
          },
          "required": [
            "uri"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method",
        "params"
      ],
      "additionalProperties": false
    },
    "ToolsListRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "tools/list"
        },
        "params": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method"
      ],
      "additionalProperties": false
    },
    "get_public_player_ratingArguments": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "username": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.-]{1,64}$",
          "maxLength": 64
        }
      },
      "required": [
        "username"
      ]
    },
    "get_public_player_ratingRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "tools/call"
        },
        "params": {
          "type": "object",
          "properties": {
            "name": {
              "const": "get_public_player_rating"
            },
            "arguments": {
              "$ref": "#/$defs/get_public_player_ratingArguments"
            }
          },
          "required": [
            "name",
            "arguments"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method",
        "params"
      ],
      "additionalProperties": false
    },
    "prepare_pickleball_browseArguments": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "location": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "language": {
          "type": "string",
          "enum": [
            "en",
            "es"
          ],
          "default": "en"
        },
        "category": {
          "type": "string",
          "enum": [
            "courts",
            "clubs",
            "sessions",
            "leaderboards"
          ]
        }
      },
      "required": [
        "location"
      ],
      "description": "No category default is applied. Omitting category returns choice_required. The trimmed location must be a named city, state or country; unsupported punctuation is rejected."
    },
    "prepare_pickleball_browseRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "tools/call"
        },
        "params": {
          "type": "object",
          "properties": {
            "name": {
              "const": "prepare_pickleball_browse"
            },
            "arguments": {
              "$ref": "#/$defs/prepare_pickleball_browseArguments"
            }
          },
          "required": [
            "name",
            "arguments"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method",
        "params"
      ],
      "additionalProperties": false
    },
    "search_myopl_helpArguments": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        },
        "language": {
          "type": "string",
          "enum": [
            "en",
            "es"
          ],
          "default": "en"
        }
      },
      "required": [
        "query"
      ]
    },
    "search_myopl_helpRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "tools/call"
        },
        "params": {
          "type": "object",
          "properties": {
            "name": {
              "const": "search_myopl_help"
            },
            "arguments": {
              "$ref": "#/$defs/search_myopl_helpArguments"
            }
          },
          "required": [
            "name",
            "arguments"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method",
        "params"
      ],
      "additionalProperties": false
    },
    "search_myopl_websiteArguments": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        },
        "language": {
          "type": "string",
          "enum": [
            "en",
            "es"
          ],
          "default": "en"
        }
      },
      "required": [
        "query"
      ]
    },
    "search_myopl_websiteRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "tools/call"
        },
        "params": {
          "type": "object",
          "properties": {
            "name": {
              "const": "search_myopl_website"
            },
            "arguments": {
              "$ref": "#/$defs/search_myopl_websiteArguments"
            }
          },
          "required": [
            "name",
            "arguments"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method",
        "params"
      ],
      "additionalProperties": false
    },
    "search_pickleball_rulesArguments": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        },
        "language": {
          "type": "string",
          "enum": [
            "en",
            "es"
          ],
          "default": "en"
        }
      },
      "required": [
        "query"
      ],
      "description": "The live tool advertises en and es. Use en: es currently produces an isError tool response because the evidence is English."
    },
    "search_pickleball_rulesRequest": {
      "type": "object",
      "properties": {
        "jsonrpc": {
          "const": "2.0"
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "method": {
          "const": "tools/call"
        },
        "params": {
          "type": "object",
          "properties": {
            "name": {
              "const": "search_pickleball_rules"
            },
            "arguments": {
              "$ref": "#/$defs/search_pickleball_rulesArguments"
            }
          },
          "required": [
            "name",
            "arguments"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "jsonrpc",
        "id",
        "method",
        "params"
      ],
      "additionalProperties": false
    }
  }
}