MCP API Reference

All 31 tools. Parameters, types, CLI equivalents.
← Back to Quick Start & Tutorial

Graph CRUD

add_nodedeciduous add

Create a node in the decision graph.

ParamTypeRequiredDescription
node_typestringYesgoal, decision, option, action, outcome, observation, revisit
titlestringYesNode title
descriptionstringLonger description
confidenceint0-100
promptstringVerbatim user prompt
filesstringComma-separated file paths
branchstringGit branch (auto-detected)
commitstringCommit hash or "HEAD"
link_nodesdeciduous link

Create an edge between two nodes.

ParamTypeRequiredDescription
from_idintYesSource node ID
to_idintYesTarget node ID
rationalestringWhy this connection exists
edge_typestringleads_to, requires, chosen, rejected, blocks, enables
unlink_nodesdeciduous unlink

Remove an edge. Params: from_id, to_id (both required)

delete_nodedeciduous delete

Delete a node + edges. Params: node_id (req), dry_run (bool)

update_statusdeciduous status

Change status. Params: node_id, status (both required)

update_promptdeciduous prompt

Set prompt text. Params: node_id, prompt (both required)

Querying

list_nodesdeciduous nodes

List nodes with optional filters.

ParamTypeDescription
branchstringFilter by git branch
node_typestringFilter by type
statusstringFilter by status
themestringFilter by theme name
search_nodesMCP-only

Full-text search across titles, descriptions, and prompts.

ParamTypeRequiredDescription
querystringYesSearch text
node_typestringFilter results by type
branchstringFilter results by branch
list_edgesdeciduous edges

All edges. No params.

show_nodedeciduous show

Detailed node view. Param: node_id (req)

get_graphdeciduous graph

Full graph JSON. No params.

Analysis

trace_chainMCP-only

BFS traversal from a node. Returns full connected subgraph with depth.

ParamTypeRequiredDescription
node_idintYesStart node
max_depthint0 = unlimited
directionstringboth, outgoing, incoming
get_node_contextMCP-only

Node's full neighborhood: parents, children, siblings, edges.

ParamTypeRequired
node_idintYes
get_timelinedeciduous archaeology timeline

Chronological view, newest first.

ParamTypeDescription
limitintMax nodes (default 50, 0=all)
node_typestringFilter by type
branchstringFilter by branch
sincestringYYYY-MM-DD cutoff
get_pulsedeciduous pulse

Graph health: counts, active goals, orphans. Param: branch

find_orphansMCP-only

Nodes violating connection rules. No params.

get_branch_summaryMCP-only

All nodes on a branch, by type. Param: branch (req)

Sessions

start_sessionMCP-only

Begin a conversation session. Creates root goal; all add_node calls auto-associate.

ParamTypeRequiredDescription
namestringYesSession name ("cowork: auth refactor")
goal_titlestringYesRoot goal title
goal_promptstringOriginal user prompt (verbatim)
end_sessionMCP-only

Close active session. Param: summary (optional)

resume_sessionMCP-only

Reconnect to a previous session. Param: session_id (req)

get_sessionMCP-only

View session + nodes. Param: session_id (omit = current)

list_sessionsMCP-only

All sessions. Param: active_only (bool)

Documents & Themes

attach_documentdeciduous doc attach

Attach file to node. Params: node_id, file_path (req), description

list_documentsdeciduous doc list

List attachments. Param: node_id (omit = all)

create_themedeciduous themes create

Create theme. Params: name (req), color, description

list_themesdeciduous themes list

All themes. No params.

tag_nodedeciduous tag add

Tag a node. Params: node_id, theme (both req)

untag_nodedeciduous tag remove

Untag a node. Params: node_id, theme (both req)

Export

export_dotdeciduous dot

Export graph as DOT format for Graphviz visualization.

ParamTypeDescription
rootsstringRoot node IDs (comma-separated, traverses children)
nodesstringSpecific IDs or ranges ("1-11", "1,3,5")
titlestringGraph title
rankdirstringTB or LR
generate_writeupdeciduous writeup

PR writeup. Params: title, roots, nodes, no_dot, no_test_plan

events_statusdeciduous events status

Multi-user sync status. No params.

Architecture

Functional core, imperative shell. Everything except the server loop is testable without IO.

ModuleRoleIO
protocol.rsJSON-RPC 2.0 + MCP message types, parsing, constructorsNone
tools.rs31 tool definitions with JSON Schema parametersNone
handlers.rsTool dispatch: (Database, Value) → Result<Value>Database
query.rsBFS, node context, timeline, pulse, orphans (pure)None
mod.rsStdin/stdout loop, session state, MCP lifecycleStdin/stdout

108 MCP-specific tests. 272 total across the codebase.