Skip to main content
Glama

Beleeg (public, no account)

Server Details

Public league standings, schedules and brackets; start a league or bracket with no account.

Ownership verified
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness3/5

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 tools
beleeg_look_up_publicLook up a public pageA
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoPublic URL-safe league slug. Used with what: league, team.
whatYesWhat to look up. Every value is listed, with its params, in the tool description.
match_idNoOne match id (from what "schedule"). For the match-day lookups, leave out to mean the person's next match. Used with what: match.
league_slugNoPublic league slug (not UUID). Used with what: league_tournaments.
tournament_idNoA tournament id, from what "tournaments". Used with what: tournament.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoThe tool that fell short, if one did.
messageYesWhat Beleeg could not do, or what was confusing or wrong, in a sentence or two. No names, emails or phone numbers of anyone.
trying_toNoWhat the person was trying to get done, e.g. "move all of Saturday's games to Sunday".

Output Schema

ParametersJSON Schema
NameRequiredDescription
receivedYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoTown or city, shown on the public page.
nameYesLeague name, plain text, for example "Tuesday Night Pickleball".
sportYesSport key, for example pickleball, platform-tennis, tennis, softball, volleyball.
teamsNoTeam names to create right away (up to 64).
clientNoWhich assistant this is, for example muse, claude, chatgpt, cursor.
timezoneYesIANA time zone the league plays in, for example America/Chicago.
inviteEmailsNoPeople 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.
organizerEmailYesThe organizer's own email address. They sign in with it to take over the league. Ask for it; never guess.
organizationNameNoClub or group name. Defaults to the league name.
registrationClosesOnNoLast day to register, YYYY-MM-DD. Defaults to 30 days from today.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
slugYes
teamsYes
claim_urlYesGive this to the organizer: it explains how to take over the league.
league_idYes
public_urlYesThe 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_pendingYesInvites saved but NOT sent.
organization_idYes
organizer_emailYes
claim_instructionsYesRead this to the person.
unclaimed_expires_onYesIf the organizer has not signed in and kept the league by this date, it is removed.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTournament name, plain text.
bestOfNoSets per match, 1 to 9. Defaults to 3.
clientNoWhich assistant this is, for example muse, claude, chatgpt, cursor.
formatNoBracket format. Defaults to single_elim.
entrantsYesWho 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).
organizerEmailYesThe organizer's own email address. They sign in with it to run the bracket. Ask for it; never guess.
registrationUnitNosolo (default) or pair (doubles).

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
formatYes
entrantsYes
claim_urlYesGive this to the organizer: it explains how to run the bracket.
public_urlYesThe 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_idYes
organizer_emailYes
claim_instructionsYesRead this to the person.
unclaimed_expires_onNoIf the organizer has not signed in and kept the bracket by this date, it is removed.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updates
    • Addedbeleeg_start_league
    • Addedbeleeg_start_tournament
  2. 2 tool updates
    • Removedbeleeg_start_league
    • Removedbeleeg_start_tournament
  3. 2 tool updates
    • Addedbeleeg_start_league
    • Addedbeleeg_start_tournament
  4. 2 tool updates
    • Removedbeleeg_start_league
    • Removedbeleeg_start_tournament
  5. 1 tool update
    • Changedbeleeg_start_tournament1 field changed
      • changedInput schema / properties / format / enum
        Previous 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"
        +]
  6. 7 tool updates
    • Removedbeleeg_get_public_league
    • Removedbeleeg_get_public_match
    • Removedbeleeg_get_public_team
    • Removedbeleeg_get_public_tournament
    • Removedbeleeg_list_public_tournaments_by_league
    • Addedbeleeg_look_up_public
    • Addedbeleeg_send_feedback
  7. 7 tool updates
    • First observedbeleeg_get_public_league
    • First observedbeleeg_get_public_match
    • First observedbeleeg_get_public_team
    • First observedbeleeg_get_public_tournament
    • First observedbeleeg_list_public_tournaments_by_league
    • First observedbeleeg_start_league
    • First observedbeleeg_start_tournament

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Tournament software for tennis, padel, pickleball and more: fair draws, live standings, scores and dropout handling.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources