Planboard

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.

VerifiedSTDIODesktop only

Overview

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.

Installation

In SourceWeft

  1. Open Planboard in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

planboard

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.

What it covers

  • Identity and workspaces — whoami, list_workspaces, create_workspace.
  • API tokens — list_api_tokens, create_api_token, revoke_api_token.
  • Documents — 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.
  • Epics — list_epics, get_epic, plan_it, get_epic_github, link_epic_github.
  • Tasks — 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.
  • Progress — log_progress (passed/total checks with an optional note and label) and list_progress.
  • Decisions — 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.

Configuration

bash
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-Branch

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.

CLI

Each tool is a subcommand taking one JSON argument string:

bash
npx @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 --version

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 server

bash
npx -y @reneturcios/planboard mcp

MCP client config:

json
{  "mcpServers": {    "planboard": {      "command": "npx",      "args": ["-y", "@reneturcios/planboard", "mcp"],      "env": {        "BECK_API_TOKEN": "..."      }    }  }}

Docker

bash
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"}'

Development

bash
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

License

MIT — Copyright (c) 2026 Rene Turcios

Source: README.md at commit a151c84

Tools

34

whoami

Who the API token belongs to.

Takes no parameters.

list_workspaces

List the workspaces the token can access.

Takes no parameters.

create_workspace

Create a new workspace in the Beck account for organizing epics and tasks.

Parametersnamerequired

list_api_tokens

List the API tokens issued for the authenticated Beck account.

Takes no parameters.

create_api_token

Create an API token.

Parametersnamerequired

revoke_api_token

Revoke an API token.

ParameterstokenIdrequired

list_documents

List documents in the workspace.

ParametersworkspaceIdrequired

read_document

Read one document's content.

ParameterspathrequiredworkspaceIdrequired

create_document

Create a document (no etag).

ParameterspathrequiredcontentrequiredworkspaceIdrequired

write_document

Write a document, guarded by its etag (sent as If-Match).

ParametersetagrequiredpathrequiredcontentrequiredworkspaceIdrequired

delete_document

Delete a document, guarded by its etag (sent as If-Match).

ParametersetagrequiredpathrequiredworkspaceIdrequired

list_document_versions

List a document's versions.

ParameterspathrequiredworkspaceIdrequired

restore_document

Restore a document to a previous version.

ParameterspathrequiredversionrequiredworkspaceIdrequired

list_epics

List epics in the workspace.

ParametersworkspaceIdrequired

get_epic

Get one epic by its ID, with its tasks and current status.

ParametersepicIdrequiredworkspaceIdrequired

plan_it

Plan the workspace's next epic.

ParametersworkspaceIdrequired

get_epic_github

Get an epic's linked GitHub issue.

ParametersepicIdrequiredworkspaceIdrequired

list_tasks

List tasks, with optional status / epicId / assignee / icebox filters.

ParametersepicIdiceboxstatusassigneeworkspaceIdrequired

get_task

Get one task by its ID, with its details and current status.

ParameterstaskIdrequiredworkspaceIdrequired

get_task_context

Get a task with its full context.

ParameterstaskIdrequiredworkspaceIdrequired

recommend_task

Recommend the next task to work on.

ParametersworkspaceIdrequired

start_task

Start a task, moving it into the in-progress state.

ParameterstaskIdrequiredworkspaceIdrequired

finish_task

Finish a task, reporting what was attempted.

ParameterstaskIdrequiredprogressrequiredworkspaceIdrequired

accept_task

Accept a finished task.

ParameterstaskIdrequiredworkspaceIdrequired

reject_task

Reject a task; a reason is required.

ParametersreasonrequiredtaskIdrequiredworkspaceIdrequired

update_task

Update a task's fields; only provided fields are sent.

ParameterstagstypefilestitleepicIdpointstaskIdrequiredblockedcriteriadescriptionworkspaceIdrequired

add_comment

Add a comment to a task.

ParametersbodyrequiredtaskIdrequiredworkspaceIdrequired

list_comments

List a task's comments.

ParameterstaskIdrequiredworkspaceIdrequired

log_progress

Log progress checks against a task.

ParametersnotechecksrequiredtaskIdrequiredworkspaceIdrequired

list_progress

List a task's progress entries.

ParameterstaskIdrequiredworkspaceIdrequired

list_decisions

List decisions, optionally filtered by status (open|answered) or epic.

ParametersepicIdstatusworkspaceIdrequired

ask_decision

Ask a decision, with a default answer.

ParameterscostlyepicIddefaultrequiredblockingquestionrequiredworkspaceIdrequired

answer_decision

Answer a decision, or keep its default (exactly one of answer / keepDefault).

ParametersanswerdecisionIdrequiredkeepDefaultworkspaceIdrequired

Version history

1
  1. v0.1.0LatestNov 3, 2026

Score

90% 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.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts