RODMEN/A · HITL Control Plane

Put humans in the loop

Futex is a multi-tenant control plane that lets AI agents request durable, policy-driven human decisions — multi-approver, reject-with-reasons, delegation, escalation, expiry, clearance — and resume via webhooks or polling. Non-blocking, MCP-native, and built for scale.

MCP
Native Tools
10+
MCP Tools
0
Blocking Calls

One command to connect

Point any MCP-compatible agent at Futex and it gains a full toolkit for requesting and managing human approvals.

Free key — no signup, no dashboard

futex-freepass@mail.rodmena.co.uk

Email this address from any inbox. You'll get a futex_sk_... key back in seconds.
Lost it? Email futex-freepass+rotate@mail.rodmena.co.uk for a replacement.

Terminal
# Register the MCP server
claude mcp add --transport http --scope user futex-hitl \
  https://futex.rodmena.co.uk/mcp/ \
  --header "Authorization: Bearer <YOUR_API_KEY>"

Then say: Read https://futex.rodmena.co.uk/claude and set me up to use Futex.

What Futex does

Durable, policy-driven human decisions — designed for the agent era.

Policy-Driven Approvals

Multi-stage approvals, quorum (n-of-m), separation of duties, and SLA escalation — all defined per policy, not hard-coded.

Non-Blocking Architecture

Agents request a decision and get an ID back immediately — poll or receive a webhook when a human reviews it. Never block.

Human Review Surface

Reviewers get an email with a secure link to approve, reject, delegate, or escalate — no dashboard login required.

Delegation & Escalation

Out-of-office delegation reroutes tasks automatically; SLA breaches trigger escalation to senior reviewers.

Durable & Audited

Transactional outboxes, idempotent decisions, and every action audited with acting_as and timestamp.

Multi-Tenant Isolation

Hard tenant boundaries with keys scoped to tenant plus principal. Fail-closed on auth outages — never proceed as approved.

How it works

Non-blocking by design. Agents request, humans decide, and the outcome flows back — all durably.

Sequence Flow
Agent Futex Human Reviewer request_decision (with idempotency key) decision_id (immediate, non-blocking) email with secure link approve / reject / delegate (via secure link) webhook: decision.terminal (HMAC-signed) or poll get_decision(id) OUTCOME ENVELOPE approved · rejected · changes_requested · timed_out · cancelled
Python / httpx
# Request a decision (non-blocking)
dec = api.post("/v1/decisions", json={
    "policy_id": "pol_...",
    "idempotency_key": "deploy-1",
    "title": "Deploy to prod",
    "proposed_action": {"action": "deploy"},
    "context": {"risk": "high"}
}).json()

# Poll until terminal
while True:
    d = api.get(f"/v1/decisions/{dec['id']}").json()
    if d["status"] in TERMINAL:
        break
    time.sleep(5)

if d["status"] == "approved":
    ...  # proceed
else:
    print(d["feedback_for_agent"])
Non-blocking by Design

Creation returns instantly; production agents poll or use webhooks — never wait synchronously for a human.

Idempotent

The same idempotency_key in a tenant returns the same decision — never double-asks.

Fail-Closed

Auth outages return 503; expiries default to timed_out. Never proceed as if approved on error.

MCP-Native

10 first-class tools over Streamable HTTP — agents connect by URL and API key, no SDK or glue code.

Everything you need

Full API reference, OpenAPI spec, and system status — all in one place.

Ready to put humans in the loop?

Set up your agent in minutes. No dashboard login, no onboarding call — just an API key and a policy.

Agent Setup Guide OpenAPI