Fair Random
Server Details
Fair, reproducible randomness for agents: dice, coins, integers, list picks, shuffles, with seeds.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct random operation, but pick_from_list and shuffle_list both operate on lists, and roll_dice overlaps semantically with random_integer (dice rolls are bounded integers). Descriptions clarify the boundaries well enough that misselection is unlikely.
Four of five names follow a clean verb_noun pattern (flip_coin, pick_from_list, roll_dice, shuffle_list), but random_integer is noun-first without a verb, a minor deviation from the otherwise consistent scheme.
Five tools is a tight, well-scoped set for a randomness utility, with each tool covering a genuine and distinct use case (coin, list subset, integer, dice, shuffle).
Core randomness primitives are well covered, but there are minor gaps such as random floats, weighted picks, or random strings/UUIDs. Agents can work around these using the existing tools, so the surface is largely complete.
Available Tools
5 toolsflip_coinFlip a coinBRead-onlyInspect
Flip a fair coin 1 to 100 times.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed of an earlier answer to get the same result again (that is how a draw is checked). Leave it out for a fresh draw. | |
| count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the 'fair' uniformity claim; it says nothing about reproducibility via seed or the return format, though the idempotentHint=false annotation and the schema's seed text together imply the quirky seed-replay behavior the description omits.
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 with no filler. Nothing to trim and the essential scope (count bound) is stated immediately.
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 no output schema, the description should ideally state what a flip returns (heads/tails vs boolean) and how multiple flips are represented. For a simple two-parameter tool the omission is survivable, but it leaves a real gap for an agent composing a response.
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 50%: seed is well documented in the schema, while count relies on its min/max/default constraints. The description's '1 to 100 times' reinforces the count range, but adds nothing about the seed parameter's verification purpose.
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 ('Flip a fair coin') plus the count range, so the core action is unambiguous. It stops short of distinguishing itself from siblings like roll_dice or random_integer, which occupy nearly the same conceptual space.
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?
No guidance on when to prefer this over roll_dice, random_integer, or pick_from_list, and no mention of the seed-reuse workflow for verifying or reproducing a draw. The agent is left to infer selection entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pick_from_listPick from a listARead-onlyInspect
Pick 1 or more items from a list of up to 1000, each equally likely. Without repeats by default.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed of an earlier answer to get the same result again (that is how a draw is checked). Leave it out for a fresh draw. | |
| count | No | ||
| items | Yes | ||
| unique | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, non-idempotent and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: uniform probability per item, an explicit cap of 1000, and the default no-repeat behavior — the latter also explaining why the operation is not idempotent.
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 zero filler, front-loading the core action and following immediately with the probability and uniqueness semantics. Nothing could be cut without losing information.
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 4-parameter tool with no output schema, the description covers the selection semantics but omits edge cases an agent would want: what happens when count exceeds the number of usable unique items, and whether duplicate values in the input are tolerated. Adequate but not fully 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 only 25% (only 'seed' is documented), so the description must compensate. It does partially: '1 or more' maps to count's minimum, 'up to 1000' maps to the maximum, and 'without repeats by default' explains unique's default of true. However it says nothing about seeding/reproducibility (left to the schema) or the per-item length limit, so gaps remain.
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?
Names a specific verb and resource ('Pick 1 or more items from a list') plus scope ('up to 1000') and the selection guarantee ('each equally likely'). It is distinguishable from roll_dice/flip_coin/random_integer, but never contrasts itself with the closest sibling, shuffle_list, which also operates on a list.
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?
There is no when-to-use or when-not guidance and no alternative is named. The reader must infer that this is the tool for sampling a subset, whereas shuffle_list reorders the whole list. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_integerRandom integersARead-onlyInspect
Integers from min to max inclusive, 1 to 1000 of them, with or without repeats. The range may hold at most 2^32 values.
| Name | Required | Description | Default |
|---|---|---|---|
| max | Yes | ||
| min | Yes | ||
| seed | No | Optional. 64 hex characters. Give the seed of an earlier answer to get the same result again (that is how a draw is checked). Leave it out for a fresh draw. | |
| count | No | ||
| unique | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered; the description adds the hard range ceiling of 2^32 values and the inclusive bound semantics, which are not derivable from the schema. It still omits what happens on impossible requests (e.g. unique=true with a count exceeding the range size).
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 tight sentences with zero filler and the interval definition front-loaded. The phrasing '1 to 1000 of them' is slightly compressed at the cost of a little readability, but nothing 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?
For a 5-parameter tool with no output schema, the description should say what comes back (a single integer vs an array when count > 1) and how errors are surfaced when unique cannot be satisfied. Annotations cover safety, but the return shape remains unstated, leaving a real 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?
With only 20% schema description coverage, the description carries most of the load: it explains min/max as an inclusive interval, count as 1-1000 items, and unique as 'with or without repeats' — covering four of five parameters. The seed parameter's 64-hex replay semantics are left to the schema, which does document them well.
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 the concrete resource (integers drawn from a min/max interval) plus its scope controls (count 1-1000, repeats optional), which is clearly distinct from siblings like pick_from_list or shuffle_list that operate on supplied collections. It never explicitly contrasts itself with those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose random_integer over roll_dice, pick_from_list, or shuffle_list, and no prerequisites or exclusions. Only an incidental hint about replaying a draw via the seed, which is really a parameter behavior rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roll_diceRoll diceBRead-onlyInspect
Roll 1 to 100 dice with 2 to 1000 sides each (default one six-sided die).
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed of an earlier answer to get the same result again (that is how a draw is checked). Leave it out for a fresh draw. | |
| count | No | ||
| sides | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds only the dice/sides ranges and default, which largely duplicate the schema's minimum/maximum/default values, so it earns a baseline 3 rather than more.
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 with zero filler. Every clause (count range, sides range, default) carries information an agent needs, and nothing is repeated or padded.
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 cover safety, but there is no output schema and the description never says what a roll returns (e.g., a list of values) or how the seed maps to a reproducible result. For a tool with no output schema, the return shape is left for the agent to guess.
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 coverage is only 33% (only seed is documented in-schema), but the description compensates by conveying the meaningful ranges and default for count and sides: '1 to 100 dice with 2 to 1000 sides each (default one six-sided die).' Seed semantics are already well handled in the schema, so the combination leaves no parameter 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?
States a specific verb (roll) and resource (dice) with concrete bounds: 1-100 dice, 2-1000 sides, default one six-sided die. That is enough to distinguish it from flip_coin, pick_from_list, and shuffle_list, though it never explicitly contrasts itself with the overlapping random_integer sibling.
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 contains no when-to-use or when-not-to-use guidance and never names an alternative. An agent must infer from the name alone whether to reach for this tool versus random_integer or flip_coin; the seed reproducibility workflow is described only in the schema, not here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shuffle_listShuffle a listARead-onlyInspect
Put up to 1000 items in a random order; every order is equally likely.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed of an earlier answer to get the same result again (that is how a draw is checked). Leave it out for a fresh draw. | |
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, openWorld false), so the bar is lower, and the description still adds a real behavioral guarantee: 'every order is equally likely' (uniform permutation). The 1000-item ceiling is also surfaced. It omits that repeated calls with the same items produce different results unless seeded, which is only implied via idempotentHint=false.
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 clause pair with zero filler, and the key constraint (1000 items) and the core guarantee are both front-loaded.
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, side-effect-free permutation tool with annotations covering safety and the schema covering the seed, the description is nearly sufficient. The only minor gap is that it never says the shuffled list is what gets returned, which the absent output schema would otherwise need to clarify.
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 coverage is 50%: the seed parameter is well documented in the schema (64 hex chars, replay semantics), while items has no schema description. The description corroborates the item limit ('up to 1000 items') but adds nothing about the seed beyond what the schema already states, so the baseline 3 applies.
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 (put in a random order) and the resource (a list of items), so an agent immediately understands this permutes the whole input rather than selecting a single element. It doesn't explicitly name sibling pick_from_list, which is the closest adjacent operation, so it stops short of full differentiation.
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?
Use is implied by the operation itself—shuffle the list rather than pick one item or roll dice—but there is no explicit when-to-use or when-not-to-use statement, and no mention of the seed-replay scenario for verification. The schema's seed description carries that usage context instead.
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.
5 tool updates
- First observed
flip_coin - First observed
pick_from_list - First observed
random_integer - First observed
roll_dice - First observed
shuffle_list
Related MCP Connectors
Cryptographically sound randomness for agents, with verifiable commit-reveal.
Neutral fairness computation for agents: fair division, verifiable random, Shapley shares.
Verifiable random decisions, audit sampling, fair selection, and proof verification using QnEvt.
Fair random picks with the wheel in your chat: pick names, split teams, run certified draws.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides true random generation tools for AI agents, including coin flip, dice roller, random numbers, and wheel of fortune, enabling decisions and TTRPG sessions.2 npmMIT
- FlicenseAqualityDmaintenanceEnables random selection tools including lottery drawing from option lists, dice rolling with customizable sides and counts, and coin flipping. Supports both single and multiple draws with duplicate control options.32-
- AlicenseAqualityBmaintenanceProvides verifiable randomness for AI agents, enabling dice rolls, coin flips, ranges, winners, and shuffles with on-chain proofs, paid via Circle Agent Wallet.3344 npmMIT
- FlicenseNot gradedqualityCmaintenanceProvides cryptographically secure random dice rolls for AI assistants, supporting standard and advanced dice notation for tabletop RPGs and games.8-
Glama MCP Gateway
Add one secure layer between your agents and this server.