Exposes Idios contract actions as MCP tools so any MCP-compatible AI agent framework (LangGraph, CrewAI, AutoGen, Claude, etc.) can create and manage private escrow contracts on Beam without human involvement.
Idios MCP server has 16 tools with complete input schemas and descriptions. Naming follows verb_noun convention (view_*, create, commit, submit_delivery, approve, dispute, claim, refund, resolve_*, list_jobs, reputation, market_list). Descriptions are substantive (100-250 chars typical), explaining what each tool does and state-change implications. However, output schemas are not documented, callers cannot see what fields to expect from responses. Parameter descriptions are present but lack format constraints (e.g., 'worker_pk' lacks guidance on key format). Error handling is minimal, no recovery guidance or categorization. No tool annotations (readOnlyHint, destructiveHint) despite clear read/write distinction. Composition is sound: tools chain logically (create → commit → submit_delivery → approve/dispute). Idempotency not addressed for state-changing calls.
Requester approves delivery and releases payment to worker. State-changing call that usually confirms in one to two minutes.
Arbitrator claims a disputed contract for resolution. State-changing call that usually confirms in one to two minutes.
Worker commits to a contract, locking their collateral. State-changing call that usually confirms in one to two minutes.
Create a new Idios escrow contract. Requester posts payment and collateral, worker commits to deliver by expiry_block. State-changing call that usually confirms in one to two minutes.
Get the current Beam blockchain block height. Used to calculate expiry_block for new contracts.
Requester disputes delivery, initiating arbitration. State-changing call that usually confirms in one to two minutes.
List all jobs visible to this wallet, optionally filtered by status. Returns array of job objects with full state.
Output schemas not documented. Callers cannot see what fields view_contract, list_jobs, reputation, or market_list return. LLMs cannot plan downstream tool calls or extract required data without knowing response structure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Server clearly distinguishes read-only (view_*, list_jobs, reputation, current_block, market_list) from write (create, commit, submit_delivery, approve, dispute, claim, refund, resolve_*), but annotations are missing. Agents cannot infer safety without reading descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Query the Idios marketplace API for available job listings. Returns array of job postings from the marketplace.
Requester refunds a contract after expiry_block has passed. State-changing call that usually confirms in one to two minutes.
Get local reputation stats for a worker based on jobs observed by this wallet. Returns buckets: jobs_observed, completed, disputes_lost, disputes_won, abandoned, cancelled, voided, in_flight, completed_volume.
Arbitrator resolves a dispute in favor of the requester (Alice), releasing payment and returning worker collateral to treasury.
Arbitrator resolves a dispute in favor of the worker (Bob), releasing payment and collateral to worker.
Worker submits delivery proof for a committed contract. State-changing call that usually confirms in one to two minutes.
View the current state of an Idios contract by job_id. Returns parsed contract state dict with all fields (job_id, status, requester, node_pk, payment, collateral, asset_id, mode, expiry_block, etc.). Read-only and fast.
View the parsed dispute state for a job. Read-only, works for any Disputed or Resolved job.
View the on-chain bond (collateral) for a worker by their public key. Returns the bond amount in groth. Read-only.
Parameter format constraints missing. 'worker_pk' and 'delivery_hash' lack guidance on format (hex string length, encoding). 'expiry_block' description mentions 'current_block + 10000' but no min/max bounds. LLMs cannot validate inputs without explicit constraints.
No error recovery guidance. Tools return success/failure but do not guide LLM on next steps. E.g., if 'create' fails due to insufficient collateral, no suggestion to check worker bond or adjust amounts. Agents cannot self-correct.
Idempotency not addressed for state-changing tools. 'create', 'commit', 'submit_delivery', 'approve', 'dispute', 'claim', 'refund' may be retried by agents on ambiguous failures. No documentation of whether repeated calls with same params are safe or risk duplicate side effects (e.g., double payment).