propose_nodes()
KeyClaude (or an algorithm adapter) proposes variables for the causal graph, with rationale and evidence links. Everything lands at status=proposed — humans approve graph structure.
propose_nodes(nodes, rationale, evidence_ids)→ PROPOSED NODESCallable over MCP as propose_nodes(nodes, rationale, evidence_ids). REST mirror POST /v1/graph/nodes Planned — alpha is MCP-only
When the agent's reading suggests a variable the graph doesn't model yet — onboarding spend, rep tenure — it proposes the node with its reasoning. The graph only grows through proposals a human has seen.
Over MCP, your agent invokes it on its own when the moment calls for it — just describe the situation. A Python SDK for headless runtimes is planned; this is what the call will look like.
| Param | Type | Description |
|---|---|---|
| nodesREQUIRED | object[] | Proposed variables — name + description each. |
| rationaleREQUIRED | string | Why these variables belong in the graph. |
| evidence_ids | string[] | Memory or sources supporting the proposal. |

