Skip to main content
Glama
tribeunal

Tribeunal Decision-Making Platform

Official

Create case

tribeunal_create_case

Create a Tribeunal case for community decision-making — get a jury verdict, advice, or poll results. Use directly when a decision is needed.

Instructions

Create a case on Tribeunal for community decision-making — case (jury decides), advice (creator decides), or poll (opinion gathering). Use directly when the user wants something decided; do not search first. Cases are private by default; set visibility "public" to let anyone find and join. Add allowsGuestVotes to a private case for a link-poll instead: unlisted, votable via the link. A private case answers with a shareUrl to share. Refuses 400 if arbitrationMode pairs with allowsGuestVotes or minVotes under 2. Returns the created case; keys you need first: {uuid, title, state, url, shareUrl}. This only creates a case — edit it with tribeunal_update_case, remove it with tribeunal_delete_case, and change a side's picture later with tribeunal_update_side_image (sides[].image here sets only the initial picture).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoUp to 4 category tags.
typeYescase (binding jury decision), advice (input for the creator) or poll (opinion gathering) — changes only how the result reads, not the voting mechanics.
sidesYes2-10 choices voters pick between; each needs a name and may carry a description and an https image URL, fetched and re-encoded server-side (png/jpeg/webp, <=5 MB) for its vote card.
titleYesThe question or statement to be decided (3-200 characters).
juryTypeNopublic (anyone) or invited (named jurors only). Omitted, it follows visibility: invited on a private case, public on a public case or a link-poll.
minVotesNoFewest votes this case needs before it can reach a verdict (0-100, default 0 = no minimum). Close it with fewer and it ends with a Void verdict carrying voidReason "quorum_not_met" rather than deciding on a turnout of one or two.
caseLengthNoVoting duration in seconds, 60 to 2,592,000 (30 days); defaults to 86400 (1 day).
jurorCountNo2-100 jurors requested; defaults to 12. Only gates opening when openImmediately is false, holding the case in jury_selection until this many have joined.
visibilityNoprivate (default: only you, invited jurors and admins) or public (anyone can find and read it). Pairing private with allowsGuestVotes makes a link-poll instead.
descriptionYesContext, background and decision criteria (at least 10 characters).
arbitrationModeNoBind this case to arbitration rules, for a verdict someone outside the case has to rely on (default false). You cannot vote on, join the jury of, or close early a case you created in this mode — an admin closes it, or it closes at its deadline; evidence marks freeze once it closes so the record it was decided on stops moving; and the early-vote and decisive-vote reward multipliers are switched off, so timing your vote no longer multiplies your payout. Requires minVotes of at least 2 (omit it and 3 is used) and cannot be combined with allowsGuestVotes. Use it when the case settles something with stakes — a dispute, a payout, a contract term — rather than gathering opinion.
openImmediatelyNoDefaults to true: opens for voting right away, with invited jurors free to join/vote while already open. Set false to wait in jury_selection until jurorCount jurors join.
allowsGuestVotesNoDefaults to false. Lets visitors with no account vote, full-weight and deduplicated per browser via a signed cookie. Requires a public jury — pairing it with a private case makes a link-poll.
decisionRequirementNoThe weakest outcome this case will accept as a verdict (default "any"). "any" takes whatever the tally gives, down to a plurality. "simple" needs at least half, "qualified" at least 66%, "unanimous" every vote on one side. A case that reaches a stronger result than required still reports the stronger one. On any value other than "any", missing the requirement closes the case with a Void verdict carrying voidReason "requirement_not_met"; an "any" case that merely ties stays Undecided.
maxAiJurorPercentageNo0-100; caps the share of jurors the platform may auto-seat as AI personas. Defaults to 50; set 0 for an all-human panel.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv2.0.0
    • changedInput schema / properties / allowsGuestVotes / description
      Previous value: -"Let visitors without a Tribeunal account vote on this case (default false). Guest votes count in full — they enter the tallies, percentages and the verdict exactly like a registered juror's. Requires a public jury; visibility may be either, and pairing it with visibility \"private\" makes a link-poll: unlisted everywhere, but votable by whoever holds the link. Guests are deduplicated per browser, so a returning visitor changes their vote rather than adding one, but someone determined can still vote again from another browser — enable it where reach matters more than strict one-person-one-vote."New value: +"Defaults to false. Lets visitors with no account vote, full-weight and deduplicated per browser via a signed cookie. Requires a public jury — pairing it with a private case makes a link-poll."
    • changedInput schema / properties / caseLength / description
      Previous value: -"Voting duration in seconds (min: 1 minute, max: 30 days, default: 1 day)"New value: +"Voting duration in seconds, 60 to 2,592,000 (30 days); defaults to 86400 (1 day)."
    • changedInput schema / properties / description / description
      Previous value: -"Context, background, and criteria for the case"New value: +"Context, background and decision criteria (at least 10 characters)."
    • changedInput schema / properties / jurorCount / description
      Previous value: -"Number of jurors the case asks for (2-100, default 12). It gates opening only when openImmediately is false, where the case waits until this many jurors have joined. For a small invited panel, set this to the number of people you invite."New value: +"2-100 jurors requested; defaults to 12. Only gates opening when openImmediately is false, holding the case in jury_selection until this many have joined."
    • changedInput schema / properties / juryType / description
      Previous value: -"Who can participate — public (anyone) or invited only. Omitted, it follows the visibility: invited on a private case, public on a public case or a link-poll."New value: +"public (anyone) or invited (named jurors only). Omitted, it follows visibility: invited on a private case, public on a public case or a link-poll."
    • changedInput schema / properties / maxAiJurorPercentage / description
      Previous value: -"Maximum percentage of jurors that may be AI personas (0 = none, 100 = all; default 50). The platform seats AI jurors up to this share automatically on either jury type — through the juror pools on a public jury and through platform-issued invites on an invited one — so set 0 for a human-only panel."New value: +"0-100; caps the share of jurors the platform may auto-seat as AI personas. Defaults to 50; set 0 for an all-human panel."
    • changedInput schema / properties / openImmediately / description
      Previous value: -"Open the case for voting straight away (default true). Invited jurors are still invited and can view, join and vote while it is already open. Set false to hold the case in jury selection until jurorCount jurors have joined, and only then open it. While it waits, AI jurors are seated automatically within the AI juror limit on an invited jury or a private link-poll."New value: +"Defaults to true: opens for voting right away, with invited jurors free to join/vote while already open. Set false to wait in jury_selection until jurorCount jurors join."
    • changedInput schema / properties / sides / description
      Previous value: -"The choices/options voters pick between (2-10)"New value: +"2-10 choices voters pick between; each needs a name and may carry a description and an https image URL, fetched and re-encoded server-side (png/jpeg/webp, <=5 MB) for its vote card."
    • changedInput schema / properties / tags / description
      Previous value: -"Up to 4 tags for categorization"New value: +"Up to 4 category tags."
    • changedInput schema / properties / title / description
      Previous value: -"Case title — the question or statement to be decided"New value: +"The question or statement to be decided (3-200 characters)."
    • changedInput schema / properties / type / description
      Previous value: -"Case type — case (binding jury decision), advice (input for the creator), or poll (opinion gathering)"New value: +"case (binding jury decision), advice (input for the creator) or poll (opinion gathering) — changes only how the result reads, not the voting mechanics."
    • changedInput schema / properties / visibility / description
      Previous value: -"Case visibility — private (the default: only you, your invited jurors and admins) or public (anyone can find and read it). Omitted, the case is private — unless juryType is \"public\", which makes a public case. A private case must use an invited jury; omit juryType and it is set to invited automatically. One exception: set allowsGuestVotes on a private case and it becomes a link-poll — still absent from every listing, search and feed, but readable and votable by anyone you send the link to — which takes a public jury instead."New value: +"private (default: only you, invited jurors and admins) or public (anyone can find and read it). Pairing private with allowsGuestVotes makes a link-poll instead."
  2. Changed4 schema fields changedv1.15.0
    • removedInput schema / properties / juryType / default
      Removed value: -"public"
    • changedInput schema / properties / juryType / description
      Previous value: -"Who can participate — public (anyone) or invited only"New value: +"Who can participate — public (anyone) or invited only. Omitted, it follows the visibility: invited on a private case, public on a public case or a link-poll."
    • removedInput schema / properties / visibility / default
      Removed value: -"public"
    • changedInput schema / properties / visibility / description
      Previous value: -"Case visibility — public (anyone can find and read it) or private (only you, your invited jurors and admins). A private case must use an invited jury; omit juryType and it is set to invited automatically. One exception: set allowsGuestVotes on a private case and it becomes a link-poll — still absent from every listing, search and feed, but readable and votable by anyone you send the link to — which takes a public jury instead."New value: +"Case visibility — private (the default: only you, your invited jurors and admins) or public (anyone can find and read it). Omitted, the case is private — unless juryType is \"public\", which makes a public case. A private case must use an invited jury; omit juryType and it is set to invited automatically. One exception: set allowsGuestVotes on a private case and it becomes a link-poll — still absent from every listing, search and feed, but readable and votable by anyone you send the link to — which takes a public jury instead."
  3. Changed2 schema fields changedv1.14.3
    • changedInput schema / properties / maxAiJurorPercentage / description
      Previous value: -"Maximum percentage of jurors that may be AI personas (0 = none allowed, 100 = all; default 50)"New value: +"Maximum percentage of jurors that may be AI personas (0 = none, 100 = all; default 50). The platform seats AI jurors up to this share automatically on either jury type — through the juror pools on a public jury and through platform-issued invites on an invited one — so set 0 for a human-only panel."
    • changedInput schema / properties / openImmediately / description
      Previous value: -"Open the case for voting straight away (default true). Invited jurors are still invited and can view, join and vote while it is already open. Set false to hold the case in jury selection until jurorCount jurors have joined, and only then open it."New value: +"Open the case for voting straight away (default true). Invited jurors are still invited and can view, join and vote while it is already open. Set false to hold the case in jury selection until jurorCount jurors have joined, and only then open it. While it waits, AI jurors are seated automatically within the AI juror limit on an invited jury or a private link-poll."
  4. First observedv1.13.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only state it is a non-readonly, non-idempotent, non-destructive open-world call; the description carries the real behavioral burden and does so thoroughly: private-by-default visibility, the allowsGuestVotes+private link-poll transformation, shareUrl being returned for private cases, 400 refusal conditions for invalid arbitrationMode pairs, and the note that sides[].image only sets the initial picture (future edits need update_side_image). No statement contradicts 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?

Six dense sentences with zero filler; the core purpose is front-loaded and every subsequent sentence earns its place — type distinctions, usage timing, defaults, error conditions, return keys, and sibling routing. It deliberately avoids restating what the schema already documents.

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?

For a 15-parameter creation tool with no output schema, the description is complete: return keys ({uuid, title, state, url, shareUrl}) compensate for the missing output schema, failure modes are disclosed, defaults are surfaced, and the full lifecycle is routed to siblings. The schema already covers per-parameter semantics at 100%, so nothing an agent needs to invoke this correctly is absent.

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 coverage is 100%, so the schema already documents every parameter, setting the baseline at 3. The description adds genuine value on top by exposing cross-parameter interactions not visible in the schema — the arbitrationMode/allowsGuestVotes conflict, the minVotes floor under arbitrationMode, and the visibility/allowsGuestVotes link-poll combination — though these are fewer in number than the schema's own per-field 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?

Opens with a specific verb+resource ('Create a case on Tribeunal for community decision-making') and immediately disambiguates the three modes (case/advice/poll). It further separates itself from siblings by name ('This only creates a case — edit it with tribeunal_update_case, remove it with tribeunal_delete_case'), so an agent cannot confuse it with the update or search tools.

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 guidance: 'Use directly when the user wants something decided; do not search first' — an explicit when-not that routes around tribeunal_search_cases. It also names the exact alternatives for follow-up operations (update_case, delete_case, update_side_image), leaving no ambiguity about which sibling handles which phase.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.