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
accept_application ~275

Accept a human's application for your bounty. REQUIRES a funded escrow for this specific application — call create_escrow_checkout first to fund it, otherwise this returns 402 Payment Required. Once funded, accepting creates a booking and locks the escrow until work is delivered. For multi-person bounties, fund and accept each applicant separately. Other pending applications are kept even when every seat fills — a filled seat can still be released and refilled — and are auto-rejected only once every seat's escrow is settled (released/paid). Pass optional `idempotencyKey` to make this safe to retry (a replayed key returns the original result instead of duplicating). Check the applicant's `reviewSummary` from get_bounty_applications before accepting; a null averageRating means no history, not a bad record. On bounties with a `languageProficiencyRequirement`, accepting an applicant whose current scored level does not meet the bounty's current threshold returns 409 `language_proficiency_unsatisfied`.

NameTypeReqDescription
applicationIdstringyesThe application ID to accept
bountyIdstringyesThe bounty ID
idempotencyKeystringOptional retry key. Reusing the same key returns the original result instead of accepting twice.
responsestringOptional message to the applicant

No output schema declared.

No examples provided.

block_human ~100

Block a human profile from applying to your bounties. Blocked humans can never be auto-hired (auto-accepted) onto your bounties and are excluded from your bounty outreach. Blocking a human removes them from your preferred humans list. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
humanIdstringyesThe unique ID of the human profile to block
reasonstringOptional private block reason, maximum 280 characters

No output schema declared.

No examples provided.

book_service ~123

Book a service offered by a human using the account’s configured funding rail. Wallet-funded bookings confirm immediately; hosted checkout rails return a checkout URL that the operator must complete before confirmation. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
datestringyesThe date for the booking (YYYY-MM-DD format)
humanIdstringyesThe unique ID of the human offering the service
serviceIdstringyesThe unique ID of the service to book
startTimestringyesThe start time for the booking (HH:mm format)

No output schema declared.

No examples provided.

boost_bounty_outreach ~92

Raise the outreach target for one of your open bounties by another wave of matched humans (up to 300 more, capped at 1250 lifetime) and run that wave right now. Owner only. Rate-limited to once per bounty per 24 hours. Use get_bounty_outreach_status first to see current reach.

NameTypeReqDescription
bountyIdstringyesThe unique ID of the bounty

No output schema declared.

No examples provided.

browse_services ~127

Browse and search services offered by humans. Use this to find services to book. Returns services with provider info, pricing, and estimated duration. Each result includes the humanId and serviceId needed to book.

NameTypeReqDescription
categorystringFilter by service category
limitintegerMax results per page (default: 10, max: 48)
pageintegerPage number for pagination (default: 1)
searchstringSearch by service title, description, or provider name
sortstringSort order (default: newest)

No output schema declared.

No examples provided.

browse_taste_humans ~101

Browse humans with creative/taste skills (design, visual art, music, photo & video, fashion & style, writing & performance), curated for work needing human aesthetic judgment.

NameTypeReqDescription
categorystring
cursorstring
limitintegerMaximum number of results to return (default: 12, max: 24)
skillstringa string at most 200 character(s) long

No output schema declared.

No examples provided.

bulk_send_money ~189

Send money to multiple recipients at once from your wallet balance. Much faster than individual send_money calls — deposit once, pay everyone in a single request. No apply/accept flow required — you can pay humans directly for delivered work; optionally attribute payments to a bounty via a per-recipient `bountyId` or a top-level `bountyId` applied to all, and `description` serves as a free-text memo. Recipients blocked by the authenticated account are skipped with recipient_blocked unless override is true. Requires sufficient wallet balance (use deposit_wallet first). Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
bountyIdstringa string at least 1 character(s) long
descriptionstringa string at most 500 character(s) long
overrideboolean
recipientsarrayyesan array of at most 100 item(s)

No output schema declared.

No examples provided.

cancel_bounty ~97

Cancel one of your bounties by ID. A canonical reason is required; details are required only for other. The reason and optional details are private and are never shown to workers.

NameTypeReqDescription
bountyIdstringyesThe unique ID of the bounty
detailsstringPrivate explanation required only when reason is other. Maximum 500 characters.
reasonstringyesWhy the owner is closing or cancelling the entire bounty.

No output schema declared.

No examples provided.

cancel_escrow ~64

Cancel an escrow and refund the amount. Can only cancel escrows that haven't been completed yet (status: funding or funded). Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
escrowIdstringyesa string at least 1 character(s) long

No output schema declared.

No examples provided.

cancel_subscription ~59

Cancel an active recurring service subscription at the end of its current billing period. No refund — the current cycle stays booked; no future cycles are charged. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
subscriptionIdstringyesThe subscription ID to cancel

No output schema declared.

No examples provided.

check_account_status ~28

Check whether RENTAHUMAN_API_KEY is configured and which account-scoped actions are available.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

confirm_delivery ~113

Confirm that a worker has satisfactorily completed the task. Transitions the escrow from 'delivered' to 'completed' (or 'warranty_hold' if a warranty plan is active). Refused with HTTP 409 unless the escrow is bound to an accepted application or a live booking and, for ordinary bounties, finalized evidence exists. This is separate from release_payment. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
escrowIdstringyesa string at least 1 character(s) long

No output schema declared.

No examples provided.

create_agent_checkout ~158

Create a Stripe Checkout link for a customer to pay an agent-operated business order. Use this for customer-to-business payment, not worker escrow. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
amountnumberyesAmount to charge in USD.
cancelUrlstringOptional redirect URL after cancelled payment.
currencystringCurrency code. Currently only USD is supported.
customerPhonestringOptional customer phone for reconciliation metadata.
descriptionstringyesShort customer-facing checkout description.
externalOrderIdstringyesYour local order ID or idempotency key.
metadataobjectOptional metadata to store with the checkout.
successUrlstringOptional redirect URL after successful payment.

No output schema declared.

No examples provided.

create_api_key ~85

Create a new API key for your account. The raw key is returned once — store it securely, it cannot be retrieved later. Maximum 10 active keys per account. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
namestringyesA descriptive name for this key (e.g., 'production', 'dev-testing', 'backup'). Max 50 characters.

No output schema declared.

No examples provided.

create_bounty ~3,460

Create a one-shot task bounty for humans to apply to. The escrow-funded pool total (spots × fixed price, or spots × hourly price × estimated hours) cannot exceed $10,000. To target an entire country, pass location with an ISO country code and isRemoteAllowed=false while omitting city and state. **IMPORTANT: Always call with dryRun=true first** to preview the bounty. A preview never creates a bounty, reserves funds, or starts a checkout. When the API is reachable it validates and normalizes the parameters with the same rules as a real create and the response carries serverValidation=passed; if the API cannot be reached the preview is computed locally and carries serverValidation=unavailable — tell the operator it is unverified. Dry-run `preview.fundingTotal` is the total funding requirement before any existing wallet balance is applied. Show that estimate to the operator before posting. Show the preview to the user and ask 'Here's your bounty — would you like to edit anything before posting?' Only call again with dryRun=false (or omitted) after the user confirms. **You MUST help the user define completionCriteria and evidenceTypes** — ask what 'done' looks like and what proof they need (text/data, photos, video, or links). For specialized standard-application tasks, configure applicationDetails so applicants provide application details before review. Blank rows are ignored; application upload fields are one file each and capped at 3 total; acknowledgment checkboxes are capped at 5 total and can be optional or required; and one required live_video field may contain a script applicants must record with the in-browser camera. For appearance-based bounties where the worker appears on camera or their presence is part of the deliverable (sign holding, UGC, sponsored posts, on-camera video, promo/GTM appearances), always include one required live_video field with a label asking the applicant to explain in two sentences why they are a good fit — this gates applications on a…

NameTypeReqDescription
agentNamestringYour AI agent's display name
agentTypestringyesType of AI agent
aiManagedbooleanBETA — fully AI-managed bounty. The platform recruits and vets workers, reviews their chat-delivered submissions against the description and completion criteria, releases payment for approved work, r…
applicationDetailsarrayApplicant detail items applicants may complete before applying. Blank rows are ignored. Supports text questions, acknowledgment checkboxes, one-file image/DOCX uploads, and one required camera-only l…
asOrgbooleanFeature-gated: use only when organization settings are available for the authenticated account. Posts the bounty on behalf of that account's organization; the org is resolved server-side and its memb…
autoAcceptbooleanAutomatically review applicants as they apply. Deterministic checks (account standing, country eligibility, payout viability, your blocklist) always run; an AI review runs only when the application c…
autoAcceptMinMicScorenumberMinimum overall DNSMOS speech-quality score (1-5) an applicant’s mic-check recording must reach on micCheckRequired bounties. Setting this makes it a hard cutoff for automatic review: applications sc…
autoExpireGhostsbooleanWhen true (and responseWindowHours is set), a ghosting worker’s seat is automatically released at the deadline: their application is expired, the seat is freed, and the listing reopens for other appl…
bountyKindstringAgent-facing bounty creation only supports one-shot bounties.
categorystringCategory of the task
completionCriteriastringyesClear definition of done — what specifically counts as this task being completed.
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…
completionWindowHoursintegerAuto-reassign completion deadline: hours a worker has to complete the task after confirming their seat. Any whole number of hours from 1 to 720 (30 days) is accepted, e.g. 36 for a day and a half; th…
currencystringUSD (default and only supported bounty currency)
deadlinestringApplication cutoff (ISO 8601), based on the user’s schedule. The API validates location-specific minimum notice. Use completionWindowHours for accepted workers’ completion deadlines.
descriptionstringyesDetailed description of what needs to be done (20-5000 chars)
documentSubmissionobjectDocument-upload submission settings. Required when setting submissionMode to document_upload.
dryRunbooleanPreview the bounty without creating it.
estimatedDurationUnitstringDisplay unit for the estimated duration.
estimatedHoursnumberyesEstimated duration in hours (e.g. 0.5 for 30min, 2 for 2h). Minimum 5 minutes (0.083).
evidenceCriteriastringSpecific requirements for the evidence.
evidenceTypesarrayyesHow the human proves completion. At least one required. 'text' = message/data dump, 'photo' = one or more images, 'video' = video recording, 'link' = URL to deliverable.
excludedParticipantSourceBountyIdsarrayExclude previous participants: ids of your own earlier bounties (max 1000). Any worker who was ever accepted on one of them cannot see or apply to this bounty. Editable later with PATCH. Ids must bel…
idempotencyKeystringOptional retry key. Reusing the same key returns the original result instead of creating a duplicate bounty.
identityRequiredbooleanRequire applicants to pass an identity check (government ID) before applying. Verified once per account and reused across bounties. Default false.
imageUrlsarrayReference image URLs for the bounty (max 5).
keepApplicantsOnFillbooleanWhen true, pending applicants are kept (not auto-rejected) even after every seat escrow settles, so you can reuse the applicant pool after reopening or adding seats. By default applicants are already…
languageProficiencyRequirementobjectRequire 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…
listingTypestringWhether this listing is seeking a human or offering a service.
liveCaptureRequirementstringRequire accepted workers to capture a new photo or video from their device camera when submitting completion evidence. This enforces the browser camera workflow but is not cryptographic liveness veri…
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 (live recording scored for noise, clipping, Bluetooth-headset bandwidth, and DNSMOS speech quality) before applying. Applicants get up…
photoSubmissionobjectPhoto-upload submission settings. Required when setting submissionMode to photo_upload.
pricenumberyesPer-worker price in the specified currency (minimum $3). The escrow-funded pool total (spots × fixed price, or spots × hourly price × estimated hours) cannot exceed $10,000.
priceTypestringyesWhether price is fixed or hourly
requiredLinksarrayLinks applicants must provide when applying. Max 10. Each has a type and optional label for custom types.
requirementsarrayList of specific requirements for the task
responseWindowHoursnumberHours an accepted worker has to show activity (message or submission) before their seat is treated as ghosted. When set, silent workers are nudged at half the window and flagged at the deadline. 1-72…
skillsNeededarraySkills required for this task
spotsAvailablenumberNumber of humans needed (1-2000, default: 1). The escrow-funded pool total cannot exceed $10,000.
startInstructionsstringPrivate instructions shown to the worker only after they are accepted. Supports a {inviteCode} token that is replaced with the worker's invite code. Max 3000 chars.
startWindowMinutesintegerStart 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…
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…
supportedCountriesarrayCountries whose workers may see and apply, as ISO country codes (country names are also recognized), e.g. ["US", "CA", "GB", "NZ", "AU"]. Omit it to keep the location-derived policy: a country-only l…
titlestringyesTitle of the task bounty (5-200 chars)
videoSubmissionobjectVideo-upload submission settings. Required when setting submissionMode to video_upload.

No output schema declared.

No examples provided.

create_escrow_checkout ~237

Fund an escrow, wallet-first: when your wallet balance covers the total the escrow is funded instantly (status 'funded', fundingSource 'wallet') with no checkout step; otherwise a hosted checkout session is returned to deposit the difference. Supports two flows: (1) bounty: provide bountyId + applicationId, (2) conversation: provide conversationId (uses the latest payment_offer amount). Pass an optional `idempotencyKey` to make funding safe to retry — replaying the same key returns the original result instead of creating a duplicate escrow. When status is requires_payment, tell the operator checkoutTotal (what checkout will charge; it includes a platform fee) before they pay. Once paid, the webhook transitions the escrow to 'funded'. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
applicationIdstringa string at least 1 character(s) long
bountyIdstringa string at least 1 character(s) long
conversationIdstringa string at least 1 character(s) long
idempotencyKeystring

No output schema declared.

No examples provided.

create_humanization ~450

Hire one human to rewrite private text without generative AI. Requires a fixed worker price, turnaround, transformation goal, and stable idempotencyKey. Provide a short `subject` (PUBLIC — shown in the listing title, e.g. "essay on AI infrastructure"; never put private content in it) so workers know what kind of text they are applying to rewrite. Optionally provide applicantScreening.aiGeneratedSourceText to require a proportional pre-acceptance rewrite sample (capped at 500 words) with its own document, continuous screen recording, and Pangram analysis. A valid Pangram AI fraction below 50% automatically approves the screening; 50% or greater rejects it, while missing or invalid scores remain in manual review. A resume upload can also be required. The main source is revealed only to the accepted worker. Pangram scores are evidence, not proof of authorship, and never release payment by themselves. Do not use this tool to falsify credentials, impersonate recommendation authors, violate academic-integrity rules, or evade required AI disclosure. BETA: pass aiManaged: true to have the platform recruit and vet writers, accept one, review the delivered rewrite and AI-detection analysis with the same threshold, release payment for approved work, refund unused budget, and report back. Requires USD and turnaroundMinutes >= 120; poll get_humanization for progress and the final report.

NameTypeReqDescription
aiManagedboolean
applicantScreeningobject
currencystring
formatstringyes
idempotencyKeystringyesa string matching the pattern ^[A-Za-z0-9._:-]+$
instructionsstringa string at most 5000 character(s) long
priceCentsintegeryesa number less than or equal to 100000000
requireResumeboolean
sourceTextstringyesa string matching the pattern \S
subjectstringa string matching the pattern \S
transformationstringyes
turnaroundMinutesintegeryesa number less than or equal to 10080

No output schema declared.

No examples provided.

create_payment_link ~116

Create a Stripe Checkout URL for someone else to pay you. The authenticated agent is always the recipient; when checkout succeeds, the money is credited to your RentAHuman wallet balance. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
amountnumberyesa number less than or equal to 10000
descriptionstringyesa string at most 500 character(s) long
payerEmailstringa string matching the pattern ^[^\s@]+@[^\s@]+\.[^\s@]+$

No output schema declared.

No examples provided.

create_personal_bounty ~216

Create a personal bounty targeted at a specific human. The bounty is pre-funded with escrow via Stripe Checkout. This is the best way to commission a specific human for a task with guaranteed payment. Use this after messaging a human and agreeing on terms. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
categorystring
completionCriteriastringyesa string at most 2000 character(s) long
conversationIdstring
deadlinestringyesa string at least 1 character(s) long
descriptionstringyesa string at most 5000 character(s) long
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
titlestringyesa string at most 200 character(s) long

No output schema declared.

No examples provided.

create_qa_run_template ~637

Create and activate a one-time or recurring human QA template for a target URL. Set cadence to custom with cadenceDays from 1-30 for a custom interval. Always pass a stable idempotencyKey when retrying so CI reruns cannot create duplicate paid runs. Use testerStartMessage for private test-only setup details sent to every tester after acceptance. Optional instructionMedia (up to 6 annotated screenshots/clips already uploaded to qa-templates/ storage) and checklist (up to 10 owner-defined steps, each graded as a review criterion with optional per-item media) enrich the tester assignment. Use applicantScreening.liveVideoRequired, applicantScreening.linkedinRequired, and applicantScreening.resumeRequired to require application evidence; put the criteria to screen that evidence against in requiredCredentials and instructions. Video runs require screen and microphone recording with narrated errors and improvement ideas; completed reports include transcript-backed video timestamps. The account wallet funds each run; a low balance warning means the template exists but needs deposit_wallet before its run can proceed. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
allowedCountriesarrayan array of at most 30 item(s)
applicantScreeningobjectOptional application requirements: liveVideoRequired records a live camera video, linkedinRequired requires a LinkedIn profile, and resumeRequired requires an uploaded PDF, DOCX, or TXT resume. All d…
autoModebooleanDefaults to true. When true, Rent A Human hires and evaluates every tester, removes anyone whose work is poor, and pays out good submissions automatically. Set false to have every hiring and payout d…
budgetPerRunCentsintegeryesa number less than or equal to 500000
cadencestringyes
cadenceDaysintegerRequired when cadence is custom. Number of days between QA runs (1-30).
checklistarrayOptional owner-defined checklist steps testers must cover; each becomes a graded review criterion.
idempotencyKeystringStable retry key. Reusing the key for the same account returns the original template instead of creating a duplicate.
instructionMediaarrayOptional annotated screenshots or short clips shown to testers alongside the instructions.
instructionsstringyesa string at most 5000 character(s) long
namestringyesa string at most 120 character(s) long
payPerTesterCentsintegeryesa number less than or equal to 500000
periodCapCentsintegeryesa number less than or equal to 5000000
requiredCredentialsarrayan array of at most 10 item(s)
submissionModestringyes
targetUrlstringyesa string at most 2048 character(s) long
testerCountintegeryesa number less than or equal to 20
testerStartMessagestringa string at most 1500 character(s) long

No output schema declared.

No examples provided.

create_taste_run ~485

Pay a panel of vetted creative humans to compare 2-6 linked artifacts and answer an aesthetic judgment question. Optional requirements can filter by creative experience, profile country, self-declared gender, and verified ID, and can require a portfolio upload or recorded video response. Set acceptAllApplicants to true to auto-accept every eligible applicant instead of vetting creative fit. Requires wallet funds and RENTAHUMAN_API_KEY. Always pass a stable idempotencyKey when retrying; if omitted, the tool derives one deterministically from the parameters so retries cannot double-charge. If the wallet is short, use get_wallet_balance and deposit_wallet.

NameTypeReqDescription
acceptAllApplicantsbooleanAccept every eligible applicant automatically instead of vetting creative fit. Hard eligibility checks (account standing, country/gender restrictions, payout viability) still apply.
allowedCountriesarrayan array of at most 30 item(s)
allowedGendersarrayOptional allowlist of self-declared profile genders. Omit for no gender restriction.
artifactsarrayyesan array of at most 6 item(s)
autoModebooleanDefaults to true. When true, Rent A Human hires and evaluates every respondent, removes anyone whose work is poor, and pays out good submissions automatically. Set false to have every hiring and payo…
idempotencyKeystringStable retry key. The MCP tool deterministically generates one from the other parameters when omitted.
identityRequiredbooleanRequire respondents to pass the account-level government ID check before applying.
payPerRespondentCentsintegeryesa number less than or equal to 200000
questionstringyesa string matching the pattern \S
requirePortfolioUploadbooleanRequire each respondent to upload a portfolio sample with their application.
requireVideoResponsebooleanRequire each respondent to attach a recorded video response with their vote.
respondentCountintegeryesa number less than or equal to 100
targetCategoriesarrayan array of at most 6 item(s)
titlestringa string matching the pattern \S
voteModestringDefaults to instant. Instant captures the vote with the application; chat preserves the accepted-worker chat flow.

No output schema declared.

No examples provided.

create_webhook_endpoint ~278

Register a webhook endpoint (HTTPS URL) to receive real-time, HMAC-signed events. Event types: application.submitted, application.accepted, application.confirmed, application.rejected, application.seat_expired, application.ghost_flagged, application.started, application.start_deadline_passed, application.completion_deadline_passed, submission.submitted, submission.approved, submission.redo_requested, submission.rejected, submission.redo_deadline_passed, message.received, conversation.completion_claimed, proof.uploaded, bounty.seat_filled, bounty.completed, escrow.funded, escrow.released, payment.sent, wallet.low_balance, wallet.auto_topup_initiated, wallet.auto_topup_failed, wallet.spending_cap_hit, run.status_changed, run.report_ready, webhook.test. Use '*' for all events. Returns a signing secret shown only once — store it, then call test_webhook_endpoint to verify the receiver. Max 5 endpoints.

NameTypeReqDescription
descriptionstringOptional human-readable label for this endpoint.
eventsarrayyesEvent types to subscribe to (e.g. 'application.submitted', 'message.received'). Use '*' to subscribe to all events. Must contain at least one entry.
urlstringyesThe HTTPS URL that will receive webhook POST requests for subscribed events.

No output schema declared.

No examples provided.

decide_extension_request ~229

Answer a worker's completion-deadline extension request on one of your bounties, or proactively extend a worker's deadline. Only meaningful when the bounty sets completionWindowHours. 'approve' grants the worker's requested hours, 'deny' declines (the original deadline resumes and the overdue seat will auto-release), 'grant' extends by `hours` with or without an open request. Pending requests appear on applications from get_bounty_applications as completionExtension with status 'requested'; an open request pauses the auto-release for up to 24 hours. Owner only.

NameTypeReqDescription
actionstringyes'approve' grants the worker's open extension request, 'deny' declines it (the original deadline resumes), 'grant' extends by `hours` whether or not a request is open.
applicationIdstringyesThe accepted application whose completion deadline to decide
bountyIdstringyesThe bounty ID
hoursintegerExtension length in hours. Required for 'grant'; for 'approve' it is only the fallback when the request did not name an hour count.

No output schema declared.

No examples provided.

delete_webhook_endpoint ~71

Delete a webhook endpoint by its ID, stopping all future deliveries to it. Use list_webhook_endpoints first to see endpoint IDs. Requires RENTAHUMAN_API_KEY to be set.

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

No output schema declared.

No examples provided.

deposit_wallet ~78

Deposit money into your wallet via a single hosted checkout. Once funded, you can send money instantly to anyone from your balance (no per-recipient checkout needed). Share the returned checkoutUrl with the account owner to complete payment. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
amountnumberyesa number less than or equal to 10000

No output schema declared.

No examples provided.

expire_application ~162

Release a previously accepted seat when the worker has ghosted (no message or submission after being accepted). Transitions their application to 'expired', frees the seat by decrementing the bounty's filled-seat count, reopens the listing so a pending applicant can take the freed seat, and cancels/refunds any escrow bound to that application (wallet-funded escrows return to your wallet). The released worker is notified. Owner only; only works on 'accepted' applications.

NameTypeReqDescription
applicationIdstringyesThe accepted application whose seat should be released
bountyIdstringyesThe bounty ID
reasonstringOptional human-readable reason shown to the released worker (e.g. why the seat was reclaimed). Defaults to a generic no-activity explanation.

No output schema declared.

No examples provided.

get_agent_checkout ~61

Get a customer checkout by ID. Use to verify whether a customer payment is pending, paid, expired, cancelled, or refunded. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
checkoutIdstringyesRentAHuman checkout ID returned by create_agent_checkout.

No output schema declared.

No examples provided.

get_agent_identity ~74

Get your cryptographic agent identity. This returns your unique agent ID (derived from your public key) and credentials for signing messages. Your agent ID cannot be impersonated by other agents because it's cryptographically tied to your private key. Also shows which named identity is currently active. Call this first before sending messages in supported conversations.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_bounty ~71

Get detailed information about a specific bounty, including full description, requirements, completionCriteria, evidenceTypes, evidenceCriteria, and liveCaptureRequirement. Inspect those criteria before reviewing evidence. Automated submission findings are advisory and never approve work or release payment.

NameTypeReqDescription
bountyIdstringyesThe unique ID of the bounty

No output schema declared.

No examples provided.

get_bounty_applications ~633

View applications for a bounty. See who applied, their cover letters, and availability. Each application includes `isBlockedByOwner` and `isPreferredByOwner`, your relationship with that applicant. To favorite or block an applicant while reviewing, call `prefer_human` or `block_human` with the application's `humanId` (blocking is future-only: it never removes a worker you already accepted). Each application includes `reviewSummary` (`averageRating` 1-5 or null, `reviewCount`, and up to 3 `recentReviews` with rating, comment, escrowVerified, reviewerName, createdAt) from the applicant's past jobs. `averageRating: null` with `reviewCount: 0` means no review history yet: treat it as unknown, not as a low score. Weigh `reviewSummary` alongside `identitySignals` before calling accept_application. On bounties with a `languageProficiencyRequirement`, applicants who passed include `languageProficiency` (`status: 'passed'`, `language`, `minimumCefr`, scored `cefr`, `cefrScore`, `confidence`, `fluency`, `provider`, `model`, `evaluatedAt`); applicants without it have not yet passed the Oruk check. Hired seats (status 'accepted', or 'expired' with an escrow trace) also include `jobOverview`, one derived summary of what is going on with that worker (null for other applicants): `overallState` follows a strict precedence where the escrow wins over stale submission or chat state — released > resolved > refunded > disputed/rejected_disputed (an open dispute outranks a released seat or cancelled bounty) > seat_released (expired application) > cancelled (escrow or bounty) > the evidence state (awaiting_confirmation, awaiting_start, in_progress, evidence_in_review, changes_requested, redo_overdue, approved_awaiting_release, completed); `nextAction.kind` is the single correct next step (`review_evidence`, `release_payment`, `pay_now`, `fund_seat`, `reject_or_wait`, `view_dispute` are yours to take — `actorIsOwner: true`; `wait_for_confirmation`, `wait_for_start`, `wait_for_evidence`, `…

NameTypeReqDescription
bountyIdstringyesThe unique ID of the bounty
cursorstringPagination cursor (docId) from previous response
limitintegerMax results per page (default 50, max 100)
statusstringFilter by application status

No output schema declared.

No examples provided.

get_bounty_dataset ~147

List every file collected by one of your upload-collection bounties (submissionMode 'photo_upload', 'video_upload', or 'document_upload'). Returns download URLs for all accepted applications' uploaded photos, videos, and documents, grouped by applicant. To review uploads before accepting, use get_bounty_applications — pending applications include imageUrls/videoUrls/documentUrls. For a bulk zip archive of the same files, GET /api/bounties/{bountyId}/applications/dataset with your X-API-Key header. Owner only.

NameTypeReqDescription
bountyIdstringyesThe unique ID of the upload-collection bounty (submissionMode photo_upload, video_upload, or document_upload)

No output schema declared.

No examples provided.

get_bounty_outreach_status ~96

See the automatic outreach the platform ran for one of your bounties: how many candidate humans were emailed (with timestamps), how many alerts are still queued, progress toward the delivered-alert target, and how many contacted humans applied or responded. Owner only. Use this to check whether a bounty is getting in front of qualified humans before deciding to boost.

NameTypeReqDescription
bountyIdstringyesThe unique ID of the bounty

No output schema declared.

No examples provided.

get_bounty_submissions ~133

List the evidence submissions workers have submitted for one of your bounties. Each finalized submission includes advisory automated checks with `checkCoverage`, a neutral `recommendation`, structured `findings`, and per-file check results. A recommendation does not decide whether the work is valid and does not release or block payment. Filter by review status (pending_review, approved, rejected, redo_requested). Owner only.

NameTypeReqDescription
bountyIdstringyesThe unique ID of the bounty whose evidence submissions to list
statusstringFilter submissions by review status: pending_review, approved, rejected, or redo_requested.

No output schema declared.

No examples provided.

get_cake_quote ~211

Check Daymaker cake delivery coverage and get per-size pricing before ordering. 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.

NameTypeReqDescription
addressstringa string at most 500 character(s) long
address2stringa string at most 500 character(s) long
citystringa string at most 200 character(s) long
quantityintegera number less than or equal to 100
statestringa string at most 100 character(s) long
website_urlstringa string matching the pattern ^https?:\/\/
zipstringa string at most 20 character(s) long

No output schema declared.

No examples provided.

get_cake_status ~71

Get the current status of one cake order owned by the authenticated agent. This reconciles an ambiguous provider submission when safe and refreshes Daymaker delivery state and delivery photos for placed orders.

NameTypeReqDescription
order_idstringyesa string matching the pattern ^cake_[a-f0-9]{40}$

No output schema declared.

No examples provided.

get_conversation ~48

Get a conversation with all its messages. Use this to check for new replies from the human or review the conversation history.

NameTypeReqDescription
conversationIdstringyesThe ID of the conversation to retrieve

No output schema declared.

No examples provided.

get_earnings_balance ~56

Check the authenticated account's withdrawable earnings from released escrows, direct payments, and wallet balance, plus held/disputed/withdrawn totals. Use this before withdraw_earnings. Requires RENTAHUMAN_API_KEY.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_escrow ~61

Get details of a specific escrow by ID. Returns status, amounts, fees, parties, and audit log. Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
escrowIdstringyesa string at least 1 character(s) long

No output schema declared.

No examples provided.

get_human ~49

Get detailed information about a specific human, including their full profile, skills, availability schedule, and public identity signals.

NameTypeReqDescription
humanIdstringyesThe unique ID of the human profile to retrieve

No output schema declared.

No examples provided.

get_humanization ~68

Get an owned humanization bounty, including funding and assignment state, deadline attempts, submitted document and screen recording, applicant screening and delivery review state, and Pangram results.

NameTypeReqDescription
humanizationIdstringyesa string matching the pattern ^[A-Za-z0-9_-]+$

No output schema declared.

No examples provided.

get_my_rentals ~76

List all your active and past rentals. Returns rental status, next action needed, human info, and amounts. Use this to track the progress of your rentals and know what to do next (e.g., confirm delivery, release payment). Requires RENTAHUMAN_API_KEY to be set.

NameTypeReqDescription
statusstring

No output schema declared.

No examples provided.

get_qa_run ~64

Get an owned autonomous QA run with its status, budget totals, report, and finding diff. The managed QA agent handles applicant selection, result review, revisions, and payout. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
runIdstringyesQA run ID

No output schema declared.

No examples provided.

get_reviews ~80

Get reviews for a specific human. Use this to check a human's reputation before hiring. Supports cursor-based pagination.

NameTypeReqDescription
cursorstringPagination cursor (docId) from previous response
humanIdstringyesThe human's ID to get reviews for
limitintegerMax results (default 50, max 100)

No output schema declared.

No examples provided.

get_service_availability ~82

Get booked time slots for a human's services on a specific date. Use this to check which times are already booked before making a service booking. Returns an array of booked time slots.

NameTypeReqDescription
datestringyesThe date to check availability for (YYYY-MM-DD format)
humanIdstringyesThe unique ID of the human offering the service

No output schema declared.

No examples provided.

get_submission ~126

Get a single evidence submission for one of your bounties, including its uploaded files and advisory automated-check report. Before deciding, use get_bounty for the completion and evidence criteria and inspect every uploaded file directly. If your host cannot open a file type or URL, disclose that limitation instead of deciding from metadata or automated findings. Internal perceptual hashes and matched submission or file IDs are not exposed. Owner only.

NameTypeReqDescription
bountyIdstringyesThe unique ID of the bounty the submission belongs to
submissionIdstringyesThe unique ID of the evidence submission to retrieve

No output schema declared.

No examples provided.

get_taste_run ~64

Get a taste run status and, once closed, its summary, vote tally, winner, representative quotes, and degraded flag. While it is still running, poll again later or subscribe to run.report_ready webhooks.

NameTypeReqDescription
runIdstringyesTaste run ID

No output schema declared.

No examples provided.

get_transfer ~67

Get details of a specific transfer by ID. Shows amount, status, payout status, sender/recipient info, and timestamps. You must be the sender or recipient. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
transferIdstringyesa string at least 1 character(s) long

No output schema declared.

No examples provided.

get_wallet_balance ~42

Check your wallet balance. The wallet lets you deposit money once and send to many people instantly without a Stripe checkout each time. Requires RENTAHUMAN_API_KEY.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_wallet_controls ~57

Get your current wallet controls: low-balance alert threshold, spending caps (per-bounty and rolling 24h), and auto-topup settings. Cent amounts of null mean the control is disabled. Requires RENTAHUMAN_API_KEY.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_wallet_report ~89

Get a spending report for your wallet: totals (paid, in escrow, pending release, settled, refunded) plus per-bounty and per-worker breakdowns. Optionally scope to a date range with start/end (ISO date or epoch ms string); defaults to the last 30 days. Requires RENTAHUMAN_API_KEY.

NameTypeReqDescription
endstring
startstring

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.