Beleeg (public, no account)
Server Details
Public league standings, schedules and brackets; start a league or bracket with no account.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The four tools split cleanly into read (look_up_public), write (start_league, start_tournament), and feedback, with league vs standalone tournament clearly separated. The only softness is that beleeg_look_up_public multiplexes five entity types behind a `what` param with varying id names (slug, match_id, tournament_id, league_slug), which can invite argument mistakes.
All tools carry the `beleeg_` prefix and use consistent snake_case verb_noun phrasing (look_up_public, send_feedback, start_league, start_tournament). The pattern is predictable and readable throughout.
Four tools is on the lean side, but it fits a deliberately anonymous, account-free surface: one polymorphic read tool plus two creation flows and a feedback channel. The bundling of five lookups into a single tool keeps the count clean rather than sprawling.
Read coverage spans league, team, match, tournament and league_tournaments, and creation exists for leagues and brackets, so core flows are present. However there is no discovery surface (no list/search for leagues, teams or matches) and no update/delete or team-management operations, leaving notable gaps.
Available Tools
4 toolsbeleeg_look_up_publicLook up a public pageARead-onlyIdempotentInspect
Look up what anyone can see on Beleeg — a league, team, match or tournament public page — no membership needed. Read-only. Pick what and give the slug or id listed for it.
what (params; ? = optional):
league: A league's public page by its slug: sport, current season, teams, standings. [slug]
team: A team's public page by its slug: roster, captain, colours, recent matches. [slug]
match: One match by match_id: teams, lineups, set scores, venue. [match_id]
tournament: One tournament's public page by tournament_id: status, entrants, bracket. [tournament_id]
league_tournaments: The tournaments a league shows the public, by the league slug. [league_slug]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Public URL-safe league slug. Used with what: league, team. | |
| what | Yes | What to look up. Every value is listed, with its params, in the tool description. | |
| match_id | No | One match id (from what "schedule"). For the match-day lookups, leave out to mean the person's next match. Used with what: match. | |
| league_slug | No | Public league slug (not UUID). Used with what: league_tournaments. | |
| tournament_id | No | A tournament id, from what "tournaments". Used with what: tournament. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context beyond annotations: the no-membership access model and a per-value summary of what is returned (standings, roster, lineups, bracket), which matters since there is no output schema.
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?
Front-loads purpose and access model, then uses a clean per-enum bullet list. Slightly long, but every bullet carries the required argument plus expected payload, so little is wasted.
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?
Covers the gaps annotations and schema leave open: access/auth model, the enum-to-parameter mapping, and a sketch of return contents in the absence of an output schema. An agent has everything needed to select and invoke it correctly.
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 already 100%, setting a baseline of 3, but the description earns above baseline by mapping each `what` enum value to its required argument (slug, match_id, tournament_id, league_slug) and describing the content of each result — richer than the schema's terse 'Used with what: ...' notes.
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?
States a specific verb ('look up') and resource ('public page') and immediately scopes it with 'what anyone can see on Beleeg — a league, team, match or tournament public page — no membership needed.' This cleanly separates it from the sibling write/admin tools (start_league, start_tournament, send_feedback).
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?
Gives clear context for when to use it: public data that requires no membership, with an explicit 'Read-only' framing and the requirement to pick `what` plus the listed slug/id. It does not explicitly name an alternative tool for member-visible data, so it falls just short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
beleeg_send_feedbackTell Beleeg what was missingAInspect
Send Beleeg a note when it cannot do something the person asked for, or when a tool was confusing or gave a wrong answer. Say what they wanted and, if one did, which tool fell short. Never include personal details — names, emails or phone numbers — of the person or anyone else. The Beleeg team reads these to decide what to build; nothing is done automatically and nobody replies, so still tell the person what you could not do and, where there is one, where in Beleeg they can do it themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | The tool that fell short, if one did. | |
| message | Yes | What Beleeg could not do, or what was confusing or wrong, in a sentence or two. No names, emails or phone numbers of anyone. | |
| trying_to | No | What the person was trying to get done, e.g. "move all of Saturday's games to Sunday". |
Output Schema
| Name | Required | Description |
|---|---|---|
| received | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare this is a non-read, non-idempotent, non-destructive write. The description adds meaningful behavior beyond that: the Beleeg team reads submissions to prioritize work, nothing happens automatically, no one replies, and personal details (names, emails, phone numbers) must never be included. It does not mention any rate limits or what the call returns, but the privacy prohibition and no-reply semantics are substantive added context.
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 trigger condition is front-loaded in the first sentence and each subsequent sentence carries a distinct constraint (attribution, privacy, no-reply escalation back to the user). The final sentence is long and packs three ideas, but none of it is filler for a tool with this much policy attached.
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?
An output schema exists, so return values need no explanation, and the description covers triggers, required content, privacy rules, and the expectation of no follow-up. The three parameters are all documented in-schema. What remains thin is what happens after submission beyond 'the team reads these,' but that is minor for a fire-and-forget feedback 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 100% and each parameter already carries a description and example (e.g. trying_to's "move all of Saturday's games to Sunday"). The description's 'Say what they wanted and, if one did, which tool fell short' essentially restates the schema fields at a high level, adding intent framing but no new format or constraint detail.
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 and resource ('Send Beleeg a note') and defines the exact triggering conditions: the assistant cannot do something the person asked for, a tool was confusing, or a wrong answer was given. Siblings (look up, start league, start tournament) are functionally unrelated, so no disambiguation is needed and none is missed.
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?
It gives explicit when-to-use conditions and an important counter-instruction: because nothing is done automatically and nobody replies, the agent must still tell the person what could not be done and, where possible, point them to where in Beleeg they can do it themselves. This is exactly the routing decision an agent needs and is not inferable elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
beleeg_start_leagueStart a league (no account needed)AInspect
Creates a real league on Beleeg right away for someone who does not have a Beleeg account yet: the league, its first season with registration open, optional teams, and a public page. It is held for the organizer whose email you give: to take it over they open the claim_url, sign in at beleeg.com with THAT email address (email code, Google or Apple), and choose to keep it. Signing in alone does not make it theirs. Always give the person the claim_url exactly as returned (never build a link from the name) and tell them which email to sign in with. Ask the person for their email; never guess one. If Beleeg refuses, tell the person to sign in to Beleeg with that email and ask again. After signing in, the organizer is asked whether to keep the league or discard it; it is theirs only once they keep it. Invited people are saved but not emailed until the organizer has kept the league and sends them. If the organizer has not kept it within 30 days, the league is removed. Limits: 3 per organizer email per day, 5 per caller per day, and at most 3 leagues or brackets waiting on the organizer. Team names that differ only by capitals or spacing are treated as one team. Tell the person what you are about to create and get a yes BEFORE calling this; there is no separate confirm step.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Town or city, shown on the public page. | |
| name | Yes | League name, plain text, for example "Tuesday Night Pickleball". | |
| sport | Yes | Sport key, for example pickleball, platform-tennis, tennis, softball, volleyball. | |
| teams | No | Team names to create right away (up to 64). | |
| client | No | Which assistant this is, for example muse, claude, chatgpt, cursor. | |
| timezone | Yes | IANA time zone the league plays in, for example America/Chicago. | |
| inviteEmails | No | People to invite (up to 200). They are only SAVED as pending invites: no email goes out until the organizer has signed in, kept the league, and sends them. | |
| organizerEmail | Yes | The organizer's own email address. They sign in with it to take over the league. Ask for it; never guess. | |
| organizationName | No | Club or group name. Defaults to the league name. | |
| registrationClosesOn | No | Last day to register, YYYY-MM-DD. Defaults to 30 days from today. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| slug | Yes | |
| teams | Yes | |
| claim_url | Yes | Give this to the organizer: it explains how to take over the league. |
| league_id | Yes | |
| public_url | Yes | The public league page. Works right away, and says the league is waiting for its organizer until it is kept. Use it exactly as returned: while the league waits its address ends in a few extra characters. Once kept it moves to the short address if that is free, and this one keeps working. |
| invites_pending | Yes | Invites saved but NOT sent. |
| organization_id | Yes | |
| organizer_email | Yes | |
| claim_instructions | Yes | Read this to the person. |
| unclaimed_expires_on | Yes | If the organizer has not signed in and kept the league by this date, it is removed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly=false, openWorld=false, idempotent=false, destructive=false). The description adds substantial behavioral context the annotations cannot convey: the claim_url/is-it-theirs ownership flow, that sign-in alone does not transfer ownership, that invites stay unsent until the organizer keeps the league, the 30-day removal, and concrete rate limits (3/organizer/day, 5/caller/day, 3 pending).
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?
Front-loaded with purpose and claim mechanics, and almost every sentence carries operational value (claim_url handling, limits, dedup rule, confirmation requirement). Slight redundancy: ownership is restated ('Signing in alone does not make it theirs' vs 'it is theirs only once they keep it'), and the keep/discard flow is mentioned twice.
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?
Given an output schema exists, return-value detail is not required, and the description still covers the full operational picture: creation side effects, ownership/claim flow, invite deferral, expiry, rate limits, and the mandatory confirmation step. Nothing an agent needs to invoke it correctly is missing.
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 100%, so all ten parameters are already documented in the schema, setting the baseline at 3. The description reinforces a few constraints (organizer email must be asked for and never guessed, team-name capitalization/spacing normalization) but adds little parameter detail beyond what the schema already states.
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?
States a specific verb and resource ('Creates a real league on Beleeg right away') with a clear scope qualifier: for someone without a Beleeg account. This cleanly separates it from the sibling prepare_create_league / prepare_* family, which only stage actions.
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?
Gives explicit when-to-use ('someone who does not have a Beleeg account yet'), prerequisites (ask for the email, never guess), and a required pre-call step ('Tell the person what you are about to create and get a yes BEFORE calling this; there is no separate confirm step'), plus fallback behavior when Beleeg refuses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
beleeg_start_tournamentStart a tournament bracket (no account needed)AInspect
Creates a real standalone tournament bracket on Beleeg right away for someone who does not have a Beleeg account yet: the draw is built from the entrants you give. It is never attached to an existing league or organization. It is held for the organizer whose email you give: to take it over they open the claim_url, sign in at beleeg.com with THAT email address (email code, Google or Apple), and choose to keep it. Signing in alone does not make it theirs. Always give the person the claim_url exactly as returned (never build a link from the name) and tell them which email to sign in with. Ask the person for their email; never guess one. If Beleeg refuses, tell the person to sign in to Beleeg with that email and ask again. After signing in, the organizer is asked whether to keep the bracket or discard it; it is theirs only once they keep it. Until then nobody else can see the entrants or the draw: the bracket page only says it is waiting for its organizer. If the organizer has not kept it within 30 days, the bracket is removed. Limits: up to 64 entrants (32 for round robin); 3 per organizer email per day, 5 per caller per day, and at most 3 leagues or brackets waiting on the organizer. Tell the person what you are about to create and get a yes BEFORE calling this; there is no separate confirm step.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tournament name, plain text. | |
| bestOf | No | Sets per match, 1 to 9. Defaults to 3. | |
| client | No | Which assistant this is, for example muse, claude, chatgpt, cursor. | |
| format | No | Bracket format. Defaults to single_elim. | |
| entrants | Yes | Who is playing: a list of names, or text with one entrant per line. For pairs write "Ann Lee / Bo Park". 2 to 64 entrants (2 to 32 for round_robin). | |
| organizerEmail | Yes | The organizer's own email address. They sign in with it to run the bracket. Ask for it; never guess. | |
| registrationUnit | No | solo (default) or pair (doubles). |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| format | Yes | |
| entrants | Yes | |
| claim_url | Yes | Give this to the organizer: it explains how to run the bracket. |
| public_url | Yes | The bracket page. Until the organizer keeps the bracket it only says the tournament is waiting for its organizer; the entrants and the draw show once it is kept. |
| tournament_id | Yes | |
| organizer_email | Yes | |
| claim_instructions | Yes | Read this to the person. |
| unclaimed_expires_on | No | If the organizer has not signed in and kept the bracket by this date, it is removed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses important behavior: the bracket is held for the organizer until they claim it, signing in alone is insufficient, nobody else can see entrants until it is kept, and unclaimed brackets are removed after 30 days. It also states concrete limits: up to 64 entrants (32 for round robin), 3 per organizer email per day, 5 per caller per day, and at most 3 waiting leagues or brackets. It does not contradict 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 long but front-loaded: it states the core action first, then the claim process, visibility rules, retention, limits, and pre-call confirmation. Every sentence carries operational information needed to avoid mistakes, and there is no redundant filler. The density is justified by the complexity of the tool.
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?
Given the tool's complexity and the existence of an output schema, the description covers the missing behavioral context thoroughly: accountless creation, claim flow, visibility, retention, rate limits, and confirmation requirements. It does not need to explain return values because an output schema is present. An agent has enough information to invoke the tool correctly and guide the user afterward.
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 100%, so the schema already documents all seven parameters, including entrants, format, bestOf, and organizerEmail. The description reinforces a few constraints, such as entrant limits and pair naming, but adds no parameter syntax or meaning beyond what the schema provides. With full schema coverage, the baseline score of 3 is appropriate.
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 opens with a specific verb and resource: 'Creates a real standalone tournament bracket on Beleeg.' It immediately distinguishes the tool from a league-creation sibling by stating the bracket 'is never attached to an existing league or organization.' It also clarifies the no-account use case, so an agent can tell what this tool does without opening 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 description clearly defines the usage context: for someone without a Beleeg account, creating a standalone bracket rather than one attached to a league or organization. It also gives workflow guidance such as asking for the organizer's email, never guessing it, and getting a yes before calling. However, it does not explicitly name an alternative sibling tool such as beleeg_start_league, so it stops short of the full when-to-use-vs-alternative guidance.
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.
2 tool updates
- Added
beleeg_start_league - Added
beleeg_start_tournament
2 tool updates
- Removed
beleeg_start_league - Removed
beleeg_start_tournament
2 tool updates
- Added
beleeg_start_league - Added
beleeg_start_tournament
2 tool updates
- Removed
beleeg_start_league - Removed
beleeg_start_tournament
1 tool update
- Changed
beleeg_start_tournament1 field changed- changed
Input schema / properties / format / enumPrevious value: -[ - "single_elim", - "single_elim_consolation", - "three_match_guarantee", - "round_robin", - "pool_to_bracket" -]New value: +[ + "single_elim", + "single_elim_consolation", + "three_match_guarantee", + "double_elim", + "round_robin", + "pool_to_bracket" +]
7 tool updates
- Removed
beleeg_get_public_league - Removed
beleeg_get_public_match - Removed
beleeg_get_public_team - Removed
beleeg_get_public_tournament - Removed
beleeg_list_public_tournaments_by_league - Added
beleeg_look_up_public - Added
beleeg_send_feedback
7 tool updates
- First observed
beleeg_get_public_league - First observed
beleeg_get_public_match - First observed
beleeg_get_public_team - First observed
beleeg_get_public_tournament - First observed
beleeg_list_public_tournaments_by_league - First observed
beleeg_start_league - First observed
beleeg_start_tournament
Related MCP Connectors
Round-robin fixtures, standings and match-day plans for league organizers. Free.
Run a recreational sports league from an AI assistant: standings, schedules, rosters, scores, dues.
Run racket-sport tournaments from your AI assistant: fair draws, scores, live standings.
Round-robin ladders and match scores for small clubs. Players join by QR poster; no app, no account.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTournament software for tennis, padel, pickleball and more: fair draws, live standings, scores and dropout handling.MIT
- AlicenseAqualityDmaintenanceSchedules, scores, odds, splits & explainable AI bet confidence — 8+ sports, free instant key.11611MIT
- AlicenseNot gradedqualityBmaintenanceEnables reading and scoring Fleaflicker fantasy football leagues, including rosters, standings, matchups, boxscores, draft boards, and stat line scoring using league-specific rules, with no authentication required.MIT
- AlicenseNot gradedqualityBmaintenanceProvides read-only, league-aware fantasy football data to AI clients without requiring an API key or database, covering league overviews, weekly matchups, injuries, trending players, historical rivalries, playoff brackets, drafts, and traded picks. It runs statelessly on Cloudflare Workers, automatically traversing linked prior seasons for multi-year analysis.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.