MCP surface¶
How Work Cards exposes itself to agents over the Model Context Protocol. The MCP server is one of three surfaces (REST, CLI, MCP) sharing one Go service layer; it is the primary interface for agents living inside an MCP-aware harness.
Normative behavior lives in index.md; the agent coordination loop
(api-surface.md §13) drives tool grouping. See also
card definitions
for schema authoring and index.md for
worked flows.
Goals¶
- Agents see typed tools, not raw JSON, so the board's vocabulary is a guardrail against hallucinated fields and values.
- Tools are generated from
GET /workspace, so every board gets a bespoke tool surface with no per-board code. - The toolset maps cleanly onto the coordination loop: introspect → take-next → work → append evidence → transition → comment → resume.
Running it & Tool Surface¶
For absolute tool inventories, instructions on running the MCP server, and details on concurrency, idempotency, or actor binding, see the package-level documentation.
For an overview of the key design properties of the MCP surface, see below.
Why this shape works for agents¶
- Orient with
workspacefirst. Itssettings.default_boardnames the primary board in a multi-board workspace — use it rather than guessing, and notetake_nextalready defaults to it when given noboard_id/type_id. - The tool list is the manual.
workspace+ the generated create/update tools encode every valid field, enum, and tag. There is nothing to guess. - Type-per-card-type makes category errors impossible at the tool boundary.
take_next+claim+append_entrymap 1:1 to "take a task, work, log evidence" — the loop is three calls.historymakes preemption recoverable: resume from the timeline. (subscribeis planned for live event reaction — not yet implemented; use the HTTP SSE feed in the meantime.)- Structured errors with
valid_optionsturn mistakes into a single retry, not a dead end.
What MCP does not do¶
- It is a transport over the same core; it does not add behavior. Automation,
validation beyond the field catalog, and integrations are extensions
(
index.md). - It does not execute
commandfield specs (the core never executes; thecommandfield type was dropped — seedesign-notes.mdD2). - It does not manage auth beyond the trusted-local actor binding.