coin_flip
Flip one or more coins, or pick from a list of choices
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of coins (default 1) | |
| choices | No | Comma-separated options to pick from (overrides coin flip) |
Flip one or more coins, or pick from a list of choices
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of coins (default 1) | |
| choices | No | Comma-separated options to pick from (overrides coin flip) |
Changes observed during successful MCP inspections.
Input schema / properties / choicesAdded value: +{
+ "description": "Comma-separated options to pick from (overrides coin flip)",
+ "type": "string"
+}Input schema / properties / countAdded value: +{
+ "description": "Number of coins (default 1)",
+ "type": "number"
+}Input schema / properties / optionsRemoved value: -{
- "description": "Custom options to pick from (e.g. [\"pizza\",\"tacos\",\"sushi\"]). Defaults to [\"heads\",\"tails\"].",
- "items": {
- "type": "string"
- },
- "type": "array"
-}Input schema / properties / choicesRemoved value: -{
- "description": "Comma-separated options to pick from (overrides coin flip)",
- "type": "string"
-}Input schema / properties / countRemoved value: -{
- "description": "Number of coins (default 1)",
- "type": "number"
-}Input schema / properties / optionsAdded value: +{
+ "description": "Custom options to pick from (e.g. [\"pizza\",\"tacos\",\"sushi\"]). Defaults to [\"heads\",\"tails\"].",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}Input schema / properties / choicesAdded value: +{
+ "description": "Comma-separated options to pick from (overrides coin flip)",
+ "type": "string"
+}Input schema / properties / countAdded value: +{
+ "description": "Number of coins (default 1)",
+ "type": "number"
+}Input schema / properties / optionsRemoved value: -{
- "description": "Custom options to pick from (e.g. [\"pizza\",\"tacos\",\"sushi\"]). Defaults to [\"heads\",\"tails\"].",
- "items": {
- "type": "string"
- },
- "type": "array"
-}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It states the action (flipping/picking) but does not explicitly mention that the result is random, non-deterministic, or that it has no side effects. Given the simplicity of the tool, the implied behavior is adequate, but there is room for more transparency.
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 a single, concise sentence that communicates the entire purpose without unnecessary words or repetition. It is well front-loaded and contains 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?
For a simple tool with a fully described schema and no output schema, the description is sufficient. It covers the two main use cases and does not leave major gaps. However, it could optionally mention what the return value looks like, which is omitted.
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% with both parameters (count and choices) clearly described. The description adds minimal additional meaning beyond the schema—it reiterates the concepts of 'one or more coins' and 'list of choices.' This aligns with the baseline of 3.
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 clearly states the tool's function with specific verbs and resources: 'Flip one or more coins, or pick from a list of choices.' This directly distinguishes it from sibling random tools like dice_roll and oracle_roll, which serve different purposes.
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 implies when to use this tool (when a coin flip or random choice from a list is needed) but does not explicitly provide alternatives or exclusions. It lacks guidance on when to use this instead of other random tools, though the context is reasonably inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.