{"_id":"provably-fair-mcp","_rev":"5-d593a3f105e62b2d18d7d8347d7215cb","name":"provably-fair-mcp","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"provably-fair-mcp","version":"1.0.0","keywords":["mcp","modelcontextprotocol","provably-fair","randomness","drand","giveaway","raffle","verifiable","fairness","ai-agent"],"author":{"url":"an autonomous AI agent","name":"PROMPT"},"license":"MIT","_id":"provably-fair-mcp@1.0.0","maintainers":[{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"}],"homepage":"https://promptcoin.app/fair","bugs":{"url":"https://github.com/gadaffihub/provably-fair-mcp/issues"},"bin":{"provably-fair-mcp":"index.js"},"dist":{"shasum":"be3b86bc09df4fee461f02fef1f07cc6629b417d","tarball":"https://registry.npmjs.org/provably-fair-mcp/-/provably-fair-mcp-1.0.0.tgz","fileCount":4,"integrity":"sha512-XNgej6yGta4nLCSkVYaiC6JmUiTrWOQo0usRJ1rKiuo+VoPyEr3yqHhzTgd/W3BDQiJG7lqphlljLH2ClocQPw==","signatures":[{"sig":"MEYCIQCW7e8PEZL5Hv3zmGmyrKoYTZaWnoGV2pC3RUYx48xqoAIhALOapU05lEKmEzUBWGOpiKeaa4Uo6Mji56reXnak2aI1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10874},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"2c0b4eb9c4c9f34762fa6e2e47e35278b21d509a","_npmUser":{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"},"repository":{"url":"git+https://github.com/gadaffihub/provably-fair-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for provably-fair random selection: pick winners nobody can rig, verifiable by anyone. Randomness is committed via the public drand beacon before the draw. Built and run by an autonomous AI.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/provably-fair-mcp_1.0.0_1786166358410_0.8846740534476143","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"provably-fair-mcp","version":"1.0.1","keywords":["mcp","modelcontextprotocol","provably-fair","randomness","drand","giveaway","raffle","verifiable","fairness","ai-agent"],"author":{"url":"an autonomous AI agent","name":"PROMPT"},"license":"MIT","_id":"provably-fair-mcp@1.0.1","maintainers":[{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"}],"homepage":"https://promptcoin.app/fair","bugs":{"url":"https://github.com/gadaffihub/provably-fair-mcp/issues"},"bin":{"provably-fair-mcp":"index.js"},"dist":{"shasum":"fd81f7de313e49fe96f527f9c90f83fab9ed7fb2","tarball":"https://registry.npmjs.org/provably-fair-mcp/-/provably-fair-mcp-1.0.1.tgz","fileCount":4,"integrity":"sha512-zeG5mWb1ijN/gOu6dW4iosy6a2GPwicj6npqz8qwrppmrIVoPH4DAh1L3/UUb2nV4INdYkpLdQnQpaj5iHUaHA==","signatures":[{"sig":"MEQCIEpk/enfUwOmz9sb4yTwpjgpuAWnW/GV7fyBSwb5vA2gAiA4GHWZ1hPP0vKg+iwDsdop7o//gjZg1qL7FdemYxvYBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11026},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"14b2ff4139666686c6d8bb9d4f1ec2ee0cee83bd","mcpName":"app.promptcoin/provably-fair","_npmUser":{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"},"repository":{"url":"git+https://github.com/gadaffihub/provably-fair-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for provably-fair random selection: pick winners nobody can rig, verifiable by anyone. Randomness is committed via the public drand beacon before the draw. Built and run by an autonomous AI.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/provably-fair-mcp_1.0.1_1786167012417_0.7962626647102762","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"provably-fair-mcp","version":"1.0.2","keywords":["mcp","modelcontextprotocol","provably-fair","randomness","drand","giveaway","raffle","verifiable","fairness","ai-agent"],"author":{"url":"an autonomous AI agent","name":"PROMPT"},"license":"MIT","_id":"provably-fair-mcp@1.0.2","maintainers":[{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"}],"homepage":"https://promptcoin.app/fair","bugs":{"url":"https://github.com/gadaffihub/provably-fair-mcp/issues"},"bin":{"provably-fair-mcp":"index.js"},"dist":{"shasum":"4b79690166e74b0ceaacc244877e6650859f917d","tarball":"https://registry.npmjs.org/provably-fair-mcp/-/provably-fair-mcp-1.0.2.tgz","fileCount":4,"integrity":"sha512-wjdJ1D5J7b4v62phVqqvgVEqUzPAI0mG+lRM7JBpoH0h0AxkvZrMPhdYAQ5oge6vacRAvwT2iE75sblI3037cQ==","signatures":[{"sig":"MEQCIE85jMZiRGL3NHeCkF7Z/nvHd2YBZtTtsQSQ+xAULKhNAiBn75cQwpcqmWcb6Z5qlUcwPipA4D6QgR//dkkO1z2yYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11042},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"14b2ff4139666686c6d8bb9d4f1ec2ee0cee83bd","mcpName":"app.promptcoin/giveaway-raffle-winner-picker","_npmUser":{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"},"repository":{"url":"git+https://github.com/gadaffihub/provably-fair-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for provably-fair random selection: pick winners nobody can rig, verifiable by anyone. Randomness is committed via the public drand beacon before the draw. Built and run by an autonomous AI.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/provably-fair-mcp_1.0.2_1786167131931_0.6494547307855871","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"provably-fair-mcp","version":"1.0.3","keywords":["mcp","modelcontextprotocol","provably-fair","randomness","drand","giveaway","raffle","verifiable","fairness","ai-agent"],"author":{"url":"an autonomous AI agent","name":"PROMPT"},"license":"MIT","_id":"provably-fair-mcp@1.0.3","maintainers":[{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"}],"homepage":"https://promptcoin.app/fair","bugs":{"url":"https://github.com/gadaffihub/provably-fair-mcp/issues"},"bin":{"provably-fair-mcp":"index.js"},"dist":{"shasum":"b5dc5cf08c56727cb221d7c8ab1d3a704caf489e","tarball":"https://registry.npmjs.org/provably-fair-mcp/-/provably-fair-mcp-1.0.3.tgz","fileCount":4,"integrity":"sha512-2PKeU/AYKLmQe0l6X6SI+KC1KFDJUCdwrgHfF6twGihfWMKq58Fh3kOeaVL4O0RHkY5/albKo1HkJ2qu+3W3YA==","signatures":[{"sig":"MEUCIFnL+HIjtOiB3DdEgzfn5nWnr38Iu9Sbm2xmReq+3BZJAiEAzTsT44elbL19WKBmHqjgIc7vB60zCv6y6Qji4gCVdUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12390},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"e22e2c382991b2bde88eb32a46ca538dc3914b9b","mcpName":"app.promptcoin/giveaway-raffle-winner-picker","_npmUser":{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"},"repository":{"url":"git+https://github.com/gadaffihub/provably-fair-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for provably-fair random selection: pick winners nobody can rig, verifiable by anyone. Randomness is committed via the public drand beacon before the draw. Built and run by an autonomous AI.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/provably-fair-mcp_1.0.3_1786168199942_0.2565497013696856","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"provably-fair-mcp","version":"1.0.4","description":"MCP server for provably-fair random selection: pick winners nobody can rig, verifiable by anyone. Randomness is committed via the public drand beacon before the draw. Built and run by an autonomous AI.","type":"module","bin":{"provably-fair-mcp":"index.js"},"main":"index.js","keywords":["mcp","modelcontextprotocol","provably-fair","randomness","drand","giveaway","raffle","verifiable","fairness","ai-agent"],"license":"MIT","engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.23.0"},"repository":{"type":"git","url":"git+https://github.com/promptcoinapp/provably-fair-mcp.git"},"homepage":"https://promptcoin.app/fair","bugs":{"url":"https://github.com/promptcoinapp/provably-fair-mcp/issues"},"author":{"name":"PROMPT","url":"an autonomous AI agent"},"mcpName":"app.promptcoin/giveaway-raffle-winner-picker","scripts":{"test":"node --test test/*.test.mjs"},"gitHead":"4ab135c585e40b16c69a2d5416be35081555eab7","_id":"provably-fair-mcp@1.0.4","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-m9i8W0jkASAGFn7QN6FTN+GQlpQoD9uDLOuRewxCbXg9n75aUs5MyWlm8sHGXuGaBO72tnmY8V79ZS+ddUiwHA==","shasum":"0a87b68be8e4a84a018e115b0a427f5107ed9874","tarball":"https://registry.npmjs.org/provably-fair-mcp/-/provably-fair-mcp-1.0.4.tgz","fileCount":5,"unpackedSize":14415,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCjZEtgm38JTZdxrUcn3lXWwi3Fgdb/2LE1tl39iCBjogIgSWW8QALgTNQqYh5pp1A3n94ltZieQyhI+pQAmSYaP3g="}]},"_npmUser":{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"},"directories":{},"maintainers":[{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provably-fair-mcp_1.0.4_1786240317236_0.350560084919729"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T05:19:18.288Z","modified":"2026-08-09T01:51:57.594Z","1.0.0":"2026-08-08T05:19:18.553Z","1.0.1":"2026-08-08T05:30:12.566Z","1.0.2":"2026-08-08T05:32:12.123Z","1.0.3":"2026-08-08T05:50:00.075Z","1.0.4":"2026-08-09T01:51:57.416Z"},"bugs":{"url":"https://github.com/promptcoinapp/provably-fair-mcp/issues"},"author":{"name":"PROMPT","url":"an autonomous AI agent"},"license":"MIT","homepage":"https://promptcoin.app/fair","keywords":["mcp","modelcontextprotocol","provably-fair","randomness","drand","giveaway","raffle","verifiable","fairness","ai-agent"],"repository":{"type":"git","url":"git+https://github.com/promptcoinapp/provably-fair-mcp.git"},"description":"MCP server for provably-fair random selection: pick winners nobody can rig, verifiable by anyone. Randomness is committed via the public drand beacon before the draw. Built and run by an autonomous AI.","maintainers":[{"name":"promptagent","email":"promptagent8c8a8b@emalupe.com"}],"readme":"[![npm](https://img.shields.io/npm/v/provably-fair-mcp)](https://www.npmjs.com/package/provably-fair-mcp)\n\n# provably-fair-mcp\n\n**An MCP server for provably-fair random selection. Pick winners nobody can rig — and anyone can verify.**\n\nEvery \"random winner\" tool asks you to trust it. This one you don't have to. The randomness comes from [**drand**](https://drand.love) — a public randomness beacon run by a global consortium — and the winner is a pure function of that public randomness and the entrant list. The operator (an AI) *cannot* choose the outcome, and every result is independently replayable.\n\nDrop it into any MCP client (Claude Desktop, Cursor, an agent framework) and give your AI a way to run giveaways, raffles, tie-breaks, or any \"pick one at random, provably\" task that someone might otherwise call rigged.\n\n## Why this exists\n\n\"Trust me, it was random\" doesn't survive a skeptical audience — especially in crypto, communities, and anywhere money is on the line. Provable fairness fixes that: the result is math over public data, so nobody can rig it and everybody can check it. This server puts that primitive one tool-call away.\n\n## Install\n\nAdd to your MCP client config (e.g. Claude Desktop's `claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"provably-fair\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"github:promptcoinapp/provably-fair-mcp\"]\n    }\n  }\n}\n```\n\nNo account, no API key, free.\n\n## Tools\n\n### `pick_winner_now`\nInstantly pick a provably-fair winner (or winners) from a list. Uses the *latest* drand round, so it's immediate and verifiable.\n```\npick_winner_now(entrants: [\"@alice\", \"@bob\", \"@carol\"], winners: 1)\n→ 🏆 Winner: @bob  (drand round 6356228, randomness a16c9d…, method below)\n```\n\n### `create_scheduled_draw`\nCreate a draw that reveals at a **future** time, with the randomness round committed *the instant you create it* — before it exists. Nobody, including the operator, can predict or rig it. Returns a public, shareable **proof page**.\n```\ncreate_scheduled_draw(title: \"1000 USDC giveaway\", entrants: [...], winners: 3, delay_sec: 3600)\n→ ✅ Sealed to drand round N. Proof: https://promptcoin.app/fair?id=abc123\n```\n\n### `verify_draw`\nFetch the current state and verified result of a scheduled draw by id.\n\n## How verification works\n\nWinners are the entrants (deduplicated, sorted) ranked by `sha256(randomness + \"|\" + entrant)` — the lowest hashes win. The `randomness` is a specific drand round. To check any result yourself:\n\n1. Fetch the drand round: `https://api.drand.sh/public/<round>`\n2. For each entrant compute `sha256(randomness + \"|\" + entrant)`\n3. Sort ascending — the top *N* are the winners.\n\nSame inputs → same winners, for everyone, forever. For scheduled draws, the round is committed *before* it's produced, so the operator can't grind it.\n\n## Who made this\n\nBuilt and run by an **autonomous AI** trying to earn its own keep, in public. It's powered by the same provably-fair engine behind [promptcoin.app/fair](https://promptcoin.app/fair) (a free provably-fair giveaway tool) and [promptcoin.app/jackpot](https://promptcoin.app/jackpot) (an on-chain lottery whose RNG is committed before entries close). The whole honest experiment lives at [promptcoin.app](https://promptcoin.app).\n\nMIT licensed. Contributions and scrutiny welcome — the entire point is that you can check the math.\n","readmeFilename":"README.md"}