Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

RentAHuman

NPM · RENTAHUMAN-MCP · SCANNED SEP 20

Hire humans for digital microtasks, research, QA, data evaluation, and physical-world tasks.

Available components

+6 this week 75 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security99
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 34 of 159 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 19142 tokens (~201/item across 95 items; 93 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management79
  • Stability check failed: the tool surface changed between 1.29.0 and 3.7.0: 1 tool removals, 0 breaking changes, 3 additions. See how to fix → Fail
Tool Coverage96
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 87% of tool parameters carry a description.Partial
Tool Safety78
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 2 of 18 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "unblock_human" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 95 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the RentAHuman MCP server?

RentAHuman runs locally as an npm package, launched with npx -y rentahuman-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · rentahuman-mcp

# add to Claude Code
claude mcp add rentahuman-ai-rentahuman -- npx -y rentahuman-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "rentahuman-ai-rentahuman": {
      "command": "npx",
      "args": [
        "-y",
        "rentahuman-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "rentahuman-ai-rentahuman": {
      "command": "npx",
      "args": [
        "-y",
        "rentahuman-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add rentahuman-ai-rentahuman -- npx -y rentahuman-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "rentahuman-ai-rentahuman": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "rentahuman-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add rentahuman-ai-rentahuman --command npx --arg -y --arg rentahuman-mcp
# ~/.hermes/config.yaml
mcp_servers:
  rentahuman-ai-rentahuman:
    command: "npx"
    args: ["-y", "rentahuman-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "rentahuman-ai-rentahuman": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "rentahuman-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add rentahuman-ai-rentahuman -t stdio -c npx -a -y rentahuman-mcp
// mcp.json
{
  "mcpServers": {
    "rentahuman-ai-rentahuman": {
      "command": "npx",
      "args": [
        "-y",
        "rentahuman-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 72 to 76.

  • 18 Sept 26 0
    • Package version: 3.6.0 → 3.7.0 functional
  • 17 Sept 26 +16
    • Stability: fail → unverified security
    • Tool safety: pass → unverified security
    • Malware scan: unverified → pass security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 3.5.0 → 3.6.0 functional
  • 16 Sept 26 −12
    • Malware scan: pass → unverified security
    • CVE-2026-63376 no longer affects this package security
    • CVE-2026-77465 no longer affects this package security
    • Known CVEs: fail → pass security
    • Package version: 3.4.0 → 3.5.0 functional
  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 56 to 59.

  • 12 Sept 26 +16
    • Malware scan: unverified → pass security
  • 11 Sept 26 −15
    • Tool safety: pass → unverified security
    • Stability: 0.47 → unverified security
    • Malware scan: pass → unverified security
    • Stability: 0.47 → fail security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Destructive annotations: 6% → 12% functional
    • Package version: 3.0.0 → 3.4.0 functional
    • Package version: 3.0.0 → 3.3.0 functional
  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/rentahuman-mcp@3.7.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 159 packages
Packages resolved 159
Stale 34
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 93 exposed · ~19,017 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_webhook_deliveries ~145

List recent webhook deliveries (status, attempts, response status, last error) for debugging. Optionally filter by endpoint ID, event type, or delivery status and limit the number of results. Use get_webhook_delivery for the signed payload and per-attempt history of one delivery. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
endpointIdstringOptional endpoint ID to filter deliveries (from list_webhook_endpoints).
eventTypestringOptional event type to filter deliveries.
limitnumberOptional maximum number of deliveries to return (1-200).
statusstringOptional delivery status to filter by.

No output schema declared.

No examples provided.

get_webhook_delivery ~100

Read one webhook delivery in full: status, the signed event payload that was POSTed, and the per-attempt history (time, outcome, HTTP status, error). Use it after test_webhook_endpoint or when a delivery from get_webhook_deliveries needs debugging. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
deliveryIdstringyesThe delivery ID (from get_webhook_deliveries or test_webhook_endpoint).

No output schema declared.

No examples provided.

list_agent_checkouts ~58

List customer checkouts for a local externalOrderId. Use this to avoid duplicate payment links for the same order. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
externalOrderIdstringyesLocal order ID used when creating the checkout.

No output schema declared.

No examples provided.

list_api_keys ~47

List all API keys for your account. Returns key metadata (prefix, name, status, dates) but never the raw key value. Requires RENTAHUMAN_API_KEY to be set.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_blocked ~28

List human profiles currently blocked by the authenticated poster account. Requires RENTAHUMAN_API_KEY.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_bounties ~199

List available bounties. Use this to see what tasks are posted (including your own). Filter by status, category, skill, or price range. By default, includes both 'open' and 'partially_filled' bounties.

NameTypeReqDescription
categorystringFilter by category
includePartiallyFilledbooleanWhen status is 'open', also include 'partially_filled' bounties (default: true)
limitintegerMaximum number of results (default: 20, max: 100)
maxPricenumberMaximum price
minPricenumberMinimum price
minebooleanList bounties owned by the authenticated account, including bounties posted from the web UI and through MCP/API keys.
skillstringFilter by required skill
statusstringFilter by bounty status (default: open)

No output schema declared.

No examples provided.

list_conversations ~255

Lists all conversations under your user account — across MCP keypairs, web-UI threads, and legacy API keys. Supports filtering by status, unread, replies, and subject. Use unreadByAgent=true for efficient monitoring. Pass onlyThisIdentity=true to restrict results to this MCP keypair's exact agentId (legacy behavior).

NameTypeReqDescription
credentialsobjectSigned credentials from get_agent_identity (recommended for verified identity)
cursorstringCursor for pagination — pass the nextCursor from previous response to get next page
hasRepliesbooleanIf true, only return conversations where the human has replied (messageCount > 1)
limitintegerMax results per page (default: 50, max: 100)
onlyThisIdentitybooleanIf true, restrict results to conversations whose agentId exactly matches this MCP keypair's identity. Default false — the API returns all conversations under your user account (across MCP identities,…
statusstringFilter by conversation status
subjectstringFilter by exact conversation subject
unreadByAgentbooleanIf true, only return conversations with unread messages from humans.

No output schema declared.

No examples provided.

list_escrows ~100

List your escrows as a poster. Returns escrows you've created, with optional status filter. You can look up escrow(s) for a specific application via `applicationId`, or by `bountyId` with optional `humanId`. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
applicationIdstring
bountyIdstring
humanIdstring
statusstring

No output schema declared.

No examples provided.

list_my_service_bookings ~57

List service bookings made by this agent. Returns bookings where this agent (via API key) has booked services from humans. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
statusstringFilter by booking status

No output schema declared.

No examples provided.

list_my_subscriptions ~56

List recurring service subscriptions this agent has created. Returns each subscription's status, interval, next billing period, and slot (day/time). Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
statusstringFilter by subscription status

No output schema declared.

No examples provided.

list_preferred ~60

List human profiles preferred by the authenticated poster account. Preferred humans are auto-notified first for all of your future bounties, including QA and taste runs, and preferring a human removes any block on them. Requires RENTAHUMAN_API_KEY.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_qa_runs ~76

List up to 100 owned autonomous QA runs newest first, optionally filtered by templateId. List results include status, budget totals, agent-reviewed progress, and hasReport; use get_qa_run for the completed report. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
templateIdstringOnly return runs for this template

No output schema declared.

No examples provided.

list_refundable_wallet_funding ~54

List Whop wallet funding that can be returned to its original payment method. Quotes show the full wallet principal removed, original fee retained, exact refund, and masked destination. Requires RENTAHUMAN_API_KEY.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_transfers ~77

List your sent and/or received money transfers. Shows transfer history with amounts, statuses, and recipient/sender info. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
cursorstring
directionstring
limitnumbera number less than or equal to 100
statusstring

No output schema declared.

No examples provided.

list_wallet_transactions ~74

List your wallet ledger: deposits, sent payments, received payments, bulk sends, withdrawals, and balance changes. Use this to audit wallet activity and paginate with nextCursor. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
cursorstring
limitnumbera number less than or equal to 100

No output schema declared.

No examples provided.

list_webhook_endpoints ~44

List all webhook endpoints registered for your account, including their subscribed events and status. Signing secrets are never returned. Requires RENTAHUMAN_API_KEY to be set.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

open_dispute ~141

Open a dispute on an escrow. Use this when you believe the work was not completed satisfactorily or the terms were not met. Can be used on escrows in locked, delivered, completed, or warranty_hold status. For personal bounties, opening a dispute before the auto-release date prevents the automatic payment. An admin will review and resolve the dispute. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
categorystringyes
descriptionstringyesa string at least 20 character(s) long
escrowIdstringyesa string at least 1 character(s) long
urlsarray

No output schema declared.

No examples provided.

pay_enterprise_bounty ~264

Pay an accepted worker on a legacy enterprise bounty (older bounties created under the retired enterprise deferred-billing tier) from the owner wallet. New bounties are always escrow-funded; use release_payment for them. This is an irreversible financial action: call it only when the user explicitly directs payment. For jobs in the evidence review flow the submitted evidence must be approved first and acknowledgeRelease must be true; otherwise HTTP 409 returns the code, the amount and the worker. If the user asks for evidence review instead of payment, use get_bounty, get_submission, and review_submission. The amount, worker, and wallet are loaded from stored records. Insufficient wallet funds return 402 and are safe to retry after topping up. Owner or bounty-owning agent only; platform admins cannot pay.

NameTypeReqDescription
acknowledgeReleasebooleanRequired for ordinary bounty jobs in the evidence review flow: pass true to confirm the release pays the worker and is final. Without it the API answers HTTP 409 release_acknowledgement_required with…
bountyIdstringyesThe unique ID of the enterprise bounty to pay
conversationIdstringConversation for the completed application. Required when the bounty has more than one conversation.

No output schema declared.

No examples provided.

prefer_human ~92

Add a human profile to your preferred humans list. Preferred humans are auto-notified first for all of your future bounties, including QA and taste runs. Preferring a human removes any block on them. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
humanIdstringyesThe unique ID of the human profile to prefer
notestringOptional private preference note, maximum 280 characters

No output schema declared.

No examples provided.

refund_agent_checkout ~77

Fully refund a paid customer checkout owned by the authenticated agent. Use only after the customer has requested or approved the refund. Repeated calls are idempotent. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
checkoutIdstringyesRentAHuman checkout ID to fully refund. The checkout must be paid and owned by this API key.

No output schema declared.

No examples provided.

refund_wallet_funding ~131

Return the quoted unused Whop-funded wallet value to its original payment method. Call list_refundable_wallet_funding first and pass its exact amounts with confirm=true. Processing or attention-required states are not success. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
confirmbooleanyes
expectedPrincipalCentsyesa positive number
expectedRefundAmountCentsyesa positive number
fundingTransactionIdstringyesa string at least 1 character(s) long
requestIdstringyesa string matching the pattern ^[A-Za-z0-9_-]+$

No output schema declared.

No examples provided.

reject_application ~59

Reject a human's application for your bounty with an optional message explaining why.

NameTypeReqDescription
applicationIdstringyesThe application ID to reject
bountyIdstringyesThe bounty ID
responsestringOptional message explaining the rejection

No output schema declared.

No examples provided.

release_payment ~385

Pay the worker: release escrow funds to them and complete the task. The poster can ALWAYS pay — worker evidence is advisory and never blocks release (reviewing with review_submission first is optional). This is an irreversible financial action: call it only when the user explicitly directs payment. For ordinary bounty jobs pass acknowledgeRelease: true after confirming the amount and worker with the user; without it HTTP 409 release_acknowledgement_required returns the next action, amountCents, workerPayoutCents and worker. If the job has no funded escrow yet, pass bountyId + applicationId (or conversationId): the tool funds the escrow from your wallet balance automatically and then releases; when the wallet cannot cover it, it returns status deposit_required with a checkout link — have the operator pay it, then call release_payment again. Optionally pass `applicationId` alongside escrowId to assert the intended application; a mismatch is refused to prevent paying the wrong worker. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
acknowledgeReleasebooleanRequired for ordinary bounty jobs in the evidence review flow: pass true to confirm the release pays the worker and is final. Without it the API answers HTTP 409 release_acknowledgement_required with…
applicationIdstring
bountyIdstringWith applicationId: identifies the job so an unfunded escrow is funded from your wallet balance before release. If the wallet cannot cover it, the tool returns a deposit checkout link instead of fail…
conversationIdstringIdentifies a conversation job (uses its latest payment_offer) to fund from your wallet and release when no funded escrow exists yet.
escrowIdstringThe escrow to release. Optional when bountyId + applicationId (or conversationId) identify the job.
idempotencyKeystring

No output schema declared.

No examples provided.

rent_human ~160

Rent a human in one step. Creates a bounty and assigns the human. You receive a Stripe Checkout URL to fund escrow before the bounty goes live. After the human completes the work, use confirm_delivery and then release_payment. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
estimatedHoursnumbera number greater than or equal to 0.08333333333333333
humanIdstringyesa string at least 1 character(s) long
pricenumberyesa number less than or equal to 10000
taskDescriptionstringyesa string at least 10 character(s) long
taskTitlestringyesa string at most 200 character(s) long

No output schema declared.

No examples provided.

report_support_issue ~184

Report a RentAHuman platform error or support issue to the support team. The authenticated account and agent identity are attached automatically, and the report is added to the same support queue used by the web app. Use this for platform failures, unexpected API responses, billing issues, or workflows that need human support. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
categorystringIssue category (defaults to bug)
descriptionstringyesWhat failed, what was expected, and any useful reproduction details (max 5000 characters)
errorCodestringOptional error code or exception name (max 200 characters)
prioritystringOptional operational priority for support triage
sourceToolstringOptional MCP tool or workflow identifier where the issue occurred
summarystringyesShort summary of the issue (max 160 characters)

No output schema declared.

No examples provided.

request_account_link ~128

Send a magic link email to link an existing RentAHuman account to the current Slack user. Use when a user says they already have an account and wants to link it. Requires the user's email address, their Slack user ID, and workspace ID (from context).

NameTypeReqDescription
emailstringyesa string matching the pattern ^[^\s@]+@[^\s@]+\.[^\s@]+$
slack_user_idstringyesa string at least 1 character(s) long
slack_workspace_idstringyesa string at least 1 character(s) long

No output schema declared.

No examples provided.

review_submission ~654

Record a decision on a worker's evidence submission. Only call after the user explicitly chooses a decision or explicitly delegates criteria-based evidence decisions to you. First call get_bounty and get_submission, compare the stated completion/evidence criteria with every uploaded file, and do not decide if you cannot inspect a file. `action` is 'approve', 'reject', or 'request_redo'; `response` is required for reject and request_redo. Available while the job is evidence_in_review (the worker marked the task complete with evidence); other states return HTTP 409 job_state_conflict. Every response includes `jobState` (state, allowed next actions, `attempt` {used, max}, `redoDueAt`, `isRedoOverdue`): request_redo is capped at 3 cycles per job, after which HTTP 409 redo_limit_reached leaves only approve or reject. request_redo may set a redo deadline with `redoWindowMinutes` (15-10080) or an absolute `redoDueAt`; the worker's resubmission appends to the earlier evidence and every deliverable the bounty declared (each evidence type and each required completion question) must be present before it is accepted. While the deadline has not passed, reject from changes_requested returns HTTP 409 redo_deadline_pending; after it passes (`isRedoOverdue: true`) reject becomes available there too. Pass `expectedState` (the jobState you last saw) so a worker resubmitting in the meantime turns your reject into HTTP 409 job_state_conflict instead of landing on the new evidence. reject is terminal for the evidence loop and immediately files a dispute on the escrow; the worker cannot resubmit. Automated `recommendation` and findings are advisory only and must never be treated as the verdict. This tool does not move money: after approve, use release_payment with acknowledgeRelease: true. Owner only, with an action-bound agent signature.

NameTypeReqDescription
actionstringyesReview decision: 'approve' accepts the evidence, 'reject' declines it, 'request_redo' asks the worker to resubmit corrected evidence.
bountyIdstringyesThe unique ID of the bounty the submission belongs to
expectedStatestringOptional optimistic-concurrency guard: the job state you last observed (e.g. 'changes_requested' when rejecting after a redo deadline). The review is refused with HTTP 409 job_state_conflict if the j…
redoDueAtstringrequest_redo only: absolute ISO-8601 redo deadline, between 15 minutes and 7 days from now. Mutually exclusive with redoWindowMinutes.
redoWindowMinutesrequest_redo only: how long the worker has to add the requested evidence, in minutes (15-10080). Sets the redo deadline; once it passes, reject becomes available on the job. Mutually exclusive with r…
responsestringMessage shown to the worker. Required and non-blank for reject and request_redo; optional for approve.
submissionIdstringyesThe unique ID of the evidence submission to review

No output schema declared.

No examples provided.

revoke_api_key ~105

Revoke an API key by its ID, permanently deactivating it. WARNING: If you revoke the key you are currently using (RENTAHUMAN_API_KEY), this MCP session will lose API access until you update the env var with a different valid key. Use list_api_keys first to see key IDs. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
keyIdstringyesThe ID of the API key to revoke (from list_api_keys).

No output schema declared.

No examples provided.

search_humans ~166

Search for available humans to rent. **This is free and requires no API key or account.** Filter by skill, hourly rate, name, city, country, or get all available humans. Returns a list of human profiles with their skills, rates, location, and availability. Supports pagination with offset parameter.

NameTypeReqDescription
citystring
countrystring
limitintegerMaximum number of results to return (default: 50, max: 200)
maxRatenumbera non-negative number
minRatenumbera non-negative number
namestring
offsetintegerNumber of results to skip for pagination (default: 0)
skillstring

No output schema declared.

No examples provided.

send_cake ~219

Send a custom cake through Daymaker. Prices are the Daymaker base price plus the 18% RentAHuman platform fee and are paid from the authenticated agent wallet. contact_name is the person the courier asks for, not the company name. For NYC deliveries provide address2 or a recipient phone. A recipient phone is often the difference between a successful delivery and a returned cake. The design must contain exactly one of message_text, image_svg, image_url, or image_base64. idempotency_key must be a fresh UUID for each distinct order; reuse that exact UUID verbatim when retrying the same order so neither the wallet nor Daymaker is charged twice.

NameTypeReqDescription
cake_shapestring
cake_sizestringyes
card_messagestringa string at most 2000 character(s) long
designobjectyes
idempotency_keystringyesa string at most 200 character(s) long
metadataobject
recipientobjectyes

No output schema declared.

No examples provided.

send_message ~195

Send a message in a bounty, service-booking, feedback, dispute, or platform-support conversation. Legacy direct threads are read-only. Your agent identity is cryptographically verified to prevent impersonation. Pass optional `idempotencyKey` to make this safe to retry (a replayed key returns the original result instead of duplicating).

NameTypeReqDescription
agentNamestringYour AI agent's display name
contentstringyesThe message content
conversationIdstringyesThe ID of the conversation to send a message to
credentialsobjectSigned credentials from get_agent_identity (recommended for verified identity)
idempotencyKeystringOptional retry key. Reusing the same key returns the original result instead of sending a duplicate message.
messageTypestringType of message (default: text)
metadataobjectAdditional metadata for task_request or payment_offer messages

No output schema declared.

No examples provided.

send_money ~272

Send a one-time payment directly to another user. Returns a hosted checkout URL that the sender must visit to authorize the payment. Tell the operator checkoutTotal (what checkout will charge; it includes a platform fee) before they pay. Once paid, funds transfer to the recipient's bank account (or are held until they link one). No apply/accept flow required — you can pay a human directly for delivered work without going through a bounty application; optionally pass `bountyId` to attribute the payment to a bounty, and use `description` as a free-text memo. If the authenticated account has blocked the recipient, the API refuses unless override is true. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
amountnumberyesa number less than or equal to 10000
bountyIdstringa string at least 1 character(s) long
conversationIdstringa string at least 1 character(s) long
descriptionstringa string at most 500 character(s) long
overrideboolean
recipientEmailstringa string matching the pattern ^[^\s@]+@[^\s@]+\.[^\s@]+$
recipientIdstringa string at least 1 character(s) long

No output schema declared.

No examples provided.

set_wallet_controls ~149

Update your wallet controls: low-balance alert threshold, spending caps (per-bounty and rolling 24h), and auto-topup (enable, floor, target, max per day). All cent amounts are integers; pass null to clear a control. Only the fields you provide are changed. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
autoTopupEnabledboolean
autoTopupFloorCents
autoTopupMaxPerDayCents
autoTopupTargetCents
lowBalanceThresholdCents
spendingCapPerBountyCents
spendingCapRolling24hCents

No output schema declared.

No examples provided.

stop_qa_run ~92

Stop one owned active QA run without pausing its recurring schedule. New testers are rejected; assigned testers keep their deadlines and approved work is still paid. Unused and failed-seat funds are refunded after active work, revisions, payouts, and disputes settle. Run history and evidence are retained. This is destructive and requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
runIdstringyesOwned active QA run ID

No output schema declared.

No examples provided.

subscribe_to_service ~166

Subscribe to a recurring service offered by a human. Creates a Stripe subscription (weekly, biweekly, or monthly) for the same day-of-week and start time each cycle. The human must approve the first cycle; subsequent cycles auto-charge until canceled. Returns a checkout URL for the operator to complete setup. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
dayOfWeekstringyesDay of the week the recurring slot is booked on
humanIdstringyesThe unique ID of the human offering the service
intervalstringyesBilling cadence: weekly, biweekly, or monthly
serviceIdstringyesThe unique ID of the service to subscribe to
startTimestringyesThe start time for each cycle (HH:mm format)

No output schema declared.

No examples provided.

test_webhook_endpoint ~105

Send a signed 'webhook.test' event to one of your endpoints to verify the receiver and its signature check. The test always targets the named endpoint, even if it does not subscribe to webhook.test. Returns the deliveryId to inspect with get_webhook_delivery. Limited to 10 tests per hour. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
endpointIdstringyesThe ID of the webhook endpoint to test (from list_webhook_endpoints).

No output schema declared.

No examples provided.

unblock_human ~44

Remove a human profile from your poster blocklist. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
humanIdstringyesThe unique ID of the human profile to unblock

No output schema declared.

No examples provided.

unprefer_human ~79

Remove a human profile from your preferred humans list. Preferred humans are auto-notified first for all of your future bounties, including QA and taste runs, and preferring a human removes any block on them. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
humanIdstringyesThe unique ID of the human profile to unprefer

No output schema declared.

No examples provided.

update_bounty ~2,670

Update ordinary one-shot bounty details. An edit that grows an escrow-funded pool cannot raise its total above $10,000. You can modify the title, description, price, application-cutoff deadline, location, requiredLinks, applicationDetails, lifecycleMessages, liveCaptureRequirement, reactivate hidden inactive bounties, and more. The deadline stops new applications and direct uploads; completionWindowHours controls post-acceptance completion timing. To target an entire country, pass location with an ISO country code and isRemoteAllowed=false while omitting city and state. To change which countries may apply, pass supportedCountries with the full new list of ISO codes; omitting it leaves an explicit multi-country list in place (legacy bounties that only mirror a country-only location keep deriving that country from location), an empty array is stored as an explicit empty list but never lifts a country-only or on-site country restriction, and on-site bounties accept only their location country. Live capture and required-link requirements can only be changed before applications are received. applicationDetails may be changed after applications are received; existing applications keep their original answers, while future applications use the latest fields. applicationDetails are application detail items for standard application bounties only; blank rows are ignored, uploads are capped at 3 fields, acknowledgments at 5 fields, and camera-only live_video at 1 required field. lifecycleMessages can define auto-message templates for acceptance, rejection, and submission review transitions. Admin-only ongoing bounty settings are intentionally not exposed through MCP. You can also pause/unpause a bounty (status 'paused' stops new applications and outreach, including on a fully staffed bounty; status 'open' resumes it, and the resumed status is derived from its seats: open, partially_filled, or assigned when every seat is still filled), close an unassigned bounty and return its…

NameTypeReqDescription
applicationDetailsarrayUpdate application detail items. Blank rows are ignored. Max 3 upload fields, 5 acknowledgment fields, and 1 required camera-only live video field. Only allowed when applicationCount is 0.
autoAcceptbooleanTurn automatic applicant review on or off. When on, deterministic checks always run and an AI review runs only for free-text screening answers; qualified applicants are accepted, clear mismatches rej…
autoAcceptMinMicScoreChange the minimum overall DNSMOS mic score (1-5) for automatic review on micCheckRequired bounties — applications scoring below your configured cutoff are auto-rejected, at/above proceed toward acce…
autoExpireGhostsbooleanWhen true (with responseWindowHours set), ghosting workers’ seats are auto-released at the deadline and the listing reopens.
bountyIdstringyesThe unique ID of the bounty to update
categorystringNew task category
completionCriteriastringUpdated definition of done.
completionQuestionsarrayMandatory questions the accepted WORKER answers when submitting evidence (for example "Which counter did you use?"). Max 10, prompts up to 300 characters, required defaults to true. Distinct from app…
completionWindowHoursAuto-reassign completion deadline as any whole number of hours from 1 to 720 (30 days), or null to disable. Only affects seats confirmed after the edit — live per-worker deadlines are not re-timed.
deadlinestringNew application cutoff (ISO 8601), based on the user’s schedule. The API validates minimum notice when the deadline or physical location changes. This does not retime accepted workers.
descriptionstringNew description
documentSubmissionobjectDocument-upload submission settings. Required when setting submissionMode to document_upload.
estimatedHoursnumberNew estimated duration in hours (min 5 minutes = 0.083). For hourly bounties, an edit that grows an escrow-funded pool cannot raise its total above $10,000.
evidenceCriteriastringUpdated evidence requirements.
evidenceTypesarrayUpdated evidence types. At least one required when present.
excludedParticipantSourceBountyIdsarrayReplace the exclude-previous-participants list: ids of your own earlier regular bounties (max 1000), never this bounty itself. An empty array clears it. Exclusion is evaluated live, so a source added…
identityRequiredbooleanRequire applicants to pass an identity check (government ID) before applying. Verified once per account and reused across bounties.
keepApplicantsOnFillbooleanWhen true, pending applicants are kept (not auto-rejected) even after every seat escrow settles, so you can draw from the same pool after reopening or adding seats. By default applicants are already…
languageProficiencyRequirementRequire applicants to pass an English speaking-proficiency check before applying. The applicant records about 45 seconds of spontaneous speech in the app; Oruk (model oruk-proficiency-1) transcribes…
lifecycleMessagesobjectAuto-sent to the doer in the bounty conversation on lifecycle transitions. Supports {{name}}, {{bountyTitle}}, {{deadline}}, {{reason}} interpolation. Accepted/submission templates are only ever deli…
liveCaptureRequirementRequire live photo/video evidence, or null to remove the requirement.
locationobjectWorker location target. Set country to an ISO country code without city or state to target every eligible worker in that country, including when remote work is allowed. Include city (and optionally s…
micCheckRequiredbooleanRequire applicants to pass an on-device microphone quality check before applying (max 2 attempts; result visible on each application).
photoSubmissionobjectPhoto-upload submission settings. Required when setting submissionMode to photo_upload.
pricenumberNew per-worker price (minimum $3). An edit that grows an escrow-funded pool cannot raise its total above $10,000.
priceTypestringNew price type
reactivatebooleanReactivate a bounty hidden by inactivity garbage collection.
requiredLinksarrayUpdate required links. Only allowed when applicationCount is 0.
requirementsarrayNew requirements list
responseWindowHoursHours an accepted worker has to show activity before their seat is treated as ghosted (1-720), or null to remove the ghost policy. Silent workers are nudged at half the window and flagged at the dead…
skillsNeededarrayNew skills list
spotsAvailableintegerChange the number of seats (humans needed, 1-2000). Cannot be set below spots already filled or grow an escrow-funded pool above $10,000. On a wallet-funded bounty the pool is resized in place: extra…
startWindowMinutesStart commitment: minutes after the worker confirms their seat (or after acceptance when skipAcceptanceConfirmation is true) by which they must press Start or upload evidence, otherwise the seat is e…
statusstringNew owner-managed status. Owners can pause/unpause a bounty or close it before accepting a worker. 'completed' and 'paid' are system-managed from escrow and payout evidence and cannot be set directly.
submissionModestringHow users submit to this bounty. 'application' shows the standard application form; 'photo_upload' shows consent and image upload; 'video_upload' shows consent and video upload; 'document_upload' sho…
supportedCountriesarrayReplace the eligible-country list with the full new list of ISO country codes (country names are also recognized), e.g. ["US", "CA", "GB", "NZ", "AU"]. Omitting it leaves an explicit multi-country li…
titlestringNew title for the bounty
videoSubmissionobjectVideo-upload submission settings. Required when setting submissionMode to video_upload.
walletImpactAcknowledgedbooleanAcknowledges the wallet impact of a wallet-funded bounty edit. Any edit that debits the poster wallet (adding seats via spotsAvailable, or raising the price) is first refused with error_code wallet_i…

No output schema declared.

No examples provided.

withdraw_earnings ~53

Withdraw all pending earnings to the authenticated account's Stripe Connect bank account. This processes released escrow payouts, completed direct-transfer payouts, and wallet balance together. Requires completed Stripe Connect onboarding and RENTAHUMAN_API_KEY.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

withdraw_wallet ~75

Withdraw wallet balance to the authenticated user's Stripe Connect bank account. Omit amountCents to withdraw the full available wallet balance; provide amountCents for a partial withdrawal. Requires completed Stripe Connect onboarding and RENTAHUMAN_API_KEY.

NameTypeReqDescription
amountCentsnumbera number less than or equal to 1000000

No output schema declared.

No examples provided.

x402_fund_wallet ~148

Deposit money into your RentAHuman wallet by paying USDC on Base via the x402 protocol — no card, no checkout page. Requires RENTAHUMAN_API_KEY and RENTAHUMAN_X402_PRIVATE_KEY (an EVM key whose address holds USDC on Base; gasless — no ETH needed). The deposit is credited 1:1 as spendable balance. Early access: a 404 means your account is not enrolled — email support@rentahuman.ai.

NameTypeReqDescription
amountCentsintegeryesAmount to deposit in integer cents ($1.00–$10,000). Paid in USDC on Base; credited to your wallet 1:1.

No output schema declared.

No examples provided.

x402_signup ~218

Create a brand-new RentAHuman agent account by paying the signup price ($10) in USDC on Base via x402 — no captcha, no email verification, no existing API key needed. Requires only RENTAHUMAN_X402_PRIVATE_KEY. The response contains your API key (shown exactly once — store it as RENTAHUMAN_API_KEY immediately) and the full payment as spendable wallet balance. Keep the same wallet key: it is your recovery credential.

NameTypeReqDescription
agentNamestringDisplay name for the new agent account (2–80 chars).
contactEmailstringOptional recovery email for human support. Never used for login.
countrystringCountry for the account (e.g. "United States"). Recommended: money operations require one.
maxAmountCentsintegerClient-side spend cap in cents (default 1000 = $10, the signup price at launch). The payment is refused if the server asks for more — raise this only if the published price has changed.

No output schema declared.

No examples provided.

Common questions

What is the RentAHuman MCP server?

RentAHuman is an MCP server listed in the public MCP registry as io.github.rentahuman-ai/rentahuman. Hire humans for digital microtasks, research, QA, data evaluation, and physical-world tasks. This page covers its npm package (rentahuman-mcp).

Is the RentAHuman MCP server safe to use?

RentAHuman scores 75 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the RentAHuman MCP server expose?

RentAHuman exposes 93 tools: get_agent_identity, search_humans, browse_taste_humans, get_human, block_human, and 88 more. Their descriptions and schemas cost roughly 19,017 tokens of context every time the server is loaded.

Is the RentAHuman MCP server still maintained?

RentAHuman is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the RentAHuman MCP server under?

RentAHuman declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.