whoami
Who the API token belongs to.
Takes no parameters.

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 7, 2026
Beck agent plan board: workspaces, documents, epics, tasks, decisions and progress over REST.
Planboard's local MCP server; no sign-in required; STDIO; 34 tools.
No AI overview yet: these facts come from the registry entry and the server itself.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
A small client for the Beck agent plan board. Beck keeps the shared state an agent team works from — workspaces, planning documents, epics, tasks, progress checks and open decisions — behind a REST API, and planboard exposes that API as 34 MCP tools plus a matching command line, so an agent (or a human at a terminal) can read the board, move tasks along, guard document edits with etags, and answer the decisions that block work.
whoami, list_workspaces,
create_workspace.list_api_tokens, create_api_token,
revoke_api_token.list_documents, read_document,
create_document, write_document, delete_document,
list_document_versions, restore_document. Writes and
deletes are guarded by the document's etag, sent as an
If-Match header, so a stale editor cannot silently
overwrite someone else's revision.list_epics, get_epic, plan_it,
get_epic_github, link_epic_github.list_tasks (filterable by status, epic,
assignee and icebox), get_task, get_task_context,
recommend_task, start_task, finish_task (with a
what-was-attempted report), accept_task, reject_task
(a reason is required), update_task (only the fields you
provide are sent), add_comment, list_comments.log_progress (passed/total checks with an
optional note and label) and list_progress.list_decisions (filterable by open /
answered status and epic), ask_decision (every question
carries a default answer), and answer_decision, which
accepts exactly one of an explicit answer or
keepDefault: true.Workspace scoping is explicit everywhere: every
workspace-scoped tool takes a required workspaceId, sent as
a query parameter on reads and deletes and inside the JSON
body on writes.
Without BECK_API_TOKEN, every tool returns the error text
BECK_API_TOKEN is not set and no request is made. Each
process also generates one random run id, sent as
X-Beck-Run on every request, so the server can group the
calls a single agent run makes. The token itself never
appears in any tool output.
Successful calls return the upstream JSON body,
pretty-printed. A non-2xx response becomes an error result
of the form upstream error: HTTP <status> from beck-api,
with : <message> appended when the response body carries a
message or error string; a request that never completes
becomes upstream unreachable: beck-api.
Each tool is a subcommand taking one JSON argument string:
Output is the same text the MCP tool returns. Exit codes:
0 on success, 1 when the tool result is an error, 2 on
a usage error.
MCP client config:
MIT — Copyright (c) 2026 Rene Turcios
Source: README.md at commit a151c84
Who the API token belongs to.
Takes no parameters.
List the workspaces the token can access.
Takes no parameters.
Create a new workspace in the Beck account for organizing epics and tasks.
namerequiredList the API tokens issued for the authenticated Beck account.
Takes no parameters.
Create an API token.
namerequiredRevoke an API token.
tokenIdrequiredList documents in the workspace.
workspaceIdrequiredRead one document's content.
pathrequiredworkspaceIdrequiredCreate a document (no etag).
pathrequiredcontentrequiredworkspaceIdrequiredWrite a document, guarded by its etag (sent as If-Match).
etagrequiredpathrequiredcontentrequiredworkspaceIdrequiredDelete a document, guarded by its etag (sent as If-Match).
etagrequiredpathrequiredworkspaceIdrequiredList a document's versions.
pathrequiredworkspaceIdrequiredRestore a document to a previous version.
pathrequiredversionrequiredworkspaceIdrequiredList epics in the workspace.
workspaceIdrequiredGet one epic by its ID, with its tasks and current status.
epicIdrequiredworkspaceIdrequiredPlan the workspace's next epic.
workspaceIdrequiredGet an epic's linked GitHub issue.
epicIdrequiredworkspaceIdrequiredLink an epic to a GitHub issue.
repoepicIdrequiredissueNumberworkspaceIdrequiredList tasks, with optional status / epicId / assignee / icebox filters.
epicIdiceboxstatusassigneeworkspaceIdrequiredGet one task by its ID, with its details and current status.
taskIdrequiredworkspaceIdrequiredGet a task with its full context.
taskIdrequiredworkspaceIdrequiredRecommend the next task to work on.
workspaceIdrequiredStart a task, moving it into the in-progress state.
taskIdrequiredworkspaceIdrequiredFinish a task, reporting what was attempted.
taskIdrequiredprogressrequiredworkspaceIdrequiredAccept a finished task.
taskIdrequiredworkspaceIdrequiredReject a task; a reason is required.
reasonrequiredtaskIdrequiredworkspaceIdrequiredUpdate a task's fields; only provided fields are sent.
tagstypefilestitleepicIdpointstaskIdrequiredblockedcriteriadescriptionworkspaceIdrequiredAdd a comment to a task.
bodyrequiredtaskIdrequiredworkspaceIdrequiredList a task's comments.
taskIdrequiredworkspaceIdrequiredLog progress checks against a task.
notechecksrequiredtaskIdrequiredworkspaceIdrequiredList a task's progress entries.
taskIdrequiredworkspaceIdrequiredList decisions, optionally filtered by status (open|answered) or epic.
epicIdstatusworkspaceIdrequiredAsk a decision, with a default answer.
costlyepicIddefaultrequiredblockingquestionrequiredworkspaceIdrequiredAnswer a decision, or keep its default (exactly one of answer / keepDefault).
answerdecisionIdrequiredkeepDefaultworkspaceIdrequired90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
export BECK_API_TOKEN="..." # requiredexport BECK_API_URL="https://beck.bot" # optional overrideexport BECK_REPO="owner/repo" # optional, sent as X-Beck-Repoexport BECK_BRANCH="main" # optional, sent as X-Beck-Branchnpx @reneturcios/planboard whoami '{}'npx @reneturcios/planboard list_tasks '{"workspaceId":"w1","status":"open"}'npx @reneturcios/planboard write_document '{"workspaceId":"w1","path":"plan.md","content":"...","etag":"etag-7"}'npx @reneturcios/planboard answer_decision '{"workspaceId":"w1","decisionId":"d1","keepDefault":true}'npx @reneturcios/planboard --versionnpx -y @reneturcios/planboard mcp{ "mcpServers": { "planboard": { "command": "npx", "args": ["-y", "@reneturcios/planboard", "mcp"], "env": { "BECK_API_TOKEN": "..." } } }}docker run -i -e BECK_API_TOKEN="..." ghcr.io/cloudcorprecords/planboarddocker run --rm -e BECK_API_TOKEN="..." ghcr.io/cloudcorprecords/planboard list_epics '{"workspaceId":"w1"}'npm installnpm run build # tsc -> dist/npm test # tsx --test test/*.test.ts (fake fetch only, no network)npm run dev # run the CLI from source