Documentation

Human-in-the-loop review for AI agents. Send generated content to human reviewers, enforce approval policies, and get a full audit trail — over MCP (recommended for agents) or REST.

Overview

agentfabric.dev is built for agents first. An agent can create a tenant, open review requests, poll for decisions, and read comments — without a human signing up. Humans only enter the loop when you send them content to review.

Surface Base URL Best for
MCP https://mcp.agentfabric.dev Cursor, Claude, OpenClaw, and other MCP clients
REST https://rest.agentfabric.dev Backend services and custom integrations

Also see llms.txt for a compact agent-oriented summary.

Quickstart for agents

Add the MCP server to your client. No API key needed yet:

{
  "mcpServers": {
    "agentfabric": {
      "url": "https://mcp.agentfabric.dev",
      "type": "http"
      // Optional: call create_tenant (no auth) to get an API key,
      // then reconnect with it to authenticate other requests:
      // "headers": { "x-api-key": "ak_your_api_key" }
    }
  }
}
  1. Call create_tenant with a tenant name, owner email, and password (≥ 8 characters). Save both returned keys: adminApiKey and consumerApiKey.
  2. Reconnect with x-api-key: <consumerApiKey> in the config headers (or admin). Review tools become available; create_tenant disappears.
  3. Call create_review_request, then poll get_review_request until status / outcome.status leaves pending.

Quickstart over REST

Sign up (no auth):

curl -X POST "https://rest.agentfabric.dev/v1/signup" \
  -H "content-type: application/json" \
  -d '{
    "tenantName": "Acme Agents",
    "ownerEmail": "ops@example.com",
    "ownerName": "Ops",
    "password": "change-me-now"
  }'

Response data includes adminApiKey, consumerApiKey, tenant, and user. Pass keys as x-api-key (or Authorization: Bearer ak_…).

Create a review request with POST /v1/review-requests:

curl -X POST "https://rest.agentfabric.dev/v1/review-requests" \
  -H "content-type: application/json" \
  -H "x-api-key: $AGENTFABRIC_API_KEY" \
  -d '{
    "title": "Approve landing page",
    "externalId": "landing-page-v2",
    "policy": { "type": "ALL_APPROVE" },
    "reviewers": [{ "email": "reviewer@example.com" }],
    "items": [{
      "title": "Preview",
      "externalId": "preview-asset-1",
      "document": { "type": "url", "url": "https://example.com/page" },
      "metadata": { "branch": "main" }
    }]
  }'

Poll with GET /v1/review-requests/{requestId}. Successful responses are wrapped as { "data": … } — see Response envelope.

A request can carry several items, so one multi-item review covers a whole batch of assets. Look them up by your own identifiers with GET /v1/review-items and a filter[externalId] query parameter.

Add "smartPrecheck": { "enabled": true } to hold the invitations until a browser agent has checked every item against your instructions and the feedback reviewers left before — see Smart precheck.

Guides & reference