Thesis models research as a directed acyclic graph of nodes. Each node is a research unit, a hypothesis, empirical experiment, insight, or source summary, that moves through a staged-to-committed lifecycle. The 15 core node tools let you create and update staged nodes, commit them into durable history, branch and merge across the graph, and traverse the topology. The Sharing, Tags, and Artifacts tool groups extend nodes with access control, labeling, and file attachments.

Node tools (15)

ToolMutation?Purpose
thesis_stage_node_createYesCreate a new staged node
thesis_stage_node_updateYesUpdate staged node fields with optimistic concurrency control
thesis_commit_nodeYesCommit a node, making it immutable
thesis_branch_nodeYesCreate a child node from an existing parent
thesis_merge_nodesYesMerge multiple source nodes into a single target
thesis_add_parentYesAdd a parent edge between two nodes
thesis_remove_parentYesRemove a parent edge
thesis_delete_nodeYesDelete a single node
thesis_bulk_delete_nodesYesDelete multiple nodes in one call
thesis_list_nodesNoList nodes with filters and pagination
thesis_get_nodeNoFetch a single node (core, topology, or full projection)
thesis_get_node_treeNoRetrieve the full ancestor and descendant tree
thesis_get_node_ancestryNoTrace upward from a node to all root ancestors
thesis_summarize_node_treeNoGet tree statistics broken down by kind and lifecycle
thesis_resolve_node_slugNoResolve a human-readable slug to a node_id

Node kinds

thesis_stage_node_create and thesis_stage_node_update accept a kind field:
KindAliasDescription
untyped,Freeform note or placeholder
empiricalexperimentStructured experiment with an 8-section blueprint
insight,Synthesized finding or claim

Key parameters

title
string
required
Short label for the node. Displayed in graph and list views.
summary
string
One-sentence claim, hypothesis, or plan. Shown in node cards.
content
string
Extended notes, protocol description, or source synthesis in Markdown.
kind
string
default:"\"untyped\""
Node type: untyped, empirical (or experiment), or insight.
parent_ids
string[]
UUIDs of parent nodes. Establishes edges in the research graph.
expected_revision
number
Required by thesis_stage_node_update for optimistic concurrency control. Pass the current revision number; the server rejects stale writes.

Example: create a node, then branch from it

POST /mcp-server
Content-Type: application/json
Authorization: Bearer thk_your_api_key

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "thesis_stage_node_create",
    "arguments": {
      "title": "Transformer scaling laws survey",
      "summary": "Survey of empirical scaling law findings across architecture families",
      "kind": "insight"
    }
  }
}
Once you call thesis_commit_node, the node becomes immutable. Use thesis_branch_node to create a child node for further work rather than editing the committed node.

Sharing tools (3)

Sharing controls who can view or edit a node. You can set sharing on a single node or update many nodes in one batch call.
ToolMutation?Purpose
thesis_get_node_sharingNoRetrieve current sharing mode and collaborator list
thesis_set_sharing_for_nodeYesSet sharing mode and collaborators for a single node
thesis_set_sharing_for_nodesYesBatch-update sharing for multiple nodes
Sharing modes are private, unlisted, and public.

Tags tools (4)

Tags are colored labels you create per workspace and assign to any number of nodes. Use them to mark research status, topic area, or priority.
ToolMutation?Purpose
thesis_create_node_tagYesCreate a new tag with a name and color
thesis_update_node_tagYesRename or recolor an existing tag
thesis_delete_node_tagYesDelete a tag and remove it from all nodes
thesis_set_node_tag_assignmentsYesSet the complete list of tag assignments for a node

Artifacts tools (7)

Artifacts are files attached to nodes, data files, notebooks, charts, or any binary asset. The upload flow is a two-step signed-URL process: prepare to get upload URLs, then finalize after the files are uploaded to storage.
ToolMutation?Purpose
thesis_list_artifactsNoList all artifacts for a node
thesis_get_artifactNoRetrieve artifact metadata
thesis_get_artifact_previewNoGet a truncated content preview for text files
thesis_prepare_artifact_uploadsYesRequest signed upload URLs for one or more files
thesis_finalize_artifact_uploadsYesConfirm uploads and register artifacts on the node
thesis_set_artifact_noteYesAdd or update a text note on an artifact
thesis_delete_artifactYesPermanently delete an artifact

Upload flow

1

Prepare

Call thesis_prepare_artifact_uploads with file names and MIME types. The response includes signed upload URLs valid for a short window.
2

Upload

PUT each file directly to its signed URL using any HTTP client. No Thesis authentication is required for these requests.
3

Finalize

Call thesis_finalize_artifact_uploads with the upload batch ID. Thesis registers the artifacts on the node and makes them available through thesis_list_artifacts.