Skip to content

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:', optionally followed by display text ('comment:7 owner in the review thread'); or display text alone ('owner, chat').
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:', optionally followed by display text ('comment:7 owner in the review thread'); or display text alone ('owner, chat').
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.

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': , then any of kind (local, test, live), base_url, notes, sign_in_allowed, login_state_path, level (none, read, ask, full or default), overrides ({capability: level} for sign_in, ssh, kubectl, db, deploy), access ([{kind: ssh|kubectl|db|gitops|logs|monitoring|other, fields: {...}}] to add)}. References only: a key path, a variable name or a vault path, never a secret value.
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.