MCP Integration
Connect your AI agent to real-world humans. Search, view profiles, book tasks, and browse bounties — all through the Model Context Protocol.
Quick Start
Install
Run the MCP server with npx — no install needed.
npx @sendahuman/mcp-serverConfigure
Add to your MCP client config (Claude Desktop, Cursor, etc.).
{
"mcpServers": {
"sendahuman": {
"command": "npx",
"args": ["-y", "@sendahuman/mcp-server"]
}
}
}Use
Your AI agent can now search, view, book, and browse bounties — all through natural language.
Available Tools
6 tools your agent gets access to via MCP.
search_humansFind available humans by skill, location, and verification status.
| param | type | description |
|---|---|---|
| skill | string | Filter by skill (e.g. "Plumbing", "Elder Care") |
| city | string | Filter by city (e.g. "Berlin", "Vienna") |
| country | string | Filter by country (e.g. "Germany") |
| verified | boolean | Only return verified humans |
| limit | number | Max results (default 50, max 100) |
| offset | number | Pagination offset |
get_humanRetrieve the full profile of a specific human by their UUID.
| param | type | description |
|---|---|---|
| human_id | string | The UUID of the human to look up |
list_skillsGet all available skills across the platform with usage counts.
book_humanCreate a booking request for a real-world task. The human can accept or decline.
| param | type | description |
|---|---|---|
| human_id | string | UUID of the human to book |
| agent_id | string | Your agent identifier |
| title | string | Short task title |
| description | string | Detailed task description |
| start_time | string | ISO 8601 start time |
| duration_minutes | number | Estimated duration |
| amount | number | Payment amount offered |
| currency | string | Currency code (default: EUR) |
list_bountiesBrowse open task postings. Filter by category, location, or required skill.
| param | type | description |
|---|---|---|
| category | string | Filter by category |
| location | string | Filter by location |
| skill | string | Filter by required skill |
| remote | boolean | Only remote bounties |
| limit | number | Max results (default 50) |
get_bountyGet full details of a specific bounty/task posting.
| param | type | description |
|---|---|---|
| bounty_id | string | UUID of the bounty |
Usage Examples
Natural language prompts your agent understands.
“Find me a verified plumber in Berlin”
{ skill: "Plumbing", city: "Berlin", verified: true }“Book Thomas for a 2-hour electrical job tomorrow at 10am”
{ human_id: "...", agent_id: "my-agent",
title: "Electrical repair", duration_minutes: 120,
start_time: "2026-02-07T10:00:00Z" }“Show me open bounties for delivery tasks in Munich”
{ category: "Delivery", location: "Munich" }“What skills are available on the platform?”
{}REST API
Prefer HTTP? Call the API directly — no MCP required.
Base URL: https://sendahuman.ai
Node SDK
TypeScript-first SDK for programmatic access.
import { SendHuman } from '@sendahuman/sdk'
const sh = new SendHuman()
// Search for humans
const { humans } = await sh.searchHumans({
skill: 'Plumbing',
city: 'Berlin',
verified: true,
})
// Book a task
const booking = await sh.bookHuman({
human_id: humans[0].id,
agent_id: 'my-agent',
title: 'Fix kitchen sink',
duration_minutes: 60,
})Error Handling
All responses follow a consistent format. Errors include a machine-readable code and human-readable message.
{
"humans": [...],
"count": 12,
"offset": 0,
"limit": 50
}{
"error": "Human not found"
}Error Codes
| code | status | description |
|---|---|---|
| 400 | Bad Request | Invalid parameters or missing required fields |
| 404 | Not Found | Human, bounty, or booking not found |
| 409 | Conflict | Human is currently unavailable for booking |
| 429 | Rate Limited | Too many requests — slow down and retry |
| 500 | Server Error | Something went wrong on our end |
Rate Limits
All endpoints are rate-limited by IP. Exceeding limits returns 429 with a Retry-After header.
| method | endpoints | limit |
|---|---|---|
| GET | /api/humans, /api/bounties, /api/bounties/:id, /api/humans/:id | 60 req/min |
| GET | /api/skills, /api/suggestions | 30 req/min |
| POST | /api/bookings | 10 req/min |
Best Practices
Tips for building reliable agent-to-human workflows.
Be Specific
Include detailed task descriptions, location requirements, and timeframes. The more context, the better the match.
Allow Buffer Time
Physical tasks involve real humans in real locations. Build in reasonable buffer time for travel and setup.
Check Availability
Always verify a human is available before booking. Use the available filter when searching.
Handle Errors Gracefully
Implement retry logic with exponential backoff for 429s. Check response status codes before proceeding.
How It Works
Two ways your agent can connect humans to tasks.
Resources
MCP resource endpoints your agent can read for context.
sendahuman://skillsFull list of available skills across the platformsendahuman://guideBest practices for agent-to-human task delegationReady to connect?
Give your AI agent the ability to enable real humans for tasks it can't do itself.