KARVE Booking
Server Details
Live KARVE Pilates class schedule and availability in Jeddah, with booking links. Read-only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
4 toolsclass_detailKARVE class detailARead-onlyIdempotentInspect
Full detail for one KARVE class by its idSchedule (from search_classes' JSON): description, trainer, studio, live availability, and a booking link.
| Name | Required | Description | Default |
|---|---|---|---|
| idSchedule | Yes | ||
| withinDays | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| header | Yes | |
| classes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds value by specifying the returned fields (description, trainer, studio, live availability, booking link), which is useful context about the tool's behavior. No contradictions or additional caveats are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the tool's purpose and then lists the return content. No wasted words; every clause contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives the core purpose, input source, and return fields, which is adequate for a read-only detail tool with an output schema. However, the undefined withinDays parameter and lack of explicit guidance about when to use this vs siblings leave some gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero descriptions for parameters, so the description must compensate. It explains idSchedule (from search_classes' JSON) but does not explain withinDays, leaving an optional parameter with unclear semantics. This is a significant gap for a two-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns full detail for a single KARVE class, identifying the key input (idSchedule) and listing the content (description, trainer, studio, live availability, booking link). It distinguishes from siblings by indicating it operates on one class and references search_classes for the id. However, it lacks an explicit verb like 'retrieve' or 'get', so it is not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: after search_classes returns a list, use this tool with an idSchedule to get full details. This gives clear context for when to use it, but it doesn't explicitly mention when not to use it or name alternatives like next_available or studio_info. That aligns with 'clear context, no exclusions'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
next_availableNext available KARVE classARead-onlyIdempotentInspect
Soonest upcoming KARVE classes that still have an open spot, optionally matching an English query (e.g. 'transformer', 'Sarah', 'beginners'). Returns booking links.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| withinDays | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| header | Yes | |
| classes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: results are limited to classes with open spots, results are restricted to upcoming soonest, and the output includes booking links. This goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose, query flexibility, and output behavior without redundancy. There is no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The annotations and output schema cover safety and return shape, and the description covers core purpose and query semantics. However, the lack of explanation for 'limit' and 'withinDays', plus no explicit differentiation from siblings like search_classes, leaves moderate gaps for an otherwise simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only explains the 'query' parameter with examples ('transformer', 'Sarah', 'beginners'), while 'limit' and 'withinDays' are completely unexplained. This is insufficient for a three-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: find soonest upcoming KARVE classes with open spots, optionally matching a query, and returns booking links. This distinguishes it from siblings like class_detail or search_classes by emphasizing availability and time urgency, though it doesn't name them directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a user wants the soonest available classes that still have openings, and provides query examples. However, it does not explicitly state when to use this versus search_classes or class_detail, nor does it describe exclusions, so guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_classesSearch KARVE classesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| query | No | ||
| endDate | No | ||
| trainer | No | ||
| category | No | ||
| startDate | No | ||
| includePast | No | ||
| onlyAvailable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| header | Yes | |
| classes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, open-world, idempotent), the description adds context: 'Live' and 'real-time availability' indicate dynamic data, the date format DD/MM/YYYY (KSA) and 'Search in English' specify input constraints, and the booking link return is an extra behavioral detail. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that efficiently convey purpose, output, and key constraints (real-time, read-only, date format, language). Every phrase contributes value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 optional parameters, an output schema, and multiple sibling tools, the description is incomplete. It lacks any parameter guidance, usage examples, or differentiation from class_detail/next_available/studio_info, leaving significant gaps for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions none of the 8 parameters (days, query, startDate, endDate, trainer, category, includePast, onlyAvailable). The only reference to 'trainer' is as a returned field, not a filter, so the description provides no guidance on how to construct search parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: searching KARVE (Jeddah) class schedules with real-time availability, spots left, trainer, and per-class booking links. This distinguishes it from siblings like class_detail and next_available by emphasizing broad search and booking link output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for browsing live class schedules and availability but does not explicitly mention when to use it over alternatives like class_detail or next_available. There are no exclusions or alternative tools named, leaving usage context only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_infoKARVE studio infoARead-onlyIdempotentInspect
Authoritative KARVE facts — pricing & passes, first-timer info, policies (women-only, grip socks, cancellation, age), hours, location and contact. Use instead of guessing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the 'authoritative' framing and a content list but does not disclose additional behavioral traits such as response format, data freshness, or the possibility of updates. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently covers purpose and content. It is concise and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema tool, the description adequately lists the main content areas. It could be more explicit about the response format or data currency, but the core coverage is sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters in the schema, the baseline is 4. The description appropriately says nothing about parameters since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides authoritative KARVE studio facts, enumerating specific categories (pricing, policies, hours, location, etc.). It distinguishes from siblings by focusing on studio-level information rather than class-specific details like class_detail or next_available.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use instead of guessing' implies a usage context but does not explicitly mention when to use this tool versus sibling alternatives. It lacks exclusions or references to class-focused tools, so the guidance is only implied.
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. Dates show when Glama detected each change.
4 tool updates
- First observed
class_detail - First observed
next_available - First observed
search_classes - First observed
studio_info
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Live Saudi smart-parking data: spots, EV chargers, stats, and blog. Read-only, no auth.
Real-time booking for Korean beauty & wellness shops — search availability, get a booking link.
Live Las Vegas shows, restaurants, attractions and resorts. Read-only, no API key needed.
Book a table, appointment or class at a real local business. Instant confirmation, no API key.
Related MCP Servers
- FlicenseAqualityCmaintenanceConnects AI agents to the Pilates With Neelam studio management platform, enabling natural-language class search, real-time availability checks, bookings, level assessments, and post-class check-ins.8-
- FlicenseNot gradedqualityDmaintenanceEnables users to query real-time reservation availability for Naver Booking places in Korea, including beauty salons, restaurants, and other categories.-
- FlicenseNot gradedqualityDmaintenanceScheduling and booking engine for AI agents. Check availability, hold slots, and confirm appointments with two-phase booking and conflict-free resource management.2-
- AlicenseNot gradedqualityDmaintenanceSurf Park live session availability for booking and cancellation. Made by surfers for wave pools worldwideMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clear role: class_detail for specific class info, next_available for soonest openings, search_classes for full schedule, and studio_info for general facts. Slight overlap between next_available and search_classes is mitigated by distinct purposes: one finds the soonest open class, the other lists the schedule.
All names use snake_case and are readable, but the pattern is mixed: class_detail and studio_info are noun-based, next_available is adjective-based, and search_classes is verb-based. There is no consistent verb_noun pattern across the set.
Four tools is well-scoped for a read-only booking information server, covering schedule, availability, class details, and studio info without redundancy. It is within the typical 3-15 range and each tool earns its place.
The set covers core browsing needs: schedule lookup, finding available classes, getting full class details, and studio policies. It lacks actual booking or cancellation actions, but the descriptions indicate it is designed to provide information and booking links rather than handle transactions, so this is an acceptable scope.