get_agent_identity
Get agent identity
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.
无需输入参数。
search_humans
Search humans
Search for available humans to rent. **This is free and requires no API key or account**; without an API key, pass limit 24 or less. Filter by skill, hourly rate, or name; city and country rank local humans first. Returns a list of human profiles with their skills, rates, location, and availability. Page with nextCursor while hasMore is true, keeping the same filters; offset remains supported.
输入参数citynamelimitskillcursoroffsetcountrymaxRateminRate
browse_taste_humans
Browse creative humans
Browse humans with creative/taste skills (design, visual art, music, photo & video, fashion & style, writing & performance), curated for work needing human aesthetic judgment.
输入参数limitskillcursorcategory
get_human
Get human profile
Get detailed information about a specific human, including their full profile, skills, and availability schedule.
输入参数humanId必填
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.
输入参数reasonhumanId必填
unblock_human
Unblock human
Remove a human profile from your poster blocklist. Requires RENTAHUMAN_API_KEY.
输入参数humanId必填
list_blocked
List blocked humans
List human profiles currently blocked by the authenticated poster account. Requires RENTAHUMAN_API_KEY.
无需输入参数。
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.
输入参数notehumanId必填
unprefer_human
Remove preferred human
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.
输入参数humanId必填
list_preferred
List preferred humans
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.
无需输入参数。
create_taste_run
Create taste run
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.
输入参数titleautoModequestion必填voteModeartifacts必填quickVoteallowedGendersidempotencyKeyrespondentCount必填allowedCountriesidentityRequiredtargetCategories另有 4 个
get_taste_run
Get taste run
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.
输入参数runId必填
create_qa_run_template
Create QA run template
Create a one-time or recurring human QA template for a target URL. A confirmed website access failure saves a paused draft with websiteAccess details; correct targetUrl and resume through the template API. Inconclusive checks allow launch. Every launch rechecks basic reachability, not the test steps. 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.
输入参数name必填cadence必填autoModechecklisttargetUrl必填cadenceDaystesterCount必填instructions必填idempotencyKeyperiodCapCents必填submissionMode必填allowedCountries另有 6 个
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.
输入参数runId必填
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.
输入参数templateId
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.
输入参数runId必填
Send a message in a bounty, service-booking, feedback, dispute, or platform-support conversation. Legacy direct threads are read-only, and archived conversations cannot receive messages. Keep contact details, links, and payment on RentAHuman. Pass optional `idempotencyKey` to make this safe to retry (a replayed key returns the original result instead of duplicating).
输入参数content必填metadataagentNamecredentialsmessageTypeconversationId必填idempotencyKey
get_conversation
Get conversation
Get a conversation and its first page of messages: up to 100, oldest first. When `pagination.hasMore` is true the thread is longer, and newer messages are not included.
输入参数conversationId必填
list_conversations
List conversations
Lists the conversations where your account is the hiring side, across MCP keypairs, web-UI threads, and legacy API keys. Supports filtering by status, unread, replies, and subject. Pass onlyThisIdentity=true to restrict results to this MCP keypair's exact agentId (legacy behavior).
输入参数limitcursorstatussubjecthasRepliescredentialsunreadByAgentonlyThisIdentity
get_reviews
Get human reviews
Get reviews for a specific human. Use this to check a human's reputation before hiring. Supports cursor-based pagination.
输入参数limitcursorhumanId必填
create_bounty
Create bounty
Create a one-shot task bounty that humans apply to. On create/edit, listing refusals return error_code, field and fix. Codes: description_time_policy_violation (also quoted, policyMinimum, earliestAllowed), bounty_content_refused, brand_impersonation, bounty_content_flagged. Follow fix, change field and retry; never retry unchanged wording. Preview with dryRun and show preview.fundingTotal before posting; with bonuses, preview.perSeat splits each seat into baseCents, bonusesCents, feeCents and totalCents. A live pending_deposit response gives deposit_url and the exact checkout_total after wallet balance. The escrow pool (spots × fixed price, or spots × hourly price × estimated hours) cannot exceed $10,000; configured local hourly minimums also apply. idempotencyKey makes retries safe. Workers confirm within 2 hours unless skipAcceptanceConfirmation is true, then have startWindowMinutes to start when you set it; ordinary bounties have no completion countdown. For appearance work, add one required live_video applicationDetails field asking why the applicant fits. Never request passwords, OTPs, keys, seed phrases, IDs, bank/card details, exact home addresses, birth dates, or other sensitive data. AI screening is off by default; autoAccept accepts matches, rejects clear mismatches, and leaves uncertain applications pending. aiManaged fully manages recruiting, acceptance, delivery review, payment, refunds, and final reporting; its deadline stops recruiting instead of extending an understaffed run. Requires RENTAHUMAN_API_KEY. A preview never creates a bounty, reserves funds, or starts checkout. serverValidation=passed means the API checked live-create rules; serverValidation=unavailable means the preview is local and unverified. Create live only after the user approves. Help define completionCriteria and evidenceTypes. Before posting, read rentahuman://bounty-monitoring and choose verified webhooks or persistent polling through settlement.
输入参数asOrgkarenprice必填title必填dryRunbonusessignagecategorycheckInscurrencydeadlinelocation另有 51 个
list_bounties
List bounties
List bounties. Filter by status, category, skill, or price range. Set mine=true to list the bounties you own in every status (including unfunded, paused, and web UI posts). Without mine or status, lists bounties currently accepting applications, including partially filled and staffed ones.
输入参数minelimitskillstatuscategorymaxPriceminPriceincludePartiallyFilled
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.
输入参数bountyId必填
Fund an existing pending_deposit bounty. Always call with dryRun=true first: the preview returns the amount, service fee, total, current wallet balance, whether the wallet covers the total (walletCoversTotal), and any shortfall without charging anything. Show it to the account owner, and only after their explicit approval call again with confirm=true. A confirmed call may reserve available wallet funds immediately. If the wallet cannot cover the total, the response returns status requires_payment with deposit_url and checkout_total for the account owner to complete in hosted checkout. It may also return mppPayment, a single-use MPP card payment that credits the wallet and funds this bounty in one step; pay the checkout or mppPayment, never both. Reusing the tool returns an existing open checkout instead of charging twice. Unknown arguments are rejected. A bounty that is no longer pending_deposit returns 400. If the response includes setupUrl, the account owner must add their country there, then retry. Owner only.
输入参数dryRunconfirmbountyId必填
update_bounty
Update bounty
Update one of your ordinary one-shot bounties; only passed fields change. On create/edit, listing refusals return error_code, field and fix. Codes: description_time_policy_violation (also quoted, policyMinimum, earliestAllowed), bounty_content_refused, brand_impersonation, bounty_content_flagged. Follow fix, change field and retry; never retry unchanged wording. You can edit the listing text, price, application deadline, location and supportedCountries, screening settings, lifecycleMessages, seats, per-seat clocks, schedule, AI screening (autoAccept), and AI review of submissions (aiGrading). Status 'paused' stops applications and outreach, 'open' resumes, and 'closed' by itself closes an unassigned bounty and returns unused funding; 'completed' and 'paid' are system-managed. Use cancel_bounty to cancel. An edit cannot grow an escrow-funded pool above $10,000. On a wallet-funded bounty, a price raise or added seats first returns wallet_impact_confirmation_required with a cost preview and nothing charged: show the operator the cost, wallet balance before and after, and hiredSeatsRepriced, and only after they approve repeat the call with walletImpactAcknowledged: true and walletImpactCents from the preview. A raise after hiring reprices every hired worker. bonuses can change only before anyone is hired. With aiGrading on, RentAHuman review may approve a submission and pay the worker for you; you can still decide first with review_submission. Clock changes (startWindowMinutes, responseWindowHours, autoExpireGhosts) apply only to seats confirmed after the edit; moving scheduledStartAt later pushes back confirmed workers' start deadlines and never brings one forward. The 2-hour seat-confirmation window is fixed. requiredLinks, completionQuestions, and adding or switching liveCaptureRequirement are refused once applications exist; removing live capture is always allowed. AI-managed bounties allow only task-content and deadline edits; QA and taste runs and ongoing-bounty s
输入参数pricetitlestatusbonusesbountyId必填categorycheckInsdeadlinelocationscheduleaiGradingpriceType另有 44 个
cancel_bounty
Cancel bounty
Cancel one of your bounties by ID: pending and hired applications are closed and unreleased funding is refunded (wallet funds go back to your wallet). The response reports rejectedApplications and cancelledEscrows. A canonical reason is required; details are required only for other. The reason and optional details are private and are never shown to workers. Completed, paid or closed bounties cannot be cancelled. If work was delivered or payment released, or a dispute or review is open, it returns 409 with an error_code and a message saying what to do (for delivered work, use open_dispute). Safe to retry; a repeat returns alreadyCancelled: true.
输入参数reason必填detailsbountyId必填
get_bounty_applications
List bounty applications
View applications to one of your bounties; while `hasMore` is true, pass the response's `nextCursor` as `cursor`. Best matches first: accepted first, rejected last, newest breaks ties. `completedTasksCount` and `totalEarnedCents` (USD cents released to them) are their RentAHuman track record; 0 means new. Each application includes the cover letter, availability, `isBlockedByOwner` and `isPreferredByOwner` (change them with `block_human` or `prefer_human` and the `humanId`; blocking is future-only and never removes an accepted worker), and `reviewSummary` (`averageRating` 1-5 or null, `reviewCount`, up to 3 `recentReviews`). Null averageRating and reviewCount 0 mean no history, not a low score; weigh reviewSummary with `identitySignals` before accept_application. With a `languageProficiencyRequirement`, applications include `languageProficiency` with `status` passed, pending (still being scored), or failed, plus the scored `cefr` once scored. Hired seats (accepted, or expired with an escrow trace) include `jobOverview`, null for other applicants. Its `overallState` lets escrow state win over stale submission or chat state: released > resolved > refunded > disputed or rejected_disputed > seat_released > cancelled > the evidence state (awaiting_confirmation, awaiting_start, in_progress, evidence_in_review, changes_requested, redo_overdue, revision_in_progress, approved_awaiting_release, completed; revision_in_progress means worker-started redo with funds held). `nextAction.kind` is the single next step: review_evidence, release_payment, pay_now, fund_seat, reject_or_wait, and view_dispute are yours (`actorIsOwner: true`); wait_for_confirmation, wait_for_start, wait_for_evidence, and wait_for_redo mean the worker moves next; none means settled; `nextDeadline`, `missingEvidence`, and `money` give the details. `isTeamReview: true` marks team review after the 4-day poster window (`teamReviewReopenUsed: true` after your one reopen); overallState and nextAction are unchanged
输入参数limitcursorstatusbountyId必填
get_bounty_dataset
Get bounty upload dataset
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.
输入参数bountyId必填
get_applicant_context
Get applicant decision context
Get everything needed to decide on one application to your bounty, in one call: the listing (title, description, requirements, completion criteria, skills, pay with bonus terms in US cents, location rules, screening settings, and seats filled/open), the applicant's profile (display name, bio, skills, expertise, declared city and country, verified badge, rating, review count, completed jobs), the application (cover letter, availability, screening answers with uploaded files as owner-only download paths, submitted links, mic check, language result), and the outcome so far (`status`; `needsManualReview` when AI screening left the decision to you, with its note in `reason`; for a rejection, `reason` is the message the applicant received). To open a file, GET `https://rentahuman.ai{downloadPath}` with your API key; it redirects to a short-lived download link. Decide with accept_application or reject_application. Owner only.
输入参数bountyId必填applicationId必填
accept_application
Accept application
Accept a human's application for your bounty. For an escrow-funded seat, accepting takes the seat's payment from the bounty's funding and holds it in escrow until you release it; the worker is not paid yet. If the response's next_steps say payment comes after the work is completed, follow that instruction instead. For multi-person bounties, accept each applicant separately. If the seat needs funding and none covers it, this returns 402 and nothing is charged: for `escrow_not_funded`, fund this application with create_escrow_checkout and retry; `pool_drained` means the bounty's funding has no seat left; `spots_full` means every spot is filled and the bounty can still take one more hire: raise `spotsAvailable` by one with update_bounty, confirm the wallet charge it returns, then retry. An application whose seat expired because the worker did not confirm in time can be accepted again. 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`.
输入参数bountyId必填responseapplicationId必填idempotencyKey
reject_application
Reject application
Reject a pending application to your bounty. The optional `response` is sent to the applicant as the reason.
输入参数bountyId必填responseapplicationId必填
expire_application
Release ghosted seat
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.
输入参数reasonbountyId必填applicationId必填
get_bounty_outreach_status
Get bounty outreach status
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.
输入参数bountyId必填
boost_bounty_outreach
Boost bounty outreach
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.
输入参数bountyId必填
pay_enterprise_bounty
Pay enterprise bounty
Pay an accepted worker on a legacy enterprise bounty (older bounties that were not escrow-funded) 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.
输入参数bountyId必填conversationIdacknowledgeRelease
book_sign_campaign
Book a sign campaign
Book people to hold your sign on San Francisco (or New York) street corners through the RentAHuman Signs API. Use this instead of create_bounty for any sign-holding, sign-spinning or human-billboard job: you give the design, we print it and handle pickup, and you get approved sign holders, a shift briefing and check-ins. Requires RENTAHUMAN_API_KEY. Always call with dryRun omitted or true first: it validates and prices the campaign and checks capacity without booking or charging, and returns earliestStart (shift dates must be at least the minimum lead time ahead). Show the user the price and dates. Then call again with dryRun: false, confirm: true, an operationId and the artwork (url or base64; PNG, JPEG or PDF): it uploads the design, books the campaign and pays from the wallet first; if the wallet is short it returns a hosted checkout URL for a human to pay. Card details are never taken. Reuse the operationId to retry. Track the campaign at statusPath (GET).
输入参数citydates必填spots必填dryRunartworkconfirmendHour必填startHour必填signReturnoperationIdlaborCentsPerHourspecialInstructions
get_cake_quote
Get cake quote
Check Daymaker cake delivery coverage and get per-size pricing before ordering. Prices are the Daymaker base price plus the 18% RentAHuman service 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.
输入参数zipcitystateaddressaddress2quantitywebsite_url
Send a custom cake through Daymaker. Prices are the Daymaker base price plus the 18% RentAHuman service 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.
输入参数design必填metadatacake_size必填recipient必填cake_shapecard_messageidempotency_key必填
get_cake_status
Get cake order status
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.
输入参数order_id必填
create_negotiation
Negotiation (retired)
Retired for new orders: it now returns karen_orders_are_bounties and creates nothing. To hire a human negotiator (RentAKaren), call create_bounty with karen: true, priceType "hourly" (at least $5/h, $10/h with an English languageProficiencyRequirement), a deadline at least 4 days out, a general public title and description that calls the worker "the caller", and every personal detail (names, numbers, the full story) in startInstructions. Only approved callers can apply, and they record every call. The other negotiation tools still manage negotiations created before this change.
输入参数title必填context必填category必填capMinutes必填objectives必填counterparty必填documentUrlsauthorization必填hourlyRateCents
get_negotiation
Get negotiation
Get one of your negotiations: status, brief, authorization, objectives with submitted evidence, logged and approved minutes, escrow breakdown, assigned negotiator, recorded calls (date, duration, outcome, negotiator notes, a 2–3 line summary and the full transcript; transcriptStatus is transcribing until it is ready), and settlement once settled. Calls are only recorded when authorization.recordingAllowed is true. Use it to find objective IDs for approve_objective. Requires RENTAHUMAN_API_KEY.
输入参数negotiationId必填
list_negotiations
List negotiations
List the negotiations you have posted with status, rate, cap, logged and approved minutes, escrowed amount, service fee and total wallet charge, and objective progress. Requires RENTAHUMAN_API_KEY.
无需输入参数。
approve_hours
Approve negotiator hours
Approve every time entry your negotiator has logged so far. Approved minutes are paid at settlement at the hourly rate, never beyond the cap; unapproved minutes are not paid. Idempotent. Requires RENTAHUMAN_API_KEY.
输入参数negotiationId必填
approve_objective
Review negotiation objective
Approve an objective the negotiator marked as met, so its flat bonus is paid at settlement. Review the evidence from get_negotiation first. Pass rejectReason instead to reject the evidence; the negotiator can resubmit, and a bonus that is never approved is refunded at settlement. Approval is idempotent. Requires RENTAHUMAN_API_KEY.
输入参数objectiveId必填rejectReasonnegotiationId必填
message_negotiator
Message negotiator
Send a message to the negotiator assigned to your negotiation, for example to answer a question or adjust instructions within your authorization. Requires RENTAHUMAN_API_KEY.
输入参数content必填negotiationId必填
settle_negotiation
Settle negotiation
Finish a negotiation: approved hours and approved objective bonuses are released to the negotiator from escrow, and everything unused is refunded to your wallet. Approve hours and objectives first; anything unapproved at settlement is not paid. Irreversible, but safe to retry. Requires RENTAHUMAN_API_KEY.
输入参数negotiationId必填
fund_negotiation
Fund negotiation
Retry funding a pending_funding negotiation's escrow from your wallet after a top-up. Returns the shortfall when the wallet still cannot cover it. If the wallet is short, top it up (get_wallet_balance and deposit_wallet where those tools exist; otherwise the person adds funds at https://rentahuman.ai/account/wallet), then call fund_negotiation. Idempotent once funded. Requires RENTAHUMAN_API_KEY.
输入参数negotiationId必填
cancel_negotiation
Cancel negotiation
Cancel before a negotiator is hired; the whole escrow returns to the wallet. Fails once someone is hired. Requires RENTAHUMAN_API_KEY.
输入参数negotiationId必填
create_humanization
Hire a humanizer
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. The sample is reviewed automatically, and some samples go to 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 its Pangram analysis, 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.
输入参数format必填subjectcurrencyaiManagedpriceCents必填sourceText必填instructionsrequireResumeidempotencyKey必填transformation必填turnaroundMinutes必填applicantScreening
get_humanization
Get humanization
Get an owned humanization bounty, including funding and assignment state, deadline attempts, submitted document and screen recording, applicant screening and delivery review status, and Pangram results.
输入参数humanizationId必填
get_bounty_submissions
List evidence submissions
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. Each includes bonusClaims and any review.bonusDecisions. Filter by review status (pending_review, approved, rejected, redo_requested). Owner only.
输入参数statusbountyId必填
get_submission
Inspect evidence submission
Get a single evidence submission for one of your bounties, including its uploaded files, bonusClaims (bonusId, claimedUnits, note), 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. Owner only.
输入参数bountyId必填submissionId必填
get_submission_context
Get submission decision context
Get everything needed to decide on one evidence submission for one of your bounties, in one call: the listing (title, description, requirements, start instructions, and whether it was edited after the worker was accepted), the evidence types and completion questions agreed at acceptance, the submission's files typed photo/video/document, notes, links, completion answers, review cycle and advisory checks, the seat's bonus terms (unitAmountCents in US cents) and claims (claimedUnits as item counts), earlier redo reasons, and the last messages of this worker's job chat labelled worker/owner/platform. Inspect every file before deciding with review_submission. Owner only.
输入参数bountyId必填submissionId必填
review_submission
Record evidence decision
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 submitted evidence); other states return HTTP 409 job_state_conflict. Successful responses include `jobState` (state, allowed next actions, `attempt` {used, max}, `redoDueAt`, `isRedoOverdue`), and so do 409 refusals about the evidence state when it can be read; other 409s do not. After 3 redo cycles, HTTP 409 redo_limit_reached allows 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. Before the deadline, reject from changes_requested or revision_in_progress returns HTTP 409 redo_deadline_pending; once overdue (`isRedoOverdue: true`), reject is 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 final and files no dispute: the worker has 48 hours to appeal (rejection.disputeDeadline). Payment and seat stay held, then are refunded and released if no appeal. On HTTP 409 dispute_unavailable, retry reject or use request_redo. Automated `recommendation` and findings are advisory, never the verdict. Approving with bonusDecisions settles the bonus amounts immediately, and they can't be changed afterwards. Pay with release_payment (acknowledgeRelease: true).
输入参数action必填bountyId必填responseredoDueAtsubmissionId必填expectedStatebonusDecisionsredoWindowMinutes
list_submission_photos
List submission photos
List photos in one photo-capture submission. Each photo includes its id, review status, capturedAt, source (live_camera or upload), a view URL, and location lat/lng/accuracyM reported by the device and not verified. locationVerdict says inside or outside the bounty area; unknown means no location, and no_area means the bounty has no area. distanceMeters gives the measured distance when available. The response includes review counts and a page with nextCursor. Filters: all returns every photo; to_review returns pending photos; accepted or rejected selects that review state; outside_area selects photos outside the area; no_location selects photos without location data. Owner only.
输入参数limitcursorfilterbountyId必填submissionId必填
review_submission_photos
Review submission photos
Accept or reject individual photos in a photo-capture submission. Reviewing is only possible while the submission is pending_review. Provide at least one photo ID in accept or reject; IDs not in this submission are ignored. Accepted photos are what get_accepted_photos_archive downloads. Photo review does not pay the worker: approve the overall submission with review_submission, then pay with release_payment. Owner only.
输入参数acceptrejectbountyId必填submissionId必填
get_accepted_photos_archive
Get accepted photos archive
Get short-lived download URLs for the accepted photos in one submission. Links are valid for 15 minutes and need no authorization headers; fetch each with a plain HTTP GET. The response has one URL per zip part of up to 100 accepted photos. Every zip contains manifest.csv with filename, photoId, capturedAt, source, lat, lng, accuracyM, locationSource, verdict, and distanceMeters, plus files named photo-0001.jpg and onward. Call again for fresh links. Owner only.
输入参数bountyId必填submissionId必填
get_bounty_attendance
Get hired workers’ attendance
Attendance for each hired worker on one of your in-person bounties: on-site state (on_site, off_site, stale, offline, poor_accuracy, permission_revoked, limited_tracking, awaiting_location), distance to the site, accuracy, the phone's last fix time and the server's last report time, state history, whether tracking ended and why, and `sharing` ('precise' when you may open the map with get_attendance_track, else 'state_only'). The app targets one fix a minute while the worker works; stale or offline means missed minutes, not a location. GPS shows where the worker's phone reported, not who carried it or whether the task was done. Owner only.
输入参数bountyId必填
get_attendance_track
Get a hired worker’s location map
Map data for one hired worker on a bounty that required precise location sharing, after the worker accepted it in the app: the job site and radius, the latest phone fix (lat/lng, accuracy in meters, capture time from the phone and receipt time from the server), the fixes recorded during the job newest first (up to 1000; `pointsTruncated` when more exist), and `gaps` where no fix arrived (never filled in). Sharing stops when the job ends (delivery, withdrawal, removal, cancellation or dispute), and nothing captured after that is shown; `session.preciseSharingEndedAt` is set when the worker stopped map sharing. Recorded fixes remain for review until deleted after 30 days. Use the location only to check attendance for this job. Returns 409 not_shared for workers who share on-site state only. Owner only.
输入参数sessionId必填
create_escrow_checkout
Fund escrow
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. Provide bountyId + applicationId. 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 service fee) before they pay. Once paid, the webhook transitions the escrow to 'funded'. Requires RENTAHUMAN_API_KEY to be set.
输入参数bountyIdapplicationIdidempotencyKey
Get details of a specific escrow by ID. Returns status, amounts, fees, parties, and status history (auditLog). Requires RENTAHUMAN_API_KEY to be set.
输入参数escrowId必填
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.
输入参数statushumanIdbountyIdapplicationId
get_earnings_balance
Get earnings balance
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.
无需输入参数。
withdraw_earnings
Withdraw earnings
Withdraw all pending earnings to the authenticated account's linked payout account. This processes released escrow payouts, completed direct-transfer payouts, and wallet balance together. Requires completed payout account setup and RENTAHUMAN_API_KEY.
无需输入参数。
confirm_delivery
Confirm delivery
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.
输入参数escrowId必填
release_payment
Release payment
Pay the worker for a job: release escrow funds to them and complete the task. This is an irreversible financial action: call it only when the user has explicitly decided to pay. If the API needs more before it can pay (for example an acknowledgement, a funded escrow, or a review step), it returns an error explaining what is missing. A successful explicit release approves the canonical pending submission; use review_submission first only for a redo or rejection. 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 evidence approval needs retry after payment commits, HTTP 503 evidence_approval_pending returns paymentReleased: true; retrying cannot pay twice, and the retry answers HTTP 409 "Funds have already been released", which means approval finished. For managed chat work, status approving_payment with released false means approval is saved but payment is still queued; poll get_escrow before reporting that the worker was paid. If the job has no funded escrow yet, pass bountyId + applicationId: the tool funds the escrow from your wallet balance automatically and then releases. If that application is still pending, the funding step also accepts the applicant, so use this only for a worker the user has hired and decided to pay. When the wallet cannot cover it, it returns status deposit_required: have the operator pay checkoutUrl when one is returned, otherwise add funds with deposit_wallet, then call release_payment again. A seat with bonuses pays only after the worker submits work, with bonusDecisions for every claimed bonus; until then HTTP 409 bonus_seat_work_not_submitted or bonus_decisions_required comes before any release quote. Optionally pass `applicationId` alongside escrowId to assert the intended application; a mismatch is refused to prevent paying the wrong worker. Requires RENT
输入参数bountyIdescrowIdapplicationIdbonusDecisionsidempotencyKeyacknowledgeRelease
cancel_escrow
Cancel escrow
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.
输入参数escrowId必填
Hire a specific human. Funding defaults to your wallet: it reserves existing wallet funds including fees, without checkout or auto-top-up. A short wallet returns insufficient_wallet_funds and required/available/shortfall cents; add funds and retry the same request. Pass a stable idempotencyKey to retry safely; without one, the hire is keyed by its terms, so an identical request returns the same hire. Wallet retries return the same hire, including after cancellation; changed inputs or a repeat hire on the same terms need a new key. Pass fundingMethod: checkout for a hosted checkout instead: it returns checkoutUrl for the account owner to pay, and the hire is funded and the human assigned only after payment. Each checkout call starts a new hire and checkout link. If checkout returns status insufficient_funds, add wallet funds and retry without fundingMethod and with a new idempotencyKey; profile_country_required means set your country at setupUrl first. Funding holds escrow and does not pay the worker. After work, use confirm_delivery and release_payment. Requires RENTAHUMAN_API_KEY.
输入参数price必填humanId必填taskTitle必填fundingMethodestimatedHoursidempotencyKeytaskDescription必填
get_my_rentals
List my rentals
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.
输入参数status
create_personal_bounty
Create personal bounty
Commission a specific human after agreeing on terms, deadline and completion criteria. Funding defaults to your wallet: it reserves existing wallet funds including fees; insufficient_wallet_funds returns required/available/shortfall cents without checkout or auto-top-up. Pass a stable idempotencyKey and retry the same key for the same hire; without one, an identical request returns the same hire. Changed inputs or a repeat hire on the same terms need a new key. Pass fundingMethod: checkout for a hosted checkout. Funding does not complete work or pay the worker. Requires RENTAHUMAN_API_KEY.
输入参数price必填title必填humanId必填categorydeadline必填description必填fundingMethodconversationIdestimatedHoursidempotencyKeycompletionCriteria必填
Open a dispute on an escrow you funded. Only the buyer who funded the escrow may dispute it; a call on an escrow where you are the assigned human is refused with HTTP 403. 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. The escrow is held until the dispute is resolved. Requires RENTAHUMAN_API_KEY to be set.
输入参数urlscategory必填escrowId必填description必填
browse_services
Browse services
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.
输入参数pagesortlimitsearchcategory
get_service_availability
Get service availability
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.
输入参数date必填humanId必填
New service bookings are temporarily paused. Calls return 403 with code service_bookings_unavailable before funds or booking state change; use create_bounty to request the work instead. Requires RENTAHUMAN_API_KEY to be set.
输入参数date必填humanId必填serviceId必填startTime必填
list_my_service_bookings
List my service bookings
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.
输入参数status
check_account_status
Check account status
Check whether RENTAHUMAN_API_KEY is configured and which account-scoped actions are available.
无需输入参数。
list_api_keys
List API keys
List every API key on your account, newest first, including revoked ones (isActive false, revokedAt set). Each item has id (pass it to revoke_api_key), keyPrefix, name, isActive, createdAt, lastUsedAt, revokedAt, isSlackProvision, and nullable slackWorkspaceName, slackWorkspaceDomain, slackUserRealName, and slackUserHandle. Never returns the raw key value. Requires RENTAHUMAN_API_KEY to be set.
无需输入参数。
create_api_key
Create API key
Create a new API key for your account. The raw key is returned once in the `key` field — store it securely, it cannot be retrieved later. Get the new key's id from list_api_keys. This session keeps using the current key until you change RENTAHUMAN_API_KEY or rerun `rentahuman-mcp setup`. Maximum 25 active keys per account; revoke one first if you hit the limit. Requires RENTAHUMAN_API_KEY to be set.
输入参数name必填
revoke_api_key
Revoke API key
Revoke an API key by its ID, permanently deactivating it. WARNING: If you revoke the key this server is using, it loses API access until you set a different valid key (RENTAHUMAN_API_KEY or `rentahuman-mcp setup`). Use list_api_keys first to see key IDs. Requires RENTAHUMAN_API_KEY to be set.
输入参数keyId必填
Tip or reimburse a worker after their work on a bounty you own is released. Pass that `bountyId`, or the API refuses with bounty_required, bounty_not_owned, or work_not_released. Tips and reimbursements on a bounty are limited per worker; if a payment would go over the limit, the API refuses with tip_cap_exceeded. The API uses wallet balance first and otherwise returns a hosted checkout URL (no checkout when idempotencyKey is set); tell the operator checkoutTotal (what checkout will charge, including the service fee) before they pay. Other refusals carry an error message; show it to the operator. 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.
输入参数amount必填bountyIdoverridedescriptionrecipientIdconversationIdidempotencyKeyrecipientEmail
list_transfers
List transfers
List your sent and/or received money transfers. Shows transfer history with amounts, statuses, and recipient/sender info. Requires RENTAHUMAN_API_KEY.
输入参数limitcursorstatusdirection
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.
输入参数transferId必填
get_wallet_balance
Get wallet balance
Check your wallet balance and lifetime deposited and sent totals. balance, totalDeposited and totalSent are US dollars; balanceCents is the balance in US cents (REST GET /api/wallet/balance returns balance in cents). Wallet funds pay for bounties, hires, tips and reimbursements without a new checkout each time. If it returns profile_country_required, have the account owner add their country at setupUrl, then retry. Requires RENTAHUMAN_API_KEY.
无需输入参数。
deposit_wallet
Deposit to wallet
Deposit money into your wallet via a single hosted checkout. Wallet balance can fund bounties and post-release tips or reimbursements without a per-recipient checkout. Share the returned checkoutUrl with the account owner to complete payment. It may also return mppPayment, a separate single-use MPP card payment for the same amount; pay one or the other, never both. If it returns profile_country_required, have the account owner add their country at setupUrl, then retry; checkout_unavailable means no payment started, so retry. Requires RENTAHUMAN_API_KEY.
输入参数amount必填
list_wallet_transactions
List wallet transactions
List your wallet ledger: deposits, sent payments, received payments, historical bulk sends, withdrawals, and balance changes. Use this to audit wallet activity and paginate with nextCursor. Requires RENTAHUMAN_API_KEY.
输入参数limitcursor
withdraw_wallet
Withdraw wallet balance
Withdraw wallet balance to the authenticated user's payout account. Omit amountCents to withdraw the full available wallet balance; provide amountCents for a partial withdrawal. Requires completed payout setup and RENTAHUMAN_API_KEY. Some accounts can only withdraw from Balance on the website; if the response says so, show its error message to the user.
输入参数amountCents
get_wallet_report
Get wallet report
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.
输入参数endstart
get_wallet_controls
Get wallet controls
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.
无需输入参数。
set_wallet_controls
Set wallet controls
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.
输入参数autoTopupEnabledautoTopupFloorCentsautoTopupTargetCentsautoTopupMaxPerDayCentslowBalanceThresholdCentsspendingCapPerBountyCentsspendingCapRolling24hCents
list_refundable_wallet_funding
List deposit refunds
List refunds of your wallet deposits and their status. Requires RENTAHUMAN_API_KEY.
无需输入参数。
x402_fund_wallet
Fund wallet with crypto (x402)
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. This tool handles the x402 payment flow. Do not send USDC directly to the payTo address: direct transfers do not automatically credit your wallet. Early access: a 404 means your account is not enrolled — email [email protected].
输入参数amountCents必填
x402_signup
Sign up by paying (x402)
Create a brand-new RentAHuman agent account by paying the signup price ($10) in USDC on Base via x402 — no browser, email verification, or existing API key needed. Requires RENTAHUMAN_X402_PRIVATE_KEY, country and acceptTerms: true, which accepts the Terms of Service (https://rentahuman.ai/terms) and Privacy Policy (https://rentahuman.ai/privacy); city is optional. This tool handles the x402 payment flow. Do not send USDC directly to the payTo address: direct transfers do not create an account or automatically credit a wallet. The response contains your API key (shown exactly once) and the full payment as spendable wallet balance. Store the key immediately: set RENTAHUMAN_API_KEY in your MCP config and restart the server, or run `npx rentahuman-mcp setup` and paste it. Tools that need an API key stay unavailable in this session until you do.
输入参数cityregioncountry必填agentNameacceptTerms必填contactEmailmaxAmountCents
create_agent_checkout
Create customer checkout
Create a hosted 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.
输入参数amount必填currencymetadatacancelUrlsuccessUrldescription必填customerPhoneexternalOrderId必填
get_agent_checkout
Get customer checkout
Get a customer checkout by ID. Use to verify whether a customer payment is pending, paid, expired, cancelled, or refunded. Requires RENTAHUMAN_API_KEY.
输入参数checkoutId必填
list_agent_checkouts
List customer checkouts
List customer checkouts for a local externalOrderId. Use this to avoid duplicate payment links for the same order. Requires RENTAHUMAN_API_KEY.
输入参数externalOrderId必填
refund_agent_checkout
Refund customer checkout
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.
输入参数checkoutId必填
request_account_link
Send account link email
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).
输入参数email必填slack_user_id必填slack_workspace_id必填
create_webhook_endpoint
Create webhook endpoint
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.
输入参数url必填events必填description
list_webhook_endpoints
List webhook endpoints
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.
无需输入参数。
delete_webhook_endpoint
Delete webhook endpoint
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.
输入参数endpointId必填
test_webhook_endpoint
Send test webhook
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. Requires RENTAHUMAN_API_KEY to be set.
输入参数endpointId必填
get_webhook_deliveries
List webhook deliveries
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.
输入参数limitstatuseventTypeendpointId
get_webhook_delivery
Get webhook delivery
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.
输入参数deliveryId必填
report_support_issue
Report support issue
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.
输入参数summary必填categorypriorityerrorCodesourceTooldescription必填