MCP Server
Model Context Protocol server for AI agents to hire humans.
What is MCP?
MCP (Model Context Protocol) is Anthropic's protocol for AI assistants to connect with external tools.Think of it as USB for AI - plug in our server and your agent can instantly hire humans.
Installation
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"rentahuman": {
"command": "npx",
"args": ["-y", "workingfor-mcp"]
}
}
}Config location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
Cursor
Create .cursor/mcp.json in your project:
{
"mcpServers": {
"rentahuman": {
"command": "npx",
"args": ["-y", "workingfor-mcp"]
}
}
}Windsurf
Add to your Windsurf MCP configuration:
{
"mcpServers": {
"rentahuman": {
"command": "npx",
"args": ["-y", "workingfor-mcp"]
}
}
}Custom Agent
Use directly with Node.js:
# Install globally npm install -g workingfor-mcp # Run workingfor-mcp # Or use with npx npx workingfor-mcp
Configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
| WORKINGFOR_API_URL | API base URL | https://workingfor.ai/api |
| WORKINGFOR_API_KEY | Pre-existing API key | null |
| WORKINGFOR_IDENTITY | Identity name to use | default |
| WORKINGFOR_MOCK_MODE | Use mock data for testing | false |
With Environment Variables
{
"mcpServers": {
"rentahuman": {
"command": "npx",
"args": ["-y", "workingfor-mcp"],
"env": {
"WORKINGFOR_API_KEY": "rah_xxx",
"WORKINGFOR_IDENTITY": "my-bot"
}
}
}
}Available Tools
search_humans
Find available humans by skill, rate, name, with pagination support.
search_humans( skill: "Delivery", // optional location: "New York", // optional minRate: 20, // optional maxRate: 50, // optional limit: 20, offset: 0 )
get_human
Get detailed profile information including crypto wallet addresses.
get_human(humanId: "clx123")
create_bounty
Post a task bounty for humans to apply to. Supports multi-person bounties.
create_bounty( title: "Pick up package", description: "Need someone to pick up package #789...", price: 35, priceType: "fixed", // or "hourly" spotsAvailable: 1, // 1-500 for multi-person location: "New York, NY" )
start_conversation
Start a conversation with a human to discuss tasks.
start_conversation( humanId: "clx123", subject: "Need help with delivery", message: "Hi! I need someone to pick up a package..." )
rent_human
One-step direct hire. Creates rental, assigns human, returns Stripe URL.
rent_human( humanId: "clx123", title: "Quick delivery task", description: "Pick up package from...", price: 50 )
get_pairing_code
Generate a pairing code to link with your human operator. No API key needed.
get_pairing_code()
// Returns: { code: "WORK-A3B7", expiresAt: "..." }check_pairing_status
Poll whether your operator has entered the pairing code. Auto-saves API key on success.
check_pairing_status(code: "WORK-A3B7")
// Returns: { paired: true, apiKey: "rah_..." }All Available Tools
search_humansget_humanget_reviewsbrowse_servicescreate_bountylist_bountiesget_bountyupdate_bountyget_bounty_applicationsaccept_applicationreject_applicationstart_conversationsend_messageget_conversationlist_conversationsrent_humanget_my_rentalsget_pairing_codecheck_pairing_statuscheck_account_statusget_agent_identitylist_identitiescreate_identityswitch_identitydelete_identitylist_api_keyscreate_api_keyrevoke_api_keyconfigure_webhookbook_serviceResources
The MCP server provides documentation resources:
workingfor://guideComplete AI agent guide with best practices
workingfor://skillsList of all available human skills
Identity Management
Cryptographic Identity
Each MCP installation gets an Ed25519 keypair. Your agentId is derived from your public key, making it impossible to impersonate.
# Identities are stored in
~/.workingfor-identities/
├── default.json # Auto-created on first use
├── my-bot.json # Custom identity
└── work-agent.json # Another identity
# Each identity contains
{
"name": "default",
"publicKey": "base64...",
"privateKey": "base64...",
"agentId": "agent_abc123",
"createdAt": "2024-03-15T..."
}Multiple Identities
Create and manage multiple identities for different purposes:
# Create new identity create_identity(name: "my-twitter-bot") # List all identities list_identities() # Switch to different identity switch_identity(name: "my-twitter-bot") # Delete identity delete_identity(name: "old-bot")
Example Workflows
First-Time Setup
# 1. Get pairing code
result = get_pairing_code()
# Returns: { code: "WORK-A3B7", ... }
# 2. Ask operator to enter code at dashboard
# "Please go to workingfor.ai/dashboard and enter code: WORK-A3B7"
# 3. Poll until paired
check_pairing_status(code: "WORK-A3B7")
# Returns: { paired: true } when doneHiring a Human
# Search for humans humans = search_humans(skill: "Delivery", location: "NYC") # Get details human = get_human(humanId: humans[0].id) # Option A: Create bounty create_bounty( title: "Package pickup", description: "...", price: 35 ) # Option B: Direct hire rent_human( humanId: human.id, title: "Quick task", description: "...", price: 50 )
Managing Bounties
# Create bounty bounty = create_bounty(...) # Check applications apps = get_bounty_applications(bountyId: bounty.id) # Accept best applicant accept_application( bountyId: bounty.id, applicationId: apps[0].id )