entropy
Cryptographically sound randomness for agents, with verifiable commit-reveal.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"entropy": {
"url": "https://entropy-mcp.terradev.cloud/mcp"
}
}
}Remote endpoints
https://entropy-mcp.terradev.cloud/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
⚪random(operation, params, seed)
Direct randomness. operation selects the primitive: bytes -- raw CSPRNG bytes. params: {count<=4096, encoding: hex|base64} int -- unbiased integers in [min,max] via rejection sampling. params: {min, max, count<=10000} shuffle -- Fisher-Yates; permutation[i] is the original index now at position i. params: {items, return_permutation} choose -- k items, weighted or not, with/without replacement. params: {items, k, weights, replacement} sample -- named distributions: uniform, normal, lognormal, exponential, triangular, beta. params: {distribution, params, n<=10000} constrained -- records with independently sampled attributes + chi-squared conformance proof. params: {attributes: {attr: {value: prop}}, n} seed (top level) makes any operation reproducible.
Input Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"bytes",
"int",
"shuffle",
"choose",
"sample",
"constrained"
]
},
"params": {
"type": "object",
"description": "operation-specific arguments"
},
"seed": {
"type": "string",
"description": "optional seed for a reproducible draw"
}
},
"required": [
"operation"
]
}🟢commitment(operation, draw_spec, commitment_id, seed, description, ...)
Verifiable commit-reveal. operation selects the step: commit -- hash a seed, bind it to draw_spec {operation, params}, attest via Stamp. The seed is returned to the caller and never stored. reveal -- verify a seed against commitment_id, re-execute the draw deterministically, attest the outcome. draw -- commit + execute + reveal in one call. Pass draw_spec, or operation + params directly. verify -- pure third-party verification of commitment_record + reveal_record. No local state. list -- read-only view of the local commitment log (limit, since).
Input Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"commit",
"reveal",
"draw",
"verify",
"list"
]
},
"draw_spec": {
"type": "object",
"description": "{operation, params} for commit/draw"
},
"commitment_id": {
"type": "string"
},
"seed": {
"type": "string"
},
"description": {
"type": "string",
"default": ""
},
"attested": {
"type": "boolean",
"default": true
},
"anchor_beacon": {
"type": "boolean",
"default": false
},
"commitment_record": {
"type": "object"
},
"reveal_record": {
"type": "object"
},
"limit": {
"type": "integer",
"default": 50,
"minimum": 1,
"maximum": 1000
},
"since": {
"type": "string",
"description": "ISO 8601 lower bound"
}
},
"required": [
"operation"
]
}🟢test(sequence, tests, alpha, input_type, expected, ...)
Statistical battery over a sequence: frequency, chi-squared, runs, longest run, serial correlation, Shannon entropy, KS, gap test. Informed by NIST SP 800-22; no certification claimed. sequence is a list of numbers, list of strings, or a hex/base64 byte string.
Input Schema
{
"type": "object",
"properties": {
"sequence": {
"description": "list of numbers, list of strings, or hex/base64"
},
"tests": {
"default": "all",
"description": "'all' or a list of: frequency, chi_squared, runs, longest_run, serial, entropy, ks, gap"
},
"alpha": {
"type": "number",
"default": 0.05
},
"input_type": {
"type": "string",
"enum": [
"auto",
"numeric",
"categorical",
"bytes"
],
"default": "auto"
},
"expected": {
"type": "object",
"description": "{symbol: probability} for chi_squared"
},
"distribution": {
"type": "string",
"description": "enables the KS test"
},
"dist_params": {
"type": "object"
}
},
"required": [
"sequence"
]
}⚪explore(arms, strategy, state, params, seed)
Bandit arm selection: epsilon_greedy, thompson, or ucb1. Stateless -- caller passes state in as {arm: {pulls, successes, total_reward}} and gets a selection back. params: {epsilon} for epsilon_greedy.
Input Schema
{
"type": "object",
"properties": {
"arms": {
"type": "array"
},
"strategy": {
"type": "string",
"enum": [
"epsilon_greedy",
"thompson",
"ucb1"
]
},
"state": {
"type": "object"
},
"params": {
"type": "object"
},
"seed": {
"type": "string"
}
},
"required": [
"arms",
"strategy"
]
}Community
Evidence