Compteam
Server Details
Find Brazilian jiu-jitsu clubs and classes, manage attendance, and send free-trial inquiries.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Most tools target a clear, non-overlapping action: account status, class schedules (personal vs public), club search, RSVPs, and trial form display/submission. The only real ambiguity is list_my_subjects, whose name suggests academic subjects but whose description covers the member profile and linked children, and it overlaps somewhat with get_account_status.
The server consistently uses snake_case verb_noun names (get_, list_, search_, set_, show_, submit_). The one notable inconsistency is list_my_subjects, which is semantically misleading—it should be something like list_my_profiles or list_my_dependents—and breaks the otherwise clear pattern.
Eight tools is an appropriate size for this domain. Each tool handles a distinct part of the user journey: account/status, class discovery, RSVPs, and free-trial inquiries, with no obvious bloat or excessive granularity.
Core member workflows are covered: checking account status, viewing own/public classes, finding clubs, managing RSVPs, and submitting trial inquiries. Minor gaps exist—there is no class-detail tool, no membership management, and paid-class booking is deliberately discovery-only—but agents can complete the main supported journeys without dead ends.
Available Tools
8 toolsget_account_statusMy account statusARead-onlyInspect
Read limited membership and payment status for me or a linked child.
| Name | Required | Description | Default |
|---|---|---|---|
| child_id | No | ||
| branch_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add context. It adds the 'limited' scope and the 'me or linked child' target, but does not disclose details like authentication needs, output structure, or edge cases. Consistent 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?
A single, front-loaded sentence states the action, resource, and scope with no filler. Every word earns its place.
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 simple read-only tool, the description establishes the basic purpose and scope, and annotations cover the safety profile. However, with no output schema and no explanation of branch_id, an agent still lacks some details needed to call the tool confidently. Adequate but with clear gaps.
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 for undocumented parameters. It only alludes to a linked child via 'me or a linked child', giving partial meaning to child_id, but branch_id is completely unexplained and no parameter-level details are provided.
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 uses a specific verb ('Read') with a clear resource ('membership and payment status') and a clear target ('for me or a linked child'). It is easily distinguished from sibling tools that handle classes, subjects, clubs, or trial forms.
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 when to use the tool (when membership or payment status is needed) but gives no explicit guidance on when to choose it over alternatives, nor any exclusions or prerequisites. Sibling tool names are available but not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_classesMy classesARead-onlyInspect
Show upcoming classes for me or a linked child in a club I belong to.
| Name | Required | Description | Default |
|---|---|---|---|
| child_id | No | ||
| branch_id | Yes | ||
| week_start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable scoping (upcoming, personal/linked child, club membership) but does not disclose return format, pagination, or any other behavioral trait; this is acceptable given the annotations but not richer than a 3.
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 sentence with no filler, front-loading the action and then the scope. It earns its place and is easy to scan.
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 tool is simple and the annotations already signal safe read-only behavior, but the absence of an output schema and zero parameter documentation leaves gaps around the return shape and the semantics/format of branch_id and week_start. The description is minimally viable but not complete.
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 for the three parameters. It only hints at child_id via 'linked child' and says nothing about what branch_id refers to or what format week_start must take, leaving required parameters ambiguous.
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 uses the specific verb 'Show' and a clear resource ('upcoming classes'), and it scopes the operation to 'me or a linked child in a club I belong to.' This differentiates it from siblings like list_public_classes and list_my_subjects without needing to open the schema.
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 intended use case is implied: call it when the user wants their own or a linked child's upcoming classes. However, it never explicitly names alternatives or exclusion conditions, so the agent must infer from sibling names when to prefer list_public_classes or list_my_subjects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_subjectsMy Compteam profilesARead-onlyInspect
List my own member profile and children linked to my account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description need not restate safety. It adds the account-scoping detail but does not disclose more behavioral traits such as output ordering, pagination, or authentication requirements; this is acceptable but not exceptional.
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?
A single front-loaded sentence states the action and scope with no filler. Every word earns its place.
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 zero-parameter read-only list, this description is largely complete and gives enough to invoke it correctly. The term 'children' is slightly ambiguous without domain context, and no return shape is mentioned, but annotations cover the safety profile and no schema gaps need compensating.
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 tool takes zero parameters, so the baseline is 4; there is no parameter ambiguity for the description to resolve.
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 names a specific operation ('List') and scope ('my own member profile and children linked to my account'), making clear this retrieves the caller's own subjects rather than public or class-related data. This is enough to distinguish it from siblings like list_public_classes and list_my_classes.
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 'my own' and 'linked to my account' establishes clear context: this tool is for the authenticated user's personal subject data. It does not explicitly name alternatives or state when not to use them, but the intended use case is apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_public_classesPublic classesARead-onlyInspect
Show the public schedule for a club and week. Paid classes are for discovery only.
| Name | Required | Description | Default |
|---|---|---|---|
| week_start | Yes | ||
| branch_slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is covered. The description adds valuable behavioral context beyond that: paid classes are surfaced only for discovery and not for booking or deeper interaction.
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 short sentences with no filler. The main purpose is front-loaded, and the paid-classes constraint adds essential information without bloating the description.
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 simple two-parameter read-only listing tool with annotations covering safety, the description provides the necessary purpose, scope, and a key usage limitation. It does not describe the return shape, but no output schema exists and the tool's simplicity makes that a minor gap.
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 carries the burden of explaining parameters. It maps branch_slug to 'club' and week_start to 'week', which provides useful context, but it does not clarify formats such as how week_start should be represented (e.g., date format, timezone). The field names are fairly self-explanatory, so this is adequate but not thorough.
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 states a specific verb ('Show') and a concrete resource ('public schedule for a club and week'), immediately distinguishing this from personal schedule tools like list_my_classes. The phrase 'Paid classes are for discovery only' further clarifies the tool's scope.
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 clearly indicates this is for public schedule discovery and adds an important constraint that paid classes are discovery-only, giving the agent context about how the tool should be used. It does not explicitly name sibling alternatives or state when not to use it, but the 'public' framing strongly implies the boundary against personal-schedule tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_clubsFind Compteam clubsBRead-onlyInspect
Search clubs with a public class schedule by club name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and non-destructive, covering safety. The description adds the condition that results are limited to clubs with a public class schedule, which is a useful functional constraint. However, it does not disclose pagination, limit behavior, or return format, so it adds some but not full transparency.
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, clear sentence with no unnecessary words. It is front-loaded with the verb and subject, and all words add 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 lacks explicit parameter semantics and any notes on result limits or output format. Given the sparse schema (no property descriptions) and lack of output schema, this leaves gaps for an agent to correctly use 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%, so the description must explain the parameters. It implies the query is the club name via 'by club name', but does not explicitly map it to the query parameter or describe the limit parameter at all. This is insufficient for a 2-parameter tool with no schema descriptions.
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 states 'Search clubs with a public class schedule by club name.' This specifies a concrete action (search), a resource (clubs), and a filter (public class schedule). It implicitly distinguishes from sibling list_public_classes by targeting clubs rather than classes, but does not explicitly name that alternative, so it is clear but not maximal.
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 provides no guidance on when to use this tool versus alternatives like list_public_classes. It does not mention any exclusions or conditions. An agent must infer that this is for clubs, but there is no explicit contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_class_rsvpChange a class RSVPAIdempotentInspect
Confirm or cancel my or a linked child's RSVP for a class. May affect a waitlist.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| child_id | No | ||
| branch_id | Yes | ||
| occurrence_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations by warning 'May affect a waitlist.' The write nature is clearly signaled by 'Confirm or cancel,' and this does not contradict the readOnlyHint=false, destructiveHint=false, or idempotentHint true 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 short sentences with the core action front-loaded. The second sentence adds an important side-effect warning with no filler or redundancy.
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?
This is a mutating tool with three required parameters, a 0% schema description coverage, and no output schema. The description is too sparse to be fully usable: it omits accepted status values, how branch_id and occurrence_key are obtained, and what happens after confirmation or cancellation beyond the waitlist hint.
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 loosely maps to parameters: 'confirm or cancel' hints at status values and 'linked child' maps to child_id. However, it does not explain allowed status values, branch_id, or occurrence_key, leaving critical parameters underspecified.
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?
Description states a specific action ('Confirm or cancel') on a precise resource (a class RSVP for the user or a linked child). It is clearly distinct from the sibling tools, which are read-only or trial-inquiry tools, so an agent can identify its purpose without ambiguity.
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 clearly implies when to use it: when a user wants to confirm or cancel a class RSVP. It doesn't explicitly list exclusions or alternatives, but no sibling tool handles RSVP changes, so the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_free_trial_formFree trial inquiry formBRead-onlyInspect
Open a free trial inquiry form after Compteam sign-in. The server verifies the class is free and available.
| Name | Required | Description | Default |
|---|---|---|---|
| branch_slug | Yes | ||
| occurrence_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| form_uri | Yes | |
| class_date | Yes | |
| branch_slug | Yes | |
| class_title | Yes | |
| occurrence_key | Yes | |
| class_start_time | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context beyond that: the form is opened only after sign-in and the server verifies the class is free and available. This gives the agent meaningful expectations without contradicting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loads the core action, and each sentence contributes useful information: what happens and what the server verifies. There is no filler or redundant restatement of the title.
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 only two simple parameters, an output schema, and annotations covering the safety profile, the description is close to adequate. Still, it omits any explanation of the required parameters and does not position this tool relative to submit_free_trial_inquiry, which are notable gaps for an agent selecting and invoking 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%, so the description carries the full burden for explaining branch_slug and occurrence_key. It does not mention either parameter or clarify how they map to the class or branch being checked. The agent is left to guess from variable names alone.
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 uses a specific verb ('Open') and names the exact resource ('free trial inquiry form'), making the basic purpose clear. It does not explicitly contrast itself with the sibling submit_free_trial_inquiry, but the open-vs-submit distinction is reasonably inferable from the verb.
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 gives a clear prerequisite ('after Compteam sign-in') and notes a server-side validation condition, which implies when the tool is appropriate. However, it does not mention when not to use it or how it relates to alternatives like submit_free_trial_inquiry, leaving the routing partially implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_free_trial_inquirySubmit a free trial inquiryCDestructiveIdempotentInspect
Send an inquiry for an eligible free trial class after the user confirms the form.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| Yes | |||
| phone | Yes | ||
| language | Yes | ||
| last_name | Yes | ||
| first_name | Yes | ||
| request_id | Yes | ||
| branch_slug | Yes | ||
| date_of_birth | Yes | ||
| occurrence_key | Yes | ||
| turnstile_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the description doesn't need to repeat those. However, it adds minimal behavioral context—only the action itself. It doesn't disclose side effects (e.g., sending an email, permanent record creation) or mention the required turnstile_token, which is a significant operational detail. No contradiction with annotations, but little added value.
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 concise sentence with no wasted words. However, it lacks structure—no bullet points or breakdown of parameters. It's appropriately short but at the cost of necessary detail, so it's neither overly verbose nor effectively organized.
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 11 required parameters, no output schema, and zero parameter documentation, the description is grossly incomplete. It doesn't explain how to obtain values like turnstile_token or request_id, what the response looks like, or any prerequisites beyond user confirmation. The destructiveHint annotation suggests side effects, but the description offers no warning. This tool is not self-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?
Schema description coverage is 0%, meaning the schema provides no parameter descriptions. The description's single sentence doesn't explain any of the 11 required parameters (e.g., branch_slug, occurrence_key, turnstile_token, request_id). With this many parameters and zero coverage, the description must compensate but fails completely, leaving the agent guessing parameter meanings.
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 action ('Send an inquiry') and the target resource ('eligible free trial class'), with a precondition ('after the user confirms the form'). It implies a distinction from show_free_trial_form, which likely displays the form, but it doesn't explicitly name the sibling, so it's clear but not maximally differentiated.
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 'after the user confirms the form' provides a clear precondition for when to use this tool. However, it doesn't explicitly state when not to use it or mention alternatives like show_free_trial_form. It gives context but lacks explicit exclusions or routing to siblings.
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.
8 tool updates
- First observed
get_account_status - First observed
list_my_classes - First observed
list_my_subjects - First observed
list_public_classes - First observed
search_clubs - First observed
set_class_rsvp - First observed
show_free_trial_form - First observed
submit_free_trial_inquiry
Related MCP Connectors
Find US BJJ gyms with weekly schedules, open mats, and visitor drop-in prices.
BJJ gym, coach, event, and city data for AI agents. Free base tools, x402-paid premium.
DOJO+ — directory of martial arts schools, classes, instructors, ranks, and events.
- FitnitoOAuthcom.fitnito
Manage a gym or studio: schedule classes, members, passes, memberships, staff and bookings.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server for AI agent access to JKTJJ's structured BJJ data — gyms, coaches, events, and cities worldwide.1MIT
- AlicenseNot gradedqualityDmaintenanceSurf Park live session availability for booking and cancellation. Made by surfers for wave pools worldwideMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to query and manage Altea Active memberships through natural language, including schedules, spot availability, instructor sessions, bookings, cancellations, and waitlists.MIT
- AlicenseAqualityAmaintenanceBook a table, an appointment or a place in a class at a real local business. Live availability, instant confirmation, no account and no API key. Eight tools: search, fetch, get_business, check_availability, create_booking, check_booking, cancel_booking and request_listing. Guest emails in eight languages. Hosted at https://g-guest.app/api/mcp8144 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.