KARVE Booking

Live KARVE Pilates class schedule and availability in Jeddah, with booking links. Read-only.

Should I use this

Quality & Safety

B
Description quality
95%
Schema completeness
63%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,265Tokens (tool definitions)
~2.7 KBTypical response size
Moderate attention impact (0.99% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "booking": {
      "url": "https://karve.sa/api/mcp"
    }
  }
}

Remote endpoints

https://karve.sa/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_classes(startDate, endDate, days, query, category, ...)

Live KARVE (Jeddah) class schedule with real-time availability. Answers what's on, spots left, trainer, and returns a per-class booking link. Read-only. Dates DD/MM/YYYY (KSA). Search in English.

Input Schema

{
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string",
      "pattern": "^\\d{2}\\/\\d{2}\\/\\d{4}$"
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{2}\\/\\d{2}\\/\\d{4}$"
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    },
    "query": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "trainer": {
      "type": "string"
    },
    "onlyAvailable": {
      "type": "boolean"
    },
    "includePast": {
      "type": "boolean"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "header": {
      "type": "string"
    },
    "classes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idSchedule": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "trainer": {
            "type": "string"
          },
          "studio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "day": {
            "type": "string"
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "spotsLeft": {
            "type": "number"
          },
          "capacity": {
            "type": "number"
          },
          "isFull": {
            "type": "boolean"
          },
          "waitlist": {
            "type": "number"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bookLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "idSchedule",
          "title",
          "trainer",
          "studio",
          "day",
          "start",
          "end",
          "spotsLeft",
          "capacity",
          "isFull",
          "waitlist",
          "note",
          "bookLink",
          "description"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "header",
    "classes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢next_available(query, withinDays, limit)

Soonest upcoming KARVE classes that still have an open spot, optionally matching an English query (e.g. 'transformer', 'Sarah', 'beginners'). Returns booking links.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "withinDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "header": {
      "type": "string"
    },
    "classes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idSchedule": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "trainer": {
            "type": "string"
          },
          "studio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "day": {
            "type": "string"
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "spotsLeft": {
            "type": "number"
          },
          "capacity": {
            "type": "number"
          },
          "isFull": {
            "type": "boolean"
          },
          "waitlist": {
            "type": "number"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bookLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "idSchedule",
          "title",
          "trainer",
          "studio",
          "day",
          "start",
          "end",
          "spotsLeft",
          "capacity",
          "isFull",
          "waitlist",
          "note",
          "bookLink",
          "description"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "header",
    "classes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢class_detail(idSchedule, withinDays)

Full detail for one KARVE class by its idSchedule (from search_classes' JSON): description, trainer, studio, live availability, and a booking link.

Input Schema

{
  "type": "object",
  "properties": {
    "idSchedule": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "withinDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    }
  },
  "required": [
    "idSchedule"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "header": {
      "type": "string"
    },
    "classes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idSchedule": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "trainer": {
            "type": "string"
          },
          "studio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "day": {
            "type": "string"
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "spotsLeft": {
            "type": "number"
          },
          "capacity": {
            "type": "number"
          },
          "isFull": {
            "type": "boolean"
          },
          "waitlist": {
            "type": "number"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bookLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "idSchedule",
          "title",
          "trainer",
          "studio",
          "day",
          "start",
          "end",
          "spotsLeft",
          "capacity",
          "isFull",
          "waitlist",
          "note",
          "bookLink",
          "description"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "header",
    "classes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢studio_info

Authoritative KARVE facts — pricing & passes, first-timer info, policies (women-only, grip socks, cancellation, age), hours, location and contact. Use instead of guessing.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Recommended Prompts

search_research
Search for information about [topic] using KARVE Booking
Expected tools: search_classes
find_specific
Find [specific item] using KARVE Booking
Expected tools: search_classes

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools