Skip to content

Hub MCP tools

nextup-mcp is a stdio MCP (Model Context Protocol) server, spawned by the agent host through the workspace’s .mcp.json. The Claude CLI picks that file up and connects on its own; other vendors’ CLIs wire MCP up differently and need their own setup. Every call — including denied ones — is written to the ledger. One master switch (“Allow agents to reach the hub”) decides whether agents reach the hub at all — off, even the read tier is refused; everything below assumes it is on.

workspace_status · list_tasks · get_task · workflow_status · search_workspace · build_index · workspace_doctor · post_mortem_candidates · list_deliveries (teams module; brief clamps each cover note to its first line) · get_delivery (teams module) · team_overview (prime module; the teams this workspace coordinates, with a summary per member) · team_member_status (prime module) · team_list_deliveries (prime module) · list_specs (specs module) · get_spec (specs module) · validate_task_specs (specs module)

Authorised on the Tools page by capability group. Expanding a group gives per-tool control. The grouping is presentation only: authorisation is stored, and enforced, per tool.

New workspaces pre-authorise the everyday tools. Some stay off until you open them, because they are the checks themselves — set_task_verification, set_milestone_verified, advance_phase, publish_delivery, upgrade_workspace_assets — and every team-coordination tool is off as well, since each one reaches outside the workspace it was granted in. They are marked (off by default) below; everything unmarked is granted on day one.

  • Task editingcreate_task · update_task_status · set_task_verification (off by default)
  • Collaboration (collaboration module)claim_task (compare-and-set, cannot be stolen, requires an identity via --agent or NEXTUP_AGENT) · assign_task (dispatch may override)
  • Team delivery (teams module)publish_delivery (off by default; packages a note plus attachments into the outbox — agents have no routing surface at all: a delivery leaves the outbox either because a human pressed send or because a human switched on auto-send for that edge in advance. Attachments are workspace-relative paths and keep that layout inside the envelope, so two capabilities can both deliver a specs/<name>/spec.md; supersedes marks an earlier, still-unsent envelope as replaced rather than deleting it)
  • Knowledge recordsrecord_decision · record_note · record_progress · record_rejected · record_lesson · record_lesson_fired · archive_stale_lessons
  • Phases & milestonesadvance_phase (off by default; no force) · add_milestone · set_milestone_done · set_milestone_verified (off by default)
  • Team coordination (prime module) — all off by default: team_set_edge · team_set_edge_auto_route · team_route (sends a published envelope on; a member’s follows the flow graph and a destination not downstream of it is refused, while the coordinator’s own reaches any member — it has no node in the graph to draw an edge from. Both ledgers record that the coordinator did it rather than a person) · team_add_member · team_create_member (creates a new project folder and joins it; never adopts an existing directory) · team_remove_member (takes a project out of the team; its files are untouched) · team_member_tasks · team_member_ledger · team_member_specs (read inside one member — each read is written into that member’s own ledger) · team_archive_task (the sign-off: archives a member’s finished task, which folds its spec deltas into that project’s specification)
  • Handoff & maintenancegenerate_handoff · upgrade_workspace_assets (off by default; engine curriculum sync — the operating guide and skills the engine shipped into the workspace; dryRun to preview)

There is no tool surface for forcing a gate or satisfying a manual confirmation. Those are structural, not permission settings you could turn on.

A team’s coordinator is the one agent that reaches past its own workspace, and the shape of what it reaches is the point: it edits the team’s graph, moves envelopes between members, and reads inside them — task text, ledger, specs — with every such read written into that member’s own ledger, so being read is never invisible. It is not itself a member of that team, so the roster it reads never includes it. What it cannot do is the work: no creating tasks, no advancing phases, no marking someone’s work verified. Archiving a member’s finished task — the sign-off that folds its spec deltas — is the one write it has inside a member, and a separate grant from reading. Its authority is granted per team by a human — naming it as coordinator switches the module on but grants nothing; every tool above waits for a separate authorisation — and it has no tool for granting itself more.