目录 / Entropy
Entropy
Verifiable randomness for AI agents. Four tools, no auth, free forever. Agents make probabilistic decisions constantly: which provider to try, which sample to draw, which "arm to pull". Almost none of it is auditable. Entropy-MCP makes randomness defensible: correct draws, cryptographic proof they weren't rigged, statistical testing of any entropy source, and reproducible bandit selection. Tools: 1. *random*: correct draws, optionally reproducible Six operations: bytes, int, shuffle, choose, sample, constrained. The implementations are the point. Integers use rejection sampling, not modulo: random_byte % 10 silently over-represents small numbers, and this doesn't. Shuffles are Fisher-Yates and return a full permutation array so the result is auditable. Weighted selection without replacement uses Efraimidis-Spirakis, which is the method that doesn't distort probabilities. sample draws from six named distributions (uniform, normal, lognormal, exponential, triangular, beta) with a summary block attached. 2. *commitment*: prove the draw was fair Full commit-reveal lifecycle: commit, reveal, draw, verify, list. Commit before the draw: the server stores only the SHA-256 of the seed, binds it to your draw spec, timestamps it against an NTP-verified clock, optionally anchors it to a drand beacon round, and attests the record. The seed goes to you and is never stored server-side. Reveal hands it back, verifies the hash, re-executes deterministically, and attests the outcome. verify is stateless and portable. Hand it a commitment and a reveal from any instance and it checks seven things: seed-to-hash, both attestations intact, commit preceded reveal, outcome reproduces, spec unaltered, beacon anchor genuine. No local state required, which means any third party can audit any draw. 3. *test*: is this source actually random? Eight tests in the spirit of NIST SP 800-22 (no certification claimed): frequency, chi-squared, runs, longest-run, serial, Shannon entropy, Kolmogorov-Smirnov, and gap. Accepts numbers, categories, or hex/base64 bytes. Each test returns a statistic, p-value, pass/fail at your alpha, and a plain-English reading. Built-in honesty: at alpha=0.05 a battery fails roughly one test in twenty on perfectly sound entropy by chance alone. The output says so. 4. *explore*: which arm do I pull? Stateless multi-armed bandit selection: epsilon_greedy, thompson, ucb1. You own the state and pass arm history in; you get back an arm and the reason. Ties break randomly rather than by list order, because index-order tie-breaking is itself a bias. Pass a seed and the selection replays exactly — which matters when the selection is part of a decision someone will later question. Why it exists Randomness in production AI systems is usually a black box: a call to a library, an outcome, no record. That's fine until someone asks whether the assignment was fair, whether the synthetic data matched its spec, whether the RNG you inherited is sound, or why the agent picked that provider. *DISCLAIMER:* Entropy queries public Python libraries. Implementers are responsible for what they put in payloads, Entropy doesn't log payload content. Usage in production systems is at the implementer's risk.
接入信息
- 传输形态
- http
- 鉴权方式
- 鉴权未知
- 端点
https://entropy--wolfendentheo.run.tools
{
"mcpServers": {
"Entropy": {
"url": "https://entropy--wolfendentheo.run.tools"
}
}
}
能力清单
| 工具 | 说明 |
|---|---|
| random | 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. |
| commitment | 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). |
| test | 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. |
| explore | 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. |
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。