Skip to contentSkip to Content

MCP

The board backend serves Streamable HTTP at /mcp. It uses the official Rust MCP SDK  and serves the current protocol, with compatibility for clients that initialize older protocol versions. There is no separate database connection or MCP process.

Connect your client

  1. Sign in to the board. In Settings → API tokens, issue a token for the source the client will work on. Choose read access unless it needs edits.
  2. Configure a Streamable HTTP server at https://board.example.com/mcp, using your backend’s address.
  3. Set its Authorization header to Bearer <token> through the client’s secret or environment setting. The same token works with folio-board.

Use each client’s documented bearer-token configuration; environment expansion in a JSON header is not supported by every client. This endpoint accepts a preissued bearer token. It does not provide an MCP OAuth authorization server.

Four tools share the board service

ToolInputResult
board_read{}Board, columns, cards, warnings and revision
card_read{"id":"improve-search"}Card, Markdown and current hash
card_create{"id":"improve-search","markdown":"..."}Validated card and new revision; existing ids are refused
card_applyAn operation requestAtomic outcome, card, revision, diff and warnings

Read tokens advertise only the first two tools. Write permission is checked again when a tool runs. The server assigns the actor from the token’s account; clients cannot replace the actor or supply commit messages.

For a guarded edit, read the card first and send its hash as if_match:

{ "card": "improve-search", "if_match": "<hash from card_read>", "ops": [{"op":"move","status":"in-progress"}], "dry_run": false }

card_apply accepts up to 32 operations for one card. Comments, trail notes, criteria, fields, descriptions and artifact references use the same operations as HTTP. Validation or stale-hash failures return a structured tool error. Review the current card before retrying a conflict.

Each request rechecks token expiry, revocation, stable source identity and provider permissions. Source context comes from the current authorized HTTP request, never from shared MCP client state. Origins and the public host are validated by the server. Revoking the token disables both HTTP and MCP access.

Git boards commit and push through the Git store. SQLite boards write an immutable database revision. Both use the same domain validation and revision checks. Keep token storage, provider credentials and SQLite boards on persistent storage.