MCP reference¶
Every tool and resource the server registers, with the parameters and descriptions clients receive. How to use them together: MCP tools.
Tools¶
| Tool | Kind |
|---|---|
project_list |
read |
project_upsert |
write |
project_snapshot |
read |
task_list |
read |
task_get |
read |
task_create |
write |
task_update |
write |
task_patch |
write |
task_set_stage |
write |
task_bind_session |
write |
task_unbind_session |
write |
report_add |
write |
decision_add |
write |
decision_list |
read |
memory_add |
write |
memory_update |
write |
memory_search |
read |
memory_get |
read |
doc_list |
read |
doc_get |
read |
doc_update |
write |
doc_history |
read |
block_get |
read |
block_set |
write |
comments_list |
read |
comment_ack |
write |
comment_add |
write |
rules_get |
read |
events_since |
read |
review_get |
read |
review_steps_set |
write |
review_step_update |
write |
plan_get |
read |
plan_set |
write |
plan_step_update |
write |
plan_accept |
write |
attach_file |
write |
attachment_caption |
write |
environments_get |
read |
environment_propose |
write |
policy_get |
read |
policy_propose |
write |
project_list¶
List all projects with task counts per stage. Call it to find a project's slug.
No parameters.
project_upsert¶
Create a project, or rename it / set its repository path. Call it once before creating the first task of a project that is not on the board yet (see project_list).
| Parameter | Type | Required | Description |
|---|---|---|---|
slug |
string | yes | Project slug such as 'acme-shop'. |
name |
string or null | no | Display name. |
repo_path |
string or null | no | Path to the repository. |
description |
string or null | no | One-line description. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
project_snapshot¶
Compact markdown snapshot of a project: open tasks by stage with waiting-on, next step, branch, the start of the description and progress, last report, plus recent decisions. Call it at the start of a session to see the state of the project before you pick or create a task.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
include_done |
boolean | no | Also list done tasks. Default: False. |
task_list¶
List tasks, filtered by project, stage, who they wait on or the bound session. Done tasks are left out unless a stage or include_done is given.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string or null | no | Project slug filter. |
stage |
string or null | no | Stage filter. |
waiting_on |
string or null | no | Exact 'waiting on' value. |
session |
string or null | no | Bound session: desktop session id or name. |
include_done |
boolean | no | Include done tasks. Default: False. |
task_get¶
Full task: fields, description, progress, current version, the latest reports and decisions, and the names of the editable fields (for task_patch). Call it before task_update to get the version for expected_version.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
reports |
integer | no | How many reports. Default: 5. |
task_create¶
Create a task when you start work that is not on the board yet. Give it a short description (what to do and why). Returns its key (e.g. 'acme-shop-12'); use the key in later calls. If session is given, the task is bound to that session.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
title |
string | yes | Short task title. |
stage |
string or null | no | Initial stage; default plan. |
waiting_on |
string or null | no | Who the task waits on. '-' or '' leaves it empty. |
next_step |
string or null | no | The next concrete step. '-' or '' leaves it empty. |
branch |
string or null | no | Git branch. '-' or '' leaves it empty. |
doc_path |
string or null | no | Path to a task document. '-' or '' leaves it empty. |
description |
string or null | no | What to do and why, 1-5 sentences of markdown. '-' or '' leaves it empty. |
progress |
string or null | no | Markdown summary of everything done so far on the task (not just the last step). Rewrite it as the work goes on and keep it current with every report. '-' or '' leaves it empty. |
tracker_ref |
string or null | no | Issue key or number in the external tracker, e.g. 'ENG-12'. '-' or '' leaves it empty. |
tracker_name |
string or null | no | Name of the external tracker, e.g. 'Linear'. '-' or '' leaves it empty. |
tracker_url |
string or null | no | Link to the issue (http:// or https:// only). '-' or '' leaves it empty. |
tracker_logged |
boolean | no | True once the work log is entered in the external tracker. New work clears it again (a report, a progress change, a move back from live or done). A new tracker_ref starts as not logged unless tracker_logged is passed in the same write. Done tasks without it stay on the board marked 'not logged'. Default: False. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
task_update¶
Change task fields (waiting on, next step, branch, description, progress, the tracker issue and its work-log mark, ...). Omitted fields stay as they are; '-' or an empty string clears a field. Keep progress current with every report. To move a task between stages use task_set_stage. Also update next_step (what happens next) and waiting_on (who acts next) whenever the stage changes or you report.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
title |
string or null | no | New title. |
waiting_on |
string or null | no | Who the task waits on. '-' or '' clears it. |
next_step |
string or null | no | The next concrete step. '-' or '' clears it. |
branch |
string or null | no | Git branch. '-' or '' clears it. |
doc_path |
string or null | no | Path to a task document. '-' or '' clears it. |
stage_note |
string or null | no | Note next to the stage. '-' or '' clears it. |
description |
string or null | no | What to do and why, 1-5 sentences of markdown. '-' or '' clears it. |
progress |
string or null | no | Markdown summary of everything done so far on the task (not just the last step). Rewrite it as the work goes on and keep it current with every report. '-' or '' clears it. |
tracker_ref |
string or null | no | Issue key or number in the external tracker, e.g. 'ENG-12'. '-' or '' clears it. |
tracker_name |
string or null | no | Name of the external tracker, e.g. 'Linear'. '-' or '' clears it. |
tracker_url |
string or null | no | Link to the issue (http:// or https:// only). '-' or '' clears it. |
tracker_logged |
boolean or null | no | True once the work log is entered in the external tracker. New work clears it again (a report, a progress change, a move back from live or done). A new tracker_ref starts as not logged unless tracker_logged is passed in the same write. Done tasks without it stay on the board marked 'not logged'. |
size |
string or null | no | Task size: S, M or L. S tasks may go without an accepted plan; a task of unknown size needs one. '-' or '' clears it. |
expected_version |
integer or null | no | Fail instead of overwriting if the task changed since you read it. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
task_patch¶
Change any task fields given as one JSON object, with the same rules as task_update and task_set_stage (a stage value moves the task). Use it for a field your client's task_update does not offer yet: its parameter list may be older than the server. Call task_get or read relaybay://schema/task for the allowed fields.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
fields |
object | yes | Task fields to change as one JSON object, e.g. {"branch": "x"}. Call task_get or read relaybay://schema/task for the allowed fields; '-', '' or null clears an optional text field. |
expected_version |
integer or null | no | Fail instead of overwriting if the task changed since you read it. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
task_set_stage¶
Move a task to another stage (plan, dev, review, test, live, done) when its work moves on, e.g. to dev when you start coding, to review when the owner should accept it step by step (fill the checklist with review_steps_set first), to test when it is on the test environment, to done when finished. Any transition is allowed; a move that misses a working rule (see rules_get) adds a 'Warning (rules)' line. Also update next_step (what happens next) and waiting_on (who acts next) whenever the stage changes or you report.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
stage |
string | yes | One of: plan, dev, review, test, live, done. |
note |
string or null | no | Short note next to the stage, e.g. 'PR open'. |
next_step |
string or null | no | What happens next, one line; saved in the same write. A next step set before the last stage change shows as stale. Omit to keep it; '-' or '' clears it. |
waiting_on |
string or null | no | Who acts next; saved in the same write. Omit to keep it; '-' or '' clears it. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
task_bind_session¶
Mark that this session works on the task now; the board shows it with a link that opens the Claude desktop app session. Call it when you pick up an existing task. Pass your own desktop session id (local_…) if you know it. If you don't know your local_ id, don't rebind — the coordinator binds you; pass your session name only as session on writes. A plain name never replaces a desktop session bound to the task: it is recorded as that session's alias. Binding a session ends the previous session's binding; the history is kept. It never links a hook session (the caller may bind someone else): your own hook_session goes on your other writes.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
session |
string | yes | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Ignored here: pass your hook_session on your own writes instead. |
task_unbind_session¶
Remove the bound session from a task, e.g. when a session stops working on it without a successor. The binding history is kept. To hand the task to another session, call task_bind_session instead.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
session |
string or null | no | The session you expect to be bound (desktop session id or name); if another session is bound, nothing changes and an error says who. Optional. |
report_add¶
Add a report to a task. Call it at the end of every stage with your final report: what changed, how it was checked, what is left. Pass progress too, so the task's summary of what is done stays current with every report. Also update next_step (what happens next) and waiting_on (who acts next) whenever the stage changes or you report.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
body |
string | yes | Markdown report. Its first line is the summary; a first line 'state · size · gist' (e.g. 'verified · M · login fixed') also sets state (inspected, changed, verified, committed, pushed, blocked) and size (S, M, L). |
progress |
string or null | no | Markdown summary of everything done so far on the task (not just the last step). Rewrite it as the work goes on and keep it current with every report. Saved together with the report; omit to keep it; '-' or '' clears it. |
next_step |
string or null | no | What happens next, one line; saved in the same write. A next step set before the last stage change shows as stale. Omit to keep it; '-' or '' clears it. |
waiting_on |
string or null | no | Who acts next; saved in the same write. Omit to keep it; '-' or '' clears it. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
decision_add¶
Record a decision the user or the team made (scope, approach, trade-off), so later sessions find it in the project snapshot and decision_list. Decisions belong to a project (or one of its tasks); a fact for all projects goes to memory_add with scope 'global'. To change a decision, add the new one with supersedes.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
text |
string | yes | The decision, one or two sentences. |
task |
string or null | no | Related task key; makes the decision task-scoped. |
decided_by |
string or null | no | Who decided. |
source |
string or null | no | Where it came from: 'report:12', 'comment:7', 'event:301' or 'message: |
supersedes |
integer or null | no | Id of a current decision of the same project this one replaces; the old one stays in history marked superseded. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
decision_list¶
Decisions of a project, newest first (or the best matches of query), with their source and supersede links. Current decisions only unless include_superseded.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
task |
string or null | no | Only this task's decisions. |
query |
string or null | no | Words to search for; best matches first. |
include_superseded |
boolean | no | Also list replaced decisions (marked superseded by #n). Default: False. |
limit |
integer | no | How many. Default: 20. |
memory_add¶
Save a memory note: an owner preference, feedback, a project fact or a reference. First call without op: if similar notes exist, nothing is written and they are listed; call again with op add / update / supersede / noop. Never put secrets here (a write that looks like one is refused). Visibility per role is not enforced yet.
| Parameter | Type | Required | Description |
|---|---|---|---|
scope |
string | yes | global (every project), role (one role, e.g. coordinator) or project (one project). |
kind |
string | yes | user (the owner's preferences), feedback (a lesson from a correction), project (a fact about a project) or reference (where to find something). |
title |
string | yes | One line that names the fact. |
body |
string | yes | Markdown: the fact, why it holds, how to apply it. |
project |
string or null | no | Project slug, for scope project. |
role |
string or null | no | Role name, for scope role. |
tags |
string or null | no | Comma separated tags. |
source |
string or null | no | Where it came from: 'report:12', 'comment:7', 'event:301' or 'message: |
review_at |
string or null | no | Date to verify the note again, e.g. 2026-12-31. |
op |
string or null | no | Leave empty on the first call. After candidates came back: add, update (rewrite target), supersede (replace target, which stays in history) or noop. |
target |
integer or null | no | The candidate's id, for op update or supersede. |
base_version |
integer or null | no | With op=update: the candidate's version (v |
force_new |
boolean | no | With op=add: add even next to a strong match. Default: False. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
memory_update¶
Change a memory note. If someone changed it after you read it, nothing is saved and the current note comes back to merge; send it again with its version.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
integer | yes | The note's id. |
base_version |
integer | yes | The note's version you read (memory_get shows it). |
title |
string or null | no | New title. |
body |
string or null | no | New body (the whole text). |
tags |
string or null | no | New tags. '-' or '' clears it. |
review_at |
string or null | no | New review date. '-' or '' clears it. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
memory_search¶
Search memory notes, decisions, documents, reports and comments. Each hit has its id and the matching line; open a note with memory_get and a document with doc_get.
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | yes | Words to look for (word forms match). |
scope |
string or null | no | Only notes of this scope: global, role or project. |
project |
string or null | no | Only this project's items plus global and role notes. |
kinds |
list of string or null | no | What to search: note, decision, doc, report, comment (default all; only notes when scope is given). |
limit |
integer | no | How many hits. Default: 10. |
memory_get¶
A memory note in full: body, scope, source, dates, version (for memory_update).
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
integer | yes | The note's id. |
doc_list¶
The documents of a project (spec, status, brief, runbooks, ADRs) with versions.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
doc_get¶
A project document as markdown (or one section of it), with its current version to pass as base_version to doc_update.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
doc |
string | yes | Document name, e.g. 'spec'. |
section |
string or null | no | Section anchor from a heading ('## Gift cards' → gift-cards): returns that heading and its text only. |
version |
integer or null | no | An older version. |
doc_update¶
Write a new version of a project document (base_version 0 creates it). If it changed since you read it, nothing is saved and the current text comes back to merge.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
doc |
string | yes | Document name: lowercase letters, digits, dashes. |
body |
string | yes | Markdown: the whole document, or with section that section (starting with its heading to rename it, or just the text under it). |
reason |
string | yes | What changed and why, one line. |
base_version |
integer | yes | The version you read (doc_get shows it); 0 creates the document. |
section |
string or null | no | Replace only this section (its anchor). |
title |
string or null | no | Title; default: the first '# ' heading. |
kind |
string or null | no | spec, status, brief, runbook, adr… (default doc). |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
doc_history¶
The versions of a document (author, reason, section, size), newest first; with from_version and to_version also the unified diff between those two.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
doc |
string | yes | Document name. |
from_version |
integer or null | no | With to_version: show the diff between them. |
to_version |
integer or null | no | See from_version. |
block_get¶
A memory block (a short labelled text shown at its level, e.g. 'owner-preferences') with its version and character limit, or the list of blocks.
| Parameter | Type | Required | Description |
|---|---|---|---|
label |
string or null | no | Block label; omit to list the blocks. |
project |
string or null | no | Project slug; omit for global blocks. |
block_set¶
Write a memory block. Over its character limit the write is refused with the count. Owner-only blocks are read-only here (the owner edits them on the board).
| Parameter | Type | Required | Description |
|---|---|---|---|
label |
string | yes | Block label, e.g. 'owner-preferences'. |
body |
string | yes | The whole new text; must fit the limit. |
base_version |
integer | yes | The version you read (block_get); 0 creates the block. |
project |
string or null | no | Project slug; omit for a global block. |
description |
string or null | no | What the block is for, one line. |
char_limit |
integer or null | no | Character limit (default 2000 for a new block). |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
comments_list¶
Comments on a task, oldest first: the owner's (with sent / delivered / read marks) and agents' replies. Call it when a hook or the session start says you have unread owner comments.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
unread_only |
boolean | no | Only unread ones: owner comments not acknowledged yet and replies the owner has not read. Default: False. |
comment_ack¶
Acknowledge owner comments once you have handled them: one by comment_id, or all unread ones of task. The board then shows them as read, and the Stop hook stops reminding you of them.
| Parameter | Type | Required | Description |
|---|---|---|---|
comment_id |
integer or null | no | The owner comment to mark read, e.g. 7 for '#7'. |
task |
string or null | no | Task key: mark every unread owner comment on it read. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
comment_add¶
Reply to the owner on a task's comment thread (shown on the board and in the owner's Inbox). Use it to answer an owner comment or to ask a short question; reports stay in report_add.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
body |
string | yes | Your reply to the owner, markdown. |
in_reply_to |
integer or null | no | The owner comment you answer; it is marked read. Without it, every unread owner comment on the task is marked read. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
rules_get¶
The working rules: report format (first line, states, sizes), what a stage move needs (e.g. a report before test, progress before done), the description template and guidance, with the rules hash. Call it at the start of a session, or when the hash in project_snapshot changed since you last read them.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string or null | no | Project slug for its merged rules; omit for the global rules. |
events_since¶
Events after since_id (task created, stage changed, report added, ...), oldest first. Call it to catch up on what other sessions did since you last looked.
| Parameter | Type | Required | Description |
|---|---|---|---|
since_id |
integer | no | Last event id you have seen. Default: 0. |
project |
string or null | no | Project slug filter. |
limit |
integer | no | Default: 50. |
review_get¶
The task's review checklist: each step with its status (open, accepted, rejected), what to check, its screenshots with captions and ids, plus the owner's comments on the steps. Call it after an owner decision arrives, or before you change the checklist.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
review_steps_set¶
Write what the owner should check by eye (the Owner check) as an ordered checklist the owner accepts step by step on the board. Do it before moving the task to review or test.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
steps |
list of object | yes | The whole checklist in order, e.g. [{'title': 'Login with 2FA', 'details': 'What to check, how and why (markdown)'}]. It replaces the current one: step N keeps its decision and screenshots while its title and details stay the same; a changed step is open again; steps past the end are removed. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
review_step_update¶
Change one review step: its text, or reopen it after you fixed what the owner rejected. A changed text opens the step again.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
step |
integer | yes | The step's number in the checklist. |
title |
string or null | no | New title. |
details |
string or null | no | New 'what, how and why' text (markdown). |
status |
string or null | no | Only 'open': ask the owner to look again after a fix. Accepting and rejecting is the owner's, on the board. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
plan_get¶
The task's plan: status (draft or accepted), each step with its status and, when done, its checkpoint (time, conformance, outcome, link), plus your Claude Code todo as a separate list. Call it when you pick up a task and before you change the plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
plan_set¶
Write the task's plan (from PLAN.md or your own 2-5 steps) before you start coding. A new plan is a draft until the owner (board) or the coordinator (plan_accept) accepts it; changing the titles or the order of an accepted plan makes it a draft again.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
steps |
list of object | yes | The whole plan in order, 2-5 steps as a rule, e.g. [{'title': 'Migration and model', 'details': 'What and why, 1-2 sentences (markdown)'}]. It replaces the current plan: step N keeps its status and checkpoint while its title stays the same; a renamed step starts again as pending; steps past the end are removed; an empty list removes the plan. |
reason |
string or null | no | Why the plan is written or changed, one line; kept in its history. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
plan_step_update¶
Mark a plan step in_progress when you start it and done when it is finished (a checkpoint: one line 'as planned' or 'deviation: why', optionally an outcome and a link to the report or PR). Status changes never turn an accepted plan back into a draft.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
step |
integer | yes | The step's number in the plan (1, 2, …). |
status |
string | yes | One of: pending, in_progress, done, blocked. |
outcome |
string or null | no | One line: what came out of the step (or why it is blocked). |
link |
string or null | no | Done only: a report of this task ('12') or a PR link. |
conformance |
string or null | no | Required with done: 'as planned' or 'deviation: |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
plan_accept¶
Accept the task's plan as the coordinator (the owner accepts on the board). Agents do not accept their own plans.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
attach_file¶
Attach a screenshot to a task, optionally to one review step, with a caption. The type is checked by content (SVG and other files are refused) and sizes are limited. See the how-to 'Screenshots for review' for producing the file.
| Parameter | Type | Required | Description |
|---|---|---|---|
task |
string | yes | Task key such as 'acme-shop-12', or its numeric id. |
path |
string or null | no | Absolute path of a PNG, JPEG, WebP or GIF file inside the project's repository, the temp folder or a folder in attachment_roots. It is copied; the original stays. |
content_base64 |
string or null | no | The image itself, base64, instead of a path (same rules). |
filename |
string or null | no | A display name for content_base64. |
step |
integer or null | no | Review step number it belongs to. |
caption |
string or null | no | What the screenshot shows (markdown). |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
attachment_caption¶
Change the caption of a screenshot.
| Parameter | Type | Required | Description |
|---|---|---|---|
attachment_id |
integer | yes | The attachment id from attach_file. |
caption |
string | yes | New caption (markdown); '-' or '' clears it. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
environments_get¶
The project's environments (local, test, live): base URL, how to reach each one (ssh alias, kube context, database host, GitOps repository, log links; references only, never secrets) and your permission level there: none, read, ask (ask the owner first) or full. Read it before you touch a server, a cluster or a database.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
environment_propose¶
Propose a change to a project's environments or your permission level there. Nothing changes until the owner accepts it on the board; it shows in the owner's Inbox.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string | yes | Project slug such as 'acme-shop'. |
change |
object | yes | What to change: {'environment': |
reason |
string | yes | Why the change is needed, for the owner. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
policy_get¶
The effective policy (levels per environment kind and capability, guard mode and rules, secret rules, test secrets) with, for every value, the layer that set it: preset, config, global file, project, environment. Read it to know why the guard or a secret check answered as it did.
| Parameter | Type | Required | Description |
|---|---|---|---|
project |
string or null | no | Project slug; omit for the global policy. |
environment |
string or null | no | Environment name in the project, for its own policy. |
policy_propose¶
Propose a change to the policy. Nothing changes until the owner accepts it on the board (Settings → Policy); it shows in the owner's Inbox.
| Parameter | Type | Required | Description |
|---|---|---|---|
scope |
string | yes | 'global', a project slug, or ' |
patch |
object | yes | Merged into that layer's JSON: objects key by key, other values (lists included) replace, null removes a key. Keys: levels ({kind: {default|capability: level}}), guard ({mode, disable, patterns}), secrets ({disable, allow, test_secrets, expose_test_secrets_to_agents}). The result must validate against the policy schema (policy_get shows the current values). |
reason |
string | yes | Why the change is needed, for the owner. |
session |
string or null | no | Who is calling: pass your own desktop session id (local_…) if you know it, otherwise a human-readable session name. Optional. |
session_title |
string or null | no | Display name of your session (its title), used with a desktop session id. |
hook_session |
string or null | no | Your own Claude Code hook session id, if the session start told you one ('Your relaybay hook session: …'); never another session's. Links the board's live status and owner comments to your session. An id another live session linked first is not moved (the response says so). Optional. |
Resources¶
| URI | Name | Type | Description |
|---|---|---|---|
relaybay://doc/{project}/{doc} |
project-document | text/markdown | A project document's current markdown (same as doc_get). |
relaybay://project/{slug} |
project-snapshot | text/markdown | Markdown snapshot of a project (same as project_snapshot). |
relaybay://project/{slug}/environments |
project-environments | text/markdown | A project's environments, access map (no secrets) and permission levels. |
relaybay://rules |
rules | text/markdown | The global working rules (same as rules_get without a project). |
relaybay://rules/{project} |
project-rules | text/markdown | A project's working rules: global rules merged with the project override. |
relaybay://schema/task |
task-schema | text/markdown | Editable task fields for task_patch: name, type, description, clearing. |