MCP 서버

Redeal

dev.redeal/redeal
비즈니스 및 운영 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Coordinates verifiable fair-division, random-selection, Shapley-share and sealed-bid auction computations among multiple parties with signed certificates.

commit_input
Commit your sealed input as a hash (sealed mode). Nobody — including redeal — can see your input until all parties have committed. After the last commitment the deal opens for reveals immediately.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['invite_token', 'deal_id', 'commitment'], 'properties': {'deal_id': {'type': 'string', 'description': 'The deal id (d_...).'}, 'commitment': {'type': 'string', 'description': '"sha256:" + hex of sha256(JCS(your input JSON) ++ your salt bytes). Compute it locally; the server sees only this hash until everyone has committed.'}, 'invite_token': {'type': 'string', 'description': "The invite token for YOUR party, from create_deal's response."}, 'idempotency_key': {'type': ['string', 'null'], 'description': 'Optional: retries with the same key + same arguments replay the original response.'}}}
compute_commitment_tool
Compute a commitment string for (input, salt): sha256(JCS(input) ++ salt_bytes), prefixed 'sha256:'. Convenience only — the rule is public and you can compute it yourself.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['input', 'salt'], 'properties': {'salt': {'type': 'string', 'description': 'Your hex salt (even length, e.g. 32+ random bytes hex-encoded). Keep it secret until reveal.'}, 'input': {'description': 'Your algorithm input (any JSON value).'}}}
create_deal
Create a fairness deal. You are party 0 (initiator). Returns a deal id and one invite token per party — give each counterparty their own token. Sealed mode: everyone commits a hash, then reveals; certificate is issued automatically when the deal computes or goes VOID.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['api_key', 'algorithm', 'party_labels', 'commit_deadline', 'reveal_deadline'], 'properties': {'mode': {'type': ['string', 'null'], 'description': '"sealed" (default, commit/reveal) or "open" (single round trip, low stakes).'}, 'api_key': {'type': 'string', 'description': 'Your redeal API key (get one free with create_key â\x80\x94 no signup form).'}, 'algorithm': {'type': 'string', 'description': 'Algorithm id from list_algorithms: "split.v1" (fixed 1,000-point budget) | "random.v1" | "shapley.v1" | "auction.v1".'}, 'retention': {'type': ['string', 'null'], 'description': '"standard" (inputs retained encrypted) or "purge" (destroyed 7 days after certification).'}, 'supersedes': {'type': ['string', 'null'], 'description': "Optional: certificate id (c_<16 hex>) this deal's certificate replaces (re-draw after VOID etc.)."}, 'terms_hash': {'type': ['string', 'null'], 'description': 'Optional: "sha256:<hex>" of the deal\'s terms (echoed into the certificate; we never see the terms).'}, 'visibility': {'type': ['string', 'null'], 'description': 'Optional: "public" (default â\x80\x94 anyone can fetch the certificate at its id) or "parties" (only you and your invite-token holders). Certificates never contain inputs, only the outcome; choose "parties" when the outcome itself is sensitive.'}, 'external_ref': {'type': ['string', 'null'], 'description': 'Optional: your own identifier for this deal, e.g. "campaign-4821" (echoed into the certificate).'}, 'party_labels': {'type': 'array', 'items': True, 'description': 'One label per party, e.g. ["alice", "bob"] â\x80\x94 or objects {"label", "weight"?, "statement_hash"?} (weight defaults to 1; statement_hash is "sha256:<hex>" of a declaration you want bound into the certificate). Party 0 is you (the initiator). Labels go on the public certificate permanently: use nicknames, never real names or emails.'}, 'commit_deadline': {'type': 'integer', 'format': 'int64', 'description': 'Commit deadline as unix seconds UTC. Missed â\x86\x92 deal EXPIRES (no certificate).'}, 'idempotency_key': {'type': ['string', 'null'], 'description': 'Optional: retries with the same key + same arguments replay the original response.'}, 'reveal_deadline': {'type': 'integer', 'format': 'int64', 'description': "Reveal deadline as unix seconds UTC (after commit_deadline). Missed â\x86\x92 deal goes VOID and a non-participation certificate names whoever didn't reveal."}, 'algorithm_params': {'description': 'Algorithm-specific params from list_algorithms. split.v1: {"items": [...]}; random.v1: {"drand_round": N}; shapley.v1: {"coalition_values": {...}}; auction.v1: {"item": "...", "unit": "GBP", "reserve": N}.'}}}
create_key
Get a free redeal API key. No signup, no email — this is the entire onboarding. The key is shown once; store it. Use it as api_key in create_deal.
입력 스키마
{'type': 'object', 'properties': {}}
get_certificate
Fetch the signed fairness certificate for a finished deal (state CERTIFIED). Includes the labelled signature (es256 or ed25519) and transparency-log inclusion proof. Verify it with verify_certificate.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['credential', 'deal_id'], 'properties': {'deal_id': {'type': 'string', 'description': 'The deal id (d_...).'}, 'credential': {'type': 'string', 'description': "Your API key (initiator) or any party's invite token for this deal."}}}
get_deal
Read a deal's public state: protocol state (OPEN/COMMITTING/REVEALING/CERTIFIED/VOID/EXPIRED), who has committed/revealed, deadlines, result, and certificate_id once issued. Inputs of other parties are never exposed.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['credential', 'deal_id'], 'properties': {'deal_id': {'type': 'string', 'description': 'The deal id (d_...).'}, 'credential': {'type': 'string', 'description': "Your API key (initiator) or any party's invite token for this deal."}}}
get_entropy
Finish a random.v1 deal once every party has revealed: redeal fetches the deal's pre-declared drand round from the public League of Entropy beacon (fixed at creation, publicly cross-checkable), computes the draw, and issues the certificate. Call this after the last reveal_input; the deal rests in REVEALING until you do. Idempotent — safe to retry.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['credential', 'deal_id'], 'properties': {'deal_id': {'type': 'string', 'description': 'The deal id (d_...).'}, 'credential': {'type': 'string', 'description': "Your API key (initiator) or any party's invite token for this deal."}}}
get_public_certificate
Fetch a certificate's full JSON (outcome included) by id. Works for public deals (the default). Parties-only deals and unknown ids both return NOT_FOUND. To re-verify the computation itself, use verify_certificate (checks) or the CLI re-runner with the parties' inputs.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['cert_id'], 'properties': {'cert_id': {'type': 'string', 'description': 'The certificate id (c_...). Verification is free and always will be.'}}}
list_algorithms
List redeal's algorithms (split.v1 fixed-budget fair division, random.v1 verifiable random selection, shapley.v1 Shapley shares, auction.v1 sealed-bid second-price auctions) with their input contracts and the published test vectors (served inline — the same fixtures the engine test suite runs). Read this before creating a deal.
입력 스키마
{'type': 'object', 'properties': {}}
reveal_input
Reveal your committed input. It must hash to your earlier commitment. When the last party reveals, the deal computes and the fairness certificate is issued automatically — fetch it with get_certificate.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['invite_token', 'deal_id', 'input'], 'properties': {'salt': {'type': ['string', 'null'], 'description': 'Your hex salt from commitment time. Omit (or empty) for open-mode deals.'}, 'input': {'description': 'Your algorithm input exactly as committed (any JSON value). split.v1: {"valuations": {...}} â\x80\x94 your valuations must sum to exactly 1000; random.v1: {"nonce": "<hex>"}; shapley.v1: {"accept": true|false}; auction.v1: {"bid": <integer>}.'}, 'deal_id': {'type': 'string', 'description': 'The deal id (d_...).'}, 'invite_token': {'type': 'string', 'description': "The invite token for YOUR party, from create_deal's response."}, 'idempotency_key': {'type': ['string', 'null'], 'description': 'Optional: retries with the same key + same arguments replay the original response.'}}}
validate_input
Validate your algorithm input against the deal's contract BEFORE you commit. A commitment binds the exact input bytes — a contract-violating input (e.g. split.v1 valuations not summing to exactly 1000) can never be corrected afterwards and the deal will VOID at the reveal deadline. Always validate first, then compute_commitment_tool, then commit_input. Read-only: nothing is stored or changed.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['invite_token', 'deal_id', 'input'], 'properties': {'input': {'description': 'The algorithm input you plan to commit (e.g. {"valuations": {"<item_id>": <points>}} for split.v1 â\x80\x94 every party\'s valuations must sum to exactly 1000). Validated against the deal\'s algorithm and declared params; nothing is stored.'}, 'deal_id': {'type': 'string', 'description': 'The deal id (d_...).'}, 'invite_token': {'type': 'string', 'description': "The invite token for YOUR party, from create_deal's response."}}}
verify_certificate
Verify a redeal certificate by id: signature check (current or published legacy key) + transparency-log inclusion check, reported per check. Free, no credential required, always.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['cert_id'], 'properties': {'cert_id': {'type': 'string', 'description': 'The certificate id (c_...). Verification is free and always will be.'}}}
추가됨
verify_certificate
2026년 9월 17일 12:39 PM
추가됨
validate_input
2026년 9월 17일 12:39 PM
추가됨
reveal_input
2026년 9월 17일 12:39 PM
추가됨
list_algorithms
2026년 9월 17일 12:39 PM
추가됨
get_public_certificate
2026년 9월 17일 12:39 PM
추가됨
get_entropy
2026년 9월 17일 12:39 PM
추가됨
get_deal
2026년 9월 17일 12:39 PM
추가됨
get_certificate
2026년 9월 17일 12:39 PM
추가됨
create_key
2026년 9월 17일 12:39 PM
추가됨
create_deal
2026년 9월 17일 12:39 PM
추가됨
compute_commitment_tool
2026년 9월 17일 12:39 PM
추가됨
commit_input
2026년 9월 17일 12:39 PM