MCP Tools — Work Graph
Projects, jobs, deliverables, and treasury reads/writes.
22 tools in this registry. Every tool is callable over the MCP endpoint (
/api/mcp); the badge on each shows which auth modes may invoke it. See Auth models and the MCP overview.
rivr.jobs.claim
Session
MCP Token
Apply to / claim a job (same as clicking 'Apply' in the UI).
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
jobId | string | yes |
rivr.jobs.complete
Session
MCP Token
Mark a job done and settle its compensation: flips status to 'completed', records a contribution for every assignee, and pays cash (fixed/hourly, from the project wallet when the job belongs to a project) or mints volunteer Thanks vouchers, and settles job-level points via peer allocation. Owner/group-admin only; idempotent (re-run retries pending payouts).
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
jobId | string | yes |
rivr.jobs.create
Session
MCP Token
Create a standalone job resource attached to a project. For projects with many jobs, prefer creating the project with nested jobs[].
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
projectId | string | yes | |
title | string | yes | |
category | string | — | |
deadline | string | — | |
description | string | — | |
hourlyRateCents | number | — | Hourly rate in cents (payKind='hourly'). |
isGlobal | boolean | — | Mark the job globally visible (surfaces in locale/region/global) even under a more-restricted project. Omit to inherit the project's visibility. |
location | string | — | |
maxAssignees | number | — | |
maxHours | number | — | Hour budget — hourly payout is clamped to this many hours. |
payAmountCents | number | — | Fixed cash value in cents (payKind='fixed'). |
payKind | enum(fixed \ | hourly \ | volunteer) |
points | number | — | Job-level points for task-less jobs, split across assignees at completion. |
priority | string | — | |
skills | string[] | — | |
startDate | string | — |
rivr.jobs.get
Session
MCP Token
Fetch a job resource by id.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
jobId | string | yes |
rivr.jobs.list
Session
MCP Token
List jobs. Filter by project, owner (person or group), or status. With no filters, returns jobs visible to the actor (owned by actor, owned by groups the actor belongs to, or public).
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
groupId | string | — | Filter to jobs owned by this group. |
limit | number | — | |
ownerId | string | — | Filter to jobs owned by this agent (person or group). |
projectId | string | — | Filter to jobs attached to this project. |
status | string | — |
rivr.jobs.timer_start
Session
MCP Token
Start a work timer on a job for the actor. Only one running timer per actor per job is allowed; returns the new work-period id.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
jobId | string | yes |
rivr.jobs.timer_stop
Session
MCP Token
Stop the actor's running work timer on a job. Returns the elapsed durationMs. Optionally records which task ids were completed during the session.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
jobId | string | yes | |
completedTaskIds | string[] | — |
rivr.jobs.unclaim
Session
MCP Token
Unclaim a job. Calls applyToJob a second time — the underlying toggle removes the existing application.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
jobId | string | yes |
rivr.projects.close
Session
MCP Token
Close a project by setting its status metadata to 'closed'. Keeps it visible for audit.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
projectId | string | yes | |
reason | string | — |
rivr.projects.create
Session
MCP Token
Create a project owned by a group. Optionally attach nested jobs and tasks (same shape the web create-page uses).
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
category | string | yes | |
description | string | yes | |
groupId | string | yes | Owning group id. |
title | string | yes | |
budget | number | — | |
deadline | string | — | ISO date, optional. |
isGlobal | boolean | — | |
jobs | object[] | — | Optional nested jobs; each job may carry its own tasks[]. See createProjectResource for field shape. |
localeId | string | — | |
scopedGroupIds | string[] | — | |
scopedLocaleIds | string[] | — | |
scopedUserIds | string[] | — | |
timeframe | object | — |
rivr.projects.get
Session
MCP Token
Fetch a single project by id.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
projectId | string | yes |
rivr.projects.list
Session
MCP Token
List projects visible to the actor. With no filters, returns projects owned by the actor, projects owned by groups the actor belongs to, or public projects. Pass ownerId or groupId to scope to a specific owner.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
groupId | string | — | Filter to projects owned by this group. Equivalent to ownerId when the owner is a group; kept as a distinct field for readability. |
limit | number | — | Default 50, max 200. |
ownerId | string | — | Filter to projects owned by this agent (person or group). Use the actor's own agent id to see only projects the actor directly owns. |
status | string | — | Optional metadata.status filter (e.g. 'open', 'closed'). |
rivr.projects.update
Session
MCP Token
Update a project's fields via the generic resource updater.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
projectId | string | yes | |
description | string | — | |
metadataPatch | object | — | |
name | string | — | |
tags | string[] | — |
rivr.tasks.add_note
Session
MCP Token
Append a note to a task. Only the user assigned to the task may add notes.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
note | string | yes | |
taskId | string | yes |
rivr.tasks.claim
Session
MCP Token
Claim a task. Records a 'join' ledger row with interactionType 'task-claim' so the claim can be enforced at completion time.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
taskId | string | yes |
rivr.tasks.complete
Session
MCP Token
Attest a task complete (claim → attest rail). Requires the actor to have an active 'task-claim' ledger row first AND attest authority (task owner, group/ancestor admin, or the project lead/QA). On success, updateTaskStatus attests the task and credits its metadata.points to the worker via the single points writer — no separate earn row is written here.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
taskId | string | yes |
rivr.tasks.create
Session
MCP Token
Create a standalone task resource attached to a job/project.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
jobId | string | yes | |
name | string | yes | |
description | string | — | |
estimatedTime | string | — | |
points | number | — | |
required | boolean | — |
rivr.tasks.get
Session
MCP Token
Fetch a task resource by id.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
taskId | string | yes |
rivr.tasks.list
Session
MCP Token
List tasks. Filter by job, project, owner (person or group), or status. With no filters, returns tasks visible to the actor.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
groupId | string | — | Filter to tasks owned by this group. |
jobId | string | — | Filter to tasks attached to this job. |
limit | number | — | |
ownerId | string | — | Filter to tasks owned by this agent (person or group). |
projectId | string | — | Filter to tasks attached to this project. |
status | string | — |
rivr.tasks.set_claim
Session
MCP Token
Claim or release one exclusive task slot atomically. Task metadata.exclusiveClaims must be true. The authenticated visitor is the claimant; claimed=true is idempotent and refuses a slot someone else holds.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
claimed | boolean | yes | |
taskId | string | yes |
rivr.tasks.update
Session
MCP Token
Update task status (not_started | in_progress | awaiting_approval | completed | rejected).
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
status | enum(not_started \ | in_progress \ | awaiting_approval \ |
taskId | string | yes |
rivr.tasks.update_description
Session
MCP Token
Update a task's description. Only the task's direct owner or a group admin of the owning group may do this.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
description | string | yes | |
taskId | string | yes |