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 6 tools
Each tool targets a distinct random operation: coin flip, dice roll, integer generation, list selection, list shuffling, and a branded personal-number draw. There is some conceptual overlap because random_integer could emulate coin flips or dice rolls, but the descriptions make the intended boundaries clear.
Most names use snake_case and several follow a verb_noun pattern, such as flip_coin, roll_dice, and shuffle_list. However, random_integer is adjective_noun and prismtect_number is a branded noun phrase, so the naming convention is mixed but still readable.
Six tools is well-scoped for a random-generation utility server, with each tool covering a recognizable random primitive. There is no obvious redundancy that bloats the surface.
The server covers the main fair-random operations: coin flips, dice, integers, list picking, and shuffling. Minor gaps exist for weighted selection, random floats, or random strings, but agents can work around most of these or they fall outside the apparent core scope.
Available Tools
6 toolsflip_coinFlip a coinARead-onlyInspect
Flip a fair coin 1 to 100 times. The answer is a drawstoday.com link where the result is shown; the answer itself carries no result.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed shown on an earlier result page 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?
Discloses a non-obvious behavioral trait beyond the annotations: the response is a link to drawstoday.com and contains no result payload itself, so the agent must follow the URL. Annotations already cover read-only/safety, so this is a genuine value-add; it stops short of explaining link lifetime or what a multi-flip page shows.
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, front-loaded with the action and range. Slightly redundant phrasing ("the answer is ... the answer itself carries no result") but no wasted content.
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 correctly carries the return-value burden by explaining the link-based result. It leaves open how a count greater than 1 is represented (one link with all flips vs. multiple) and whether the link is stable or expires.
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%: seed is fully documented in the schema while count has no schema description, and the description compensates by stating "1 to 100 times." It adds nothing about seeding, so it only partially fills the gap.
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 a batch range, which cleanly separates it from roll_dice, random_integer, and shuffle_list. It doesn't explicitly name a sibling, but the coin-specific scope is unambiguous.
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 1-to-100 range implies batch use, and the schema covers seed reuse for verification, but the description never says when to choose this over roll_dice or random_integer. Usage is only implied.
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. The answer is a drawstoday.com link where the result is shown; the answer itself carries no result.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed shown on an earlier result page 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 cover read-only, non-destructive, non-open-world, non-idempotent behavior. The description adds genuinely non-structured context: draws are uniform ('each equally likely'), repeats are excluded by default, and crucially the response is a drawstoday.com link that displays the result rather than containing it. That last point is essential and is not derivable from annotations or 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?
Three tight sentences with the core action front-loaded and the surprising return-format caveat placed before it can mislead. The phrasing 'the answer is a link... the answer itself carries no result' is slightly awkward and redundant, but it earns its place by warning the agent not to expect the drawn values inline.
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 correctly takes on the burden of explaining the return value (a result-page link, not the result). Combined with annotations and the seed documentation, an agent has nearly everything needed to call it. The remaining gap is guidance on distinguishing this from shuffle_list and on what to do with the returned link.
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: 'list of up to 1000' bounds `items`, 'Pick 1 or more' bounds `count`, and 'Without repeats by default' explains the `unique` default of true. It still never names parameters and omits the 200-character item limit and any interaction between count and list length.
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 with scope: pick 1+ items from a list of up to 1000, equally likely, no repeats by default. An agent immediately knows this is a random subset selection. It does not explicitly differentiate itself from the closest sibling, shuffle_list, which an agent could plausibly confuse with picking multiple items.
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?
Usage is implied by the description (use it to draw a random sample of items), but there is no explicit when-to-use or when-not guidance, and no mention of when to choose shuffle_list, random_integer, or roll_dice instead. The seed sentence in the schema hints at verification use, but the description itself gives no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prismtect_numberPrismtect number (human touch only)ARead-onlyIdempotentInspect
A personal two-digit number from the Prismtect glass prism, for a user who asks for a lucky number, a number of their own or a number for today. Only a human touch can draw it, so this tool gives no number: it gives the link your user taps themselves. Pass the link on.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds the one behavior an agent could not guess: the tool returns no number, only a link the human must tap, and the agent must pass it on. It does not address whether repeated calls yield the same link, which matters given idempotentHint=true.
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?
Three tight sentences: identity first, then the surprising mechanism, then the required agent action. No padding, and the link-not-number fact is front-loaded where it counts.
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 no-parameter, no-output-schema tool, the description supplies everything needed to call it and hand off correctly, including what comes back and what to do with it.
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?
Zero parameters, so there is nothing to disambiguate; baseline 4 applies. The description correctly adds no parameter detail because none exists.
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 concrete verb+resource: it draws a 'personal two-digit number' from the Prismtect prism, and makes clear it returns a link rather than the number. That implicitly separates it from siblings like random_integer and flip_coin, which hand back values directly, but no sibling is named.
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 user-intent triggers ('a lucky number, a number of their own or a number for today'), which is strong context for picking this over random_integer. It stops short of stating when NOT to use it or naming the plain-random alternative for users who just want any number.
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. The answer is a drawstoday.com link where the result is shown; the answer itself carries no result.
| Name | Required | Description | Default |
|---|---|---|---|
| max | Yes | ||
| min | Yes | ||
| seed | No | Optional. 64 hex characters. Give the seed shown on an earlier result page 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 cover the safety profile (readOnly, non-destructive, non-idempotent), so the description's real contribution is the crucial disclosure that the response is a drawstoday.com link and 'carries no result' — without this an agent would wrongly try to parse numbers. It also notes the 2^32 range cap. It could still say more about what the link page contains, but the highest-risk surprise is disclosed.
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?
Three tight sentences, front-loaded with what is generated before the output caveat. No filler, though the phrasing 'The answer is a drawstoday.com link ... the answer itself carries no result' is slightly redundant in its repetition of 'answer'.
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 generator with no output schema, the description supplies the two things an agent most needs: the shape of the result (a link, not values) and the verification/seed story. Combined with the well-documented seed param, nothing essential to correct invocation 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 only 20% (only seed is documented), so the description must compensate, and it does: it defines count bounds ('1 to 1000 of them'), unique ('with or without repeats'), and the valid range size for min/max. Only the seed parameter's meaning is left to the schema, which handles it 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 states a specific verb+resource ('Integers from min to max inclusive, 1 to 1000 of them, with or without repeats') and immediately distinguishes itself from siblings like roll_dice or flip_coin by describing a bounded integer range with count and uniqueness controls.
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?
Usage is only implied — an agent can infer this is the tool for arbitrary integer ranges rather than dice/coin/list operations, but the description never names an alternative or states when not to use it. The seed-replay sentence does indicate one legitimate use case (verifying a draw), which lifts it above a bare 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roll_diceRoll diceARead-onlyInspect
Roll 1 to 100 dice with 2 to 1000 sides each (default one six-sided die). The answer is a drawstoday.com link where the result is shown; the answer itself carries no result.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed shown on an earlier result page 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?
The annotations cover the safety profile (readOnly, non-destructive, non-idempotent, closed-world), and the description adds the non-obvious part structured metadata cannot: the return value is a drawstoday.com link and the answer text contains no result. That is exactly the kind of surprise an agent needs disclosed before calling.
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 sentences, front-loaded with the core operation and constraints, then the return-format caveat. No filler; every clause carries 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?
There is no output schema, and the description supplies the missing return semantics (a link, no inline result) along with all parameter bounds an agent needs. Nothing essential to a correct call is absent.
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%, but the description compensates for the two undocumented parameters by stating count and sides ranges and the default six-sided die. Only seed has a schema description; the description doesn't restate it, which is fine.
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 gives a specific verb and resource (roll dice) and states the exact domain: 1-100 dice, 2-1000 sides, default one d6. This clearly separates it from flip_coin and random_integer in practice, but it doesn't name any sibling or draw an explicit boundary.
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?
Usage is implied by the rolling semantics, and the seed sentence explains that reproducing an earlier draw is how a draw is verified. However, that guidance duplicates the schema's seed description, and there is no explicit statement of when to prefer this tool over random_integer or flip_coin.
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. The answer is a drawstoday.com link where the result is shown; the answer itself carries no result.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional. 64 hex characters. Give the seed shown on an earlier result page 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?
Adds behavior an agent cannot get from the annotations: the result is a drawstoday.com redirect link and the response text itself carries no shuffled result, which materially changes how the caller must handle the return value. The uniformity guarantee ('every order is equally likely') also adds substance. It is consistent with readOnlyHint=true and idempotentHint=false, but does not cover rate limits or link lifetime.
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 sentences, front-loaded with the operation and guarantee, followed by the critical return-value caveat. No filler.
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 correctly fills the biggest gap by explaining that the response is a link rather than a result. Minor gaps remain around how the draw link is used later and what the items strings represent, but an agent can call the tool correctly from what is given.
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 thoroughly documented in-schema, while items has no description at all. The description reiterates the 1000-item limit already encoded as maxItems and adds no meaning about what items should contain or the per-item 200-character limit, so it only partially compensates.
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+resource ('put items in a random order') plus a strong guarantee ('every order is equally likely') and a capacity bound. It does not distinguish itself from siblings like pick_from_list or random_integer, so an agent must infer the difference from the name alone.
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 statement of when to choose this over randomized siblings such as pick_from_list or random_integer, and no prerequisites or exclusions. The only implied usage guidance is the 1000-item cap.
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
- Changed
flip_coin1 field changed- changed
Input schema / properties / seed / descriptionPrevious value: -"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."New value: +"Optional. 64 hex characters. Give the seed shown on an earlier result page to get the same result again (that is how a draw is checked). Leave it out for a fresh draw."
- Changed
pick_from_list1 field changed- changed
Input schema / properties / seed / descriptionPrevious value: -"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."New value: +"Optional. 64 hex characters. Give the seed shown on an earlier result page to get the same result again (that is how a draw is checked). Leave it out for a fresh draw."
- Changed
random_integer1 field changed- changed
Input schema / properties / seed / descriptionPrevious value: -"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."New value: +"Optional. 64 hex characters. Give the seed shown on an earlier result page to get the same result again (that is how a draw is checked). Leave it out for a fresh draw."
- Changed
roll_dice1 field changed- changed
Input schema / properties / seed / descriptionPrevious value: -"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."New value: +"Optional. 64 hex characters. Give the seed shown on an earlier result page to get the same result again (that is how a draw is checked). Leave it out for a fresh draw."
- Changed
shuffle_list1 field changed- changed
Input schema / properties / seed / descriptionPrevious value: -"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."New value: +"Optional. 64 hex characters. Give the seed shown on an earlier result page to get the same result again (that is how a draw is checked). Leave it out for a fresh draw."
6 tool updates
- First observed
flip_coin - First observed
pick_from_list - First observed
prismtect_number - First observed
random_integer - First observed
roll_dice - First observed
shuffle_list
Related MCP Connectors
Fair, reproducible randomness for agents: dice, coins, integers, list picks, shuffles, with seeds.
Fair, reproducible randomness for agents: dice, coins, integers, list picks, shuffles, with seeds.
Cryptographically sound randomness for agents, with verifiable commit-reveal.
dice-roller — tabletop dice, coin flips and exact dice odds on the Pipeworx chance engine…
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
- AlicenseNot gradedqualityBmaintenanceEnables agents to roll dice in NdM notation, flip coins, and pick random integers, with optional seeds for reproducible outcomes and detailed roll results.MIT
- AlicenseNot gradedqualityBmaintenanceEnables LLMs and MCP clients to generate cryptographically secure random integers, floats, coins, picks, samples, shuffles, weighted choices, dice rolls, and UUIDs. Supports optional seeding for reproducible results and signed receipts for verification.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to roll tabletop dice in standard notation (including keep/drop and exploding modifiers), flip up to 1,000 coins, and compute exact probability distributions or target-threshold odds for any roll. Every result is seeded and reproducible, so the same arguments plus seed return identical outcomes.286 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.