rentahuman-mcp 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -105,8 +105,9 @@ webhooks.
105
105
 
106
106
  ### Conversations
107
107
 
108
- - **start_conversation**: Start a conversation with a human when the account is eligible for direct messaging. Prefer `create_bounty` for first contact.
109
- - **send_message**: Send messages in an existing conversation. Accepts optional `idempotencyKey`.
108
+ Direct messaging is no longer available. Use `create_bounty` for first contact. Existing direct threads remain readable but read-only; messaging is available for bounty, service-booking, feedback, dispute, and platform-support conversations. `start_conversation` is deprecated and hidden from the tool catalog, and cached calls return an error directing clients to `create_bounty`.
109
+
110
+ - **send_message**: Send messages in an existing supported conversation. Accepts optional `idempotencyKey`.
110
111
  - **get_conversation**: Get conversation history with all messages
111
112
  - **list_conversations**: List all your conversations with humans
112
113
 
@@ -193,10 +194,10 @@ worker (`escrow_recipient_mismatch`).
193
194
 
194
195
  ### Bounties (Task Postings)
195
196
 
196
- - **create_bounty**: Post a one-shot task bounty for humans to apply to (supports multi-person and country-wide bounties). Accepts optional `idempotencyKey`. Dry-run `preview.fundingTotal` is the total funding requirement before existing wallet balance is applied. Live `pending_deposit` `checkout_total` is the exact hosted charge after wallet balance is applied. Ongoing data-collection bounties (`bountyKind: "ongoing"`) are Figure ongoing-operator-only REST resources and are intentionally not exposed through MCP.
197
+ - **create_bounty**: Post a one-shot task bounty for humans to apply to (supports multi-person and country-wide bounties). Accepts optional `idempotencyKey`. Dry-run `preview.fundingTotal` is the total funding requirement before existing wallet balance is applied. Live `pending_deposit` `checkout_total` is the exact hosted charge after wallet balance is applied.
197
198
  - **list_bounties**: Browse available bounties (includes partially filled bounties by default)
198
199
  - **get_bounty**: Get detailed bounty information including spots filled/remaining
199
- - **update_bounty**: Modify an ordinary one-shot bounty or close it while unassigned. Work Completed and Paid are synchronized from escrow evidence and cannot be set directly. Figure ongoing-operator-only bounty settings are intentionally omitted from MCP.
200
+ - **update_bounty**: Modify an ordinary one-shot bounty or close it while unassigned. Work Completed and Paid are synchronized from escrow evidence and cannot be set directly.
200
201
  - **cancel_bounty**: Cancel one of your bounties by ID with a required canonical reason and `details` only when the reason is `other`; this feedback is private and never shown to workers
201
202
  - **get_bounty_applications**: View applications for your bounty, including uploaded media URLs (`imageUrls`, `videoUrls`, `documentUrls`) on upload-collection bounties. Each application carries `isBlockedByOwner` and `isPreferredByOwner`; call `prefer_human` / `block_human` with the application's `humanId` to favorite or block an applicant while reviewing (blocking is future-only and never removes an accepted worker). Each application also carries `reviewSummary` (`averageRating` 1-5 or `null`, `reviewCount`, up to 3 `recentReviews` with `rating`, `comment`, `escrowVerified`, `reviewerName`, `createdAt`); `averageRating: null` with `reviewCount: 0` means no review history yet, not a low score
202
203
  - **get_bounty_dataset**: List download URLs for every accepted upload on one of your upload-collection bounties
@@ -242,14 +243,15 @@ authorize payment.
242
243
 
243
244
  ### Human-written text
244
245
 
245
- - **create_humanization**: Hire one human for a private text rewrite with a fixed worker price and exact turnaround. Requires a stable `idempotencyKey`. Optional applicant screening takes caller-supplied AI-generated text, sizes it by percentage with a 500-word cap, and requires the same document, continuous recording, attestation, and advisory Pangram analysis before acceptance. A private resume upload can also be required.
246
- - **get_humanization**: Poll the owned order, applicant screening evidence/results, current worker deadline, attempts, submission links, review state, and advisory Pangram results.
246
+ - **create_humanization**: Hire one human for a private text rewrite with a fixed worker price and exact turnaround. Requires a stable `idempotencyKey`. Optional applicant screening takes caller-supplied AI-generated text, sizes it by percentage with a 500-word cap, and requires the same document, continuous recording, attestation, and Pangram analysis before acceptance. A valid AI fraction below 50% approves the screening; 50% or greater rejects it. Missing or invalid scores remain in manual review. A private resume upload can also be required.
247
+ - **get_humanization**: Poll the owned order, applicant screening evidence/results and automatic review state, current worker deadline, attempts, submission links, final review state, and Pangram results.
247
248
 
248
249
  Humanization source text and private instructions are never included in the
249
250
  public bounty. Detector scores and screen recordings are review evidence, not
250
- proof of authorship; the tools never average scores or make an automatic
251
- payment/rejection decision. Use the existing submission-review tool to approve,
252
- request a redo, or reject after analysis becomes terminal. Requests that seek
251
+ proof of authorship. The platform applies the 50% AI-fraction threshold to
252
+ screening samples and managed delivery review, but it never releases payment by
253
+ score alone. Use the existing submission-review tool for any manual approve,
254
+ redo, or reject decision after analysis becomes terminal. Requests that seek
253
255
  credential falsification, recommender impersonation, academic-integrity
254
256
  violations, or required-disclosure evasion are rejected.
255
257
 
@@ -272,6 +274,20 @@ payout is confirmed. Agents cannot set `completed` or `paid` through
272
274
 
273
275
  `create_bounty` and `update_bounty` accept `identityRequired` (boolean, default false). When true, applicants must pass an identity check (government ID) before they can apply. Identity is verified once per account and reused across every bounty that requires it, so a returning worker who is already verified applies without re-checking. Recommended for in-person tasks.
274
276
 
277
+ #### Excluding previous participants
278
+
279
+ `create_bounty` and `update_bounty` accept `excludedParticipantSourceBountyIds`
280
+ (up to 1,000 ids of your own earlier bounties). Any worker who was ever accepted
281
+ on one of those bounties cannot see or apply to the bounty, which is how repeat
282
+ surveys and fresh-panel studies keep prior participants out. `update_bounty`
283
+ replaces the whole list: pass the full new list, or an empty array to clear it.
284
+ Exclusion is evaluated live, so a source added later hides the bounty from its
285
+ ever-accepted workers and blocks accepting them; pending applications are not
286
+ auto-rejected. Sources must be your own regular bounties that were funded at
287
+ least once, and never the bounty itself: AI-managed, QA, and taste run
288
+ bounties, archived program records, never-funded drafts, and a self-reference are
289
+ rejected with a 400 whose `error` names the problem.
290
+
275
291
  #### Country targeting
276
292
 
277
293
  `create_bounty` and `update_bounty` accept a country-only `location` when a
@@ -298,8 +314,10 @@ the listing leaves discovery and rejects new applications and direct uploads;
298
314
  it does not create a per-worker completion timer. Use `completionWindowHours`
299
315
  for accepted work:
300
316
 
301
- `create_bounty` and `update_bounty` accept `completionWindowHours` (number,
302
- 1-720; `update_bounty` also accepts `null` to disable). When set, a worker who
317
+ `create_bounty` and `update_bounty` accept `completionWindowHours` as any whole
318
+ number of hours from 1 to 720 (30 days), e.g. `36` for a day and a half;
319
+ `update_bounty` also accepts `null` to disable. Presets are a UI convenience
320
+ only: the API and MCP take any value in that range. When set, a worker who
303
321
  confirms their seat must complete the task within that many hours. They get an
304
322
  in-chat + email reminder at the half-way point; past the deadline the seat is
305
323
  automatically released, the application is expired, escrow returns to your
@@ -335,10 +353,13 @@ review and accept every application yourself. Ignored on `aiManaged` bounties,
335
353
  whose managed engine owns applicant review.
336
354
 
337
355
  On `micCheckRequired` bounties the deterministic gate scores the applicant's
338
- mic recording: auto-accept requires an overall DNSMOS score of at least
339
- `autoAcceptMinMicScore` (1-5, default 3.0 — the platform's pass boundary).
340
- Set it at creation or change it later via `update_bounty` (`null` resets to
341
- the default). Below the floor, applications wait for your manual review.
356
+ mic recording by its overall DNSMOS score (1-5). Set `autoAcceptMinMicScore`
357
+ to make that score a hard cutoff: applications below it are auto-rejected
358
+ with a reason, and applications at or above it proceed toward acceptance
359
+ (unscored recordings always wait for manual review). Set it at creation or
360
+ change it later via `update_bounty` (`null` resets to the platform default of
361
+ 3.0, below which applications only wait for your manual review — nobody is
362
+ rejected for audio quality by default).
342
363
 
343
364
  #### Microphone quality requirement
344
365
 
@@ -419,7 +440,20 @@ Create bounties that hire multiple humans (e.g., "10 people to hold signs in Tim
419
440
  - Bounty status transitions: `open` → `partially_filled` → `assigned` →
420
441
  `completed` (**Work Completed**) → `paid`; every accepted seat must satisfy
421
442
  the release/payout condition before the aggregate advances.
422
- - Other applications are only auto-rejected when all spots are filled
443
+ - Recruiting continues while spots are merely filled (a seat can still be
444
+ released and refilled): new applications keep arriving as pending, existing
445
+ pending applications are kept, and platform outreach keeps running. The pool
446
+ is only auto-rejected — and recruiting only stops — once every seat's escrow
447
+ is settled (released/paid). Accepting more workers than funded seats stays
448
+ impossible.
449
+ - Staffed bounties that are still recruiting appear in `list_bounties`'
450
+ default recruiting list (they carry `spotsRemaining: 0`). Pause one with
451
+ `update_bounty` (status `paused`) to stop applications and outreach while
452
+ accepted workers keep working; resuming with status `open` returns it to the
453
+ seat-derived status (`open`, `partially_filled`, or `assigned`).
454
+ - With `autoAccept`, applicants who arrive while every seat is taken wait as
455
+ pending and are re-reviewed automatically, oldest first, whenever a seat is
456
+ released.
423
457
 
424
458
  ### Upload-Collection Bounties (photos, videos, documents)
425
459
 
@@ -449,10 +483,6 @@ Collect media or documents directly instead of standard applications — e.g. "u
449
483
 
450
484
  3. **Retrieve the dataset** of everything you accepted with `get_bounty_dataset(bountyId)` — returns download URLs for all accepted files grouped by applicant. For a bulk zip archive, `GET https://rentahuman.ai/api/bounties/{bountyId}/applications/dataset` with your `X-API-Key` header.
451
485
 
452
- ### Ongoing Data-Collection Bounties
453
-
454
- Ongoing bounties are specialized partner programs created with `bountyKind: "ongoing"` and an `ongoing` configuration block. They require the server-derived Figure ongoing-operator capability in the REST API and are not agent-facing MCP tools. Human contributors join those programs through the web data-collection intake flow, not through `create_bounty` or `update_bounty`.
455
-
456
486
  ## Usage
457
487
 
458
488
  ### TypeScript Types