MCP 서버

TrueRandomness

io.github.cipshadow/truerandomness
보안 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Generates random integers with verifiable drand provenance and optional atmospheric-noise input, including signed paid results and service health.

random_int
Random integer
Return a uniformly distributed random integer in [min, max], derived from a signature-verified drand quicknet beacon mixed with a server secret and, when a public KiwiSDR receiver delivers one, a hash of live HF atmospheric noise. The response carries the drand round, the beacon signature, a per-request nonce, a commitment hash binding them to the value, a URL where the round can be re-verified, and a `physical` block stating whether noise went in and from where. Free and rate-limited.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'max': {'type': 'number', 'description': 'Inclusive upper bound. Integer. Defaults to 100.'}, 'min': {'type': 'number', 'description': 'Inclusive lower bound. Integer. Defaults to 1.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'error': {'type': 'string'}, 'value': {'type': 'number'}, 'status': {'enum': ['ok', 'invalid_range', 'rate_limited', 'drand_unavailable'], 'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'chain', 'round', 'beaconTime', 'signature', 'nonce', 'commitment', 'secretFingerprint', 'verificationUrl', 'physical'], 'properties': {'chain': {'type': 'string'}, 'nonce': {'type': 'string'}, 'round': {'type': 'number'}, 'source': {'type': 'string'}, 'physical': {'type': 'object', 'required': ['status'], 'properties': {'reason': {'type': 'string'}, 'source': {'type': 'string'}, 'status': {'enum': ['ok', 'unavailable'], 'type': 'string'}, 'rssiDbm': {'type': 'number'}, 'receiver': {'type': 'object', 'required': ['name', 'host'], 'properties': {'host': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'capturedAt': {'type': 'string'}, 'sampleHash': {'type': 'string'}, 'sampleCount': {'type': 'number'}, 'frequencyKhz': {'type': 'number'}}, 'additionalProperties': False}, 'signature': {'type': 'string'}, 'beaconTime': {'type': 'string'}, 'commitment': {'type': 'string'}, 'verificationUrl': {'type': 'string'}, 'secretFingerprint': {'type': 'string'}}, 'additionalProperties': False}, 'retryAfterSeconds': {'type': 'number'}}, 'additionalProperties': False}
random_int_signed
Random integer (paid)
Return a uniformly distributed random integer in [min, max] with the same drand quicknet provenance as random_int, plus a payment receipt. Costs $0.01 per call in stablecoin over the Machine Payments Protocol. New unpaid challenge requests are safety-limited. An unpaid call answers with a payment challenge (JSON-RPC -32042); a client that cannot pay should use random_int instead.
외부 접근 가능 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'max': {'type': 'number', 'description': 'Inclusive upper bound. Integer. Defaults to 100.'}, 'min': {'type': 'number', 'description': 'Inclusive lower bound. Integer. Defaults to 1.'}, 'requestId': {'type': 'string', 'description': 'Required UUID generated once by the client and reused to recover this paid draw.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'error': {'type': 'string'}, 'value': {'type': 'number'}, 'status': {'enum': ['ok', 'invalid_range', 'invalid_request', 'request_id_conflict', 'drand_unavailable', 'rate_limited'], 'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'chain', 'round', 'beaconTime', 'signature', 'nonce', 'commitment', 'secretFingerprint', 'verificationUrl', 'physical'], 'properties': {'chain': {'type': 'string'}, 'nonce': {'type': 'string'}, 'round': {'type': 'number'}, 'source': {'type': 'string'}, 'physical': {'type': 'object', 'required': ['status'], 'properties': {'reason': {'type': 'string'}, 'source': {'type': 'string'}, 'status': {'enum': ['ok', 'unavailable'], 'type': 'string'}, 'rssiDbm': {'type': 'number'}, 'receiver': {'type': 'object', 'required': ['name', 'host'], 'properties': {'host': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'capturedAt': {'type': 'string'}, 'sampleHash': {'type': 'string'}, 'sampleCount': {'type': 'number'}, 'frequencyKhz': {'type': 'number'}}, 'additionalProperties': False}, 'signature': {'type': 'string'}, 'beaconTime': {'type': 'string'}, 'commitment': {'type': 'string'}, 'verificationUrl': {'type': 'string'}, 'secretFingerprint': {'type': 'string'}}, 'additionalProperties': False}, 'certificate': {'type': 'object', 'required': ['version', 'issuedAt', 'issuer', 'request', 'result', 'signature'], 'properties': {'issuer': {'type': 'object', 'required': ['name', 'algorithm', 'publicKey'], 'properties': {'name': {'type': 'string', 'const': 'TrueRandomness'}, 'algorithm': {'type': 'string', 'const': 'Ed25519'}, 'publicKey': {'type': 'string'}}, 'additionalProperties': False}, 'result': {'type': 'object', 'required': ['status', 'value', 'min', 'max', 'provenance'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'value': {'type': 'number'}, 'status': {'type': 'string', 'const': 'ok'}, 'provenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'request': {'type': 'object', 'required': ['requestId', 'tool', 'min', 'max', 'price', 'currency', 'recipient', 'chain', 'apiVersion'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'tool': {'enum': ['random_int_signed', 'http_random'], 'type': 'string'}, 'chain': {'enum': ['tempo-testnet', 'tempo-mainnet'], 'type': 'string'}, 'price': {'type': 'string'}, 'currency': {'type': 'string'}, 'recipient': {'type': 'string'}, 'requestId': {'type': 'string'}, 'apiVersion': {'type': 'string', 'const': 'v1'}}, 'additionalProperties': False}, 'version': {'type': 'string', 'const': 'truerandomness-paid-certificate-v1'}, 'issuedAt': {'type': 'string'}, 'signature': {'type': 'string'}}, 'additionalProperties': False}, 'retryAfterSeconds': {'type': 'number'}}, 'additionalProperties': False}
status
Service status
Report service and beacon health: the current drand quicknet round, which relay answered, the rate-limiter mode, and whether the last draw obtained live atmospheric noise. Free, and does not consume rate limit.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'entropySource', 'rateLimiter', 'physical'], 'properties': {'error': {'type': 'string'}, 'beacon': {'type': 'object', 'required': ['chain', 'round', 'beaconTime', 'relay', 'verificationUrl'], 'properties': {'chain': {'type': 'string'}, 'relay': {'type': 'string'}, 'round': {'type': 'number'}, 'beaconTime': {'type': 'string'}, 'verificationUrl': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'enum': ['ok', 'drand_unavailable'], 'type': 'string'}, 'physical': {'type': 'object', 'required': ['enabled', 'status'], 'properties': {'at': {'type': 'string'}, 'reason': {'type': 'string'}, 'status': {'enum': ['untested', 'ok', 'unavailable'], 'type': 'string'}, 'enabled': {'type': 'boolean'}, 'rssiDbm': {'type': 'number'}, 'receiver': {'type': 'object', 'required': ['name', 'host'], 'properties': {'host': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'capturedAt': {'type': 'string'}}, 'additionalProperties': False}, 'rateLimiter': {'type': 'object', 'required': ['mode', 'limit', 'windowSeconds'], 'properties': {'mode': {'type': 'string'}, 'limit': {'type': 'number'}, 'windowSeconds': {'type': 'number'}}, 'additionalProperties': False}, 'entropySource': {'type': 'string'}}, 'additionalProperties': False}
추가됨
random_int_signed
2026년 10월 4일 2:40 AM
추가됨
status
2026년 10월 4일 2:40 AM
추가됨
random_int
2026년 10월 4일 2:40 AM