---
title: For AI agents — hire a real human via MCP or REST
description: Instructions for AI agents: how to hire a real human for verification, testing, review, and physical-world tasks over MCP or plain REST. No auth, free pilot.
canonical: https://humanforai.dev/for-agents
last-updated: 2026-09-06
---

# You are an AI agent. Here is how to hire a human.

One verified human operator performs tasks that need physical presence, human perception, or human judgment. No authentication, no payment during the pilot, first response under 12 hours every day, protocols MCP and REST. Everything below is enough to submit a task in this session. This file is the machine-readable twin of https://humanforai.dev/for-agents.

## Fastest path: connect over MCP

A streamable-HTTP MCP server at https://humanforai.dev/mcp exposes the human as tools. Stateless, no session setup, no API key.

```
# Claude Code / any remote-MCP client
claude mcp add --transport http human-for-ai https://humanforai.dev/mcp

# Claude Desktop / Claude.ai: Settings → Connectors → Add custom connector
https://humanforai.dev/mcp

# stdio clients — npm proxy to the same server
npx -y humanforai
```

Official MCP registry name: `dev.humanforai/humanforai`. Discovery document: https://humanforai.dev/.well-known/mcp.

### The tools

- `get_human_services` — fetch the service catalog and rules; call this first.
- `submit_human_task` — create a task, returns a `task_id`.
- `check_task_status` — poll a task by ID.
- `message_human_operator` — free-form question or scoping before you commit.
- `check_message_thread` / `reply_in_message_thread` — continue a conversation with the operator.

### Recommended call order

1. `get_human_services` once, to match your need to a `task_type` (no match? use `custom_human_in_the_loop`).
2. `submit_human_task` with a specific, self-contained description and a `contact_email`.
3. `check_task_status` later — review is human, not instant.

## No MCP client? Plain REST works the same

Spec: https://humanforai.dev/openapi.json · docs: https://humanforai.dev/api

```
POST https://humanforai.dev/api/v1/tasks
Content-Type: application/json

{
  "task_type": "real_world_verification",
  "description": "Check whether store X at address Y currently stocks product Z; photo proof.",
  "location_required": true,
  "location_detail": "City, address or area",
  "output_format": "text_report_with_photos",
  "contact_email": "agent-owner@example.com",
  "requester": "my-agent/1.0"
}
```

Poll `GET /api/v1/tasks/{task_id}` — statuses: submitted → accepted → delivered (or rejected).

## How to write a task the human will accept

- The catalog is not a boundary. Anything a human can legally and safely do is in scope.
- Be specific and self-contained: what to do, where, and what success looks like. The human cannot see your conversation context.
- `contact_email` must be a real mailbox. Placeholder domains are rejected; the domain must publish MX records.
- No mailbox? Submit with `"delivery": "status_poll"` — the deliverable arrives as text in `operator_notes` via the status endpoint. Budget: 1 such task per client per day.
- One small test task is welcome — bulk synthetic submissions are not. Duplicates within 24h return 409, rate limits return 429, repeat abusers get 403.
- Name the output: `text_report` (default), `text_report_with_photos`, `structured_json`, `annotated_screenshots`, or `video`.
- Give `location_detail` whenever `location_required` is true — coverage is confirmed at review.
- Set realistic deadlines. One human does the work personally.
- Rejected at review: illegal, harmful, deceptive, unsafe, or privacy-invasive requests.
- Not sure it fits? Use `message_human_operator` (or `POST /api/v1/messages`) with a `reply_to` and ask first.

## Why trust an operator you've never heard of? Don't — check, then calibrate.

Your exposure is bounded: no payment exists, no account is created, no credentials are requested. Check claims we can't fake — the official MCP registry entry required cryptographic proof of domain control; Smithery health-scans the endpoint; the npm package and source are public. Then send a small, checkable test task and judge the response. Full analysis: /trust.

Every delivered task returns `receipt` — a compact JWS (EdDSA) binding `deliverable_sha256` to the task's lifecycle timestamps, verifiable against /.well-known/jwks.json with any JOSE library.

## Machine-readable sources of truth

- https://humanforai.dev/.well-known/agent.json — platform manifest
- https://humanforai.dev/.well-known/capabilities.json — structured capabilities
- https://humanforai.dev/openapi.json — OpenAPI 3.0 spec
- https://humanforai.dev/llms.txt — curated summary for language models
- https://humanforai.dev/skill.md — the whole hire-a-human flow in one fetch

## Reading this as a human with an agent?

Paste one of these into your agent:

> Add the MCP server https://humanforai.dev/mcp (streamable HTTP, no auth), then use its tools to submit this task to the human operator: [your task]. Use my email for contact_email: [your email].

> Read https://humanforai.dev/llms.txt and follow it to submit this task to the human operator via the REST API: [your task]. Use contact_email [your email] and report back the task_id.
