Skip to main content
Glama
aiexp1

Tanod MCP server

utilpeek: cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles

generate_random
Read-only

Create cryptographically strong random values—integers, floats, bytes, UUIDs, dice rolls, picks, and shuffles—for keys, tokens, testing, and unbiased sampling.

Instructions

utilpeek: Generate cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles. For UUIDs and ULIDs use generate_ids. Returns values from the OS CSPRNG (Python secrets): integers (uniform, inclusive range), floats in [min, max), 1-1,024 random bytes (hex or base64), UUID v4, dice rolls such as 3d6 or 2d10+3 with the total, picks from a list or a shuffle. Input: optional kind, min and max, count, length and encoding, dice, items and unique; an empty body gives one integer 0-100. Parameters that do not fit the kind, count over 1,000 or more than 1,000 items are a 422 before any payment (not charged). Nothing is stored or logged. Generate secret keys locally. Typically under 0.1 s. Price: USD 0.001. Free: 10 utilpeek calls per IP per UTC day.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
maxNoint: highest value, inclusive (default 100). float: upper bound, exclusive (default 1); max must exceed min.
minNoint: lowest value, inclusive (default 0). float: lowest, inclusive (default 0).
diceNodice: an expression such as 3d6, d20 or 2d10+3 (1-100 dice of 2-1000 sides, optional +/- modifier; default 1d6).
kindNoint (default), float, bytes, uuid (v4), dice, pick or shuffle.int
countNoHow many values (1-1000, default 1): int, float, uuid, pick.
itemsNopick / shuffle: a comma-separated list (at most 1,000 items of 200 characters; blanks are dropped).
lengthNobytes: how many random bytes (1-1024, default 16).
uniqueNopick: draw without replacement (count at most the number of items).
encodingNobytes: hex (default) or base64.hex

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
maxNo
minNo
diceNo
kindNo
countNo
errorNoOnly on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object.
rollsNo
totalNo
valueNo
lengthNo
sourceNo
uniqueNo
valuesNo
encodingNo
modifierNo
item_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.6/5.0
Behavior5/5

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 goes well beyond that by disclosing that validation errors return 422 before any payment (not charged), that nothing is stored or logged, expected latency (<0.1 s), the price (USD 0.001) and a free tier (10 calls/IP/UTC day). These are exactly the kind of non-indexed operational traits an agent needs.

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?

Purpose is front-loaded, followed by the sibling redirect, then mechanics, then constraints/pricing. Every sentence carries information (source, defaults, limits, 422 semantics, no-logging, price). It is dense rather than padded, though it packs a lot into a single flowing block and could be marginally tightened.

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?

With an output schema present, return-value explanation is unnecessary, and the description still covers the essential caller questions: what defaults apply, how errors surface (422, uncharged), durability (nothing stored/logged), latency and cost. For a 9-parameter tool with zero required params, it leaves nothing material for the agent to guess.

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 each parameter and a baseline of 3 applies. The description nonetheless adds meaning beyond it: integer ranges are inclusive vs. floats being [min, max), the dice expression grammar (3d6 / 2d10+3 returning the total), the 1-1,024 byte bounds and the behavior of an empty body (one integer 0-100). This is real added value on top of an already-complete schema.

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 (generate cryptographically strong random numbers, bytes, UUIDs, dice, picks, shuffles) and immediately names the sibling it does NOT cover (generate_ids for UUIDs/ULIDs in the sense of id generation). The CSPRNG source (OS CSPRNG via Python `secrets`) is explicit, so the agent knows this is a security-grade random tool, not a pseudo-random one.

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?

It routes clearly to a sibling: 'For UUIDs and ULIDs use generate_ids' — a concrete when-to-use-another-tool rule. It also documents the default empty-body behavior (one integer 0-100) and advises 'Generate secret keys locally', which is actionable guidance. It lacks explicit when-not conditions beyond the id-generation redirect, but the context is clear.

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

Deploy Server

Other Tools