Thesis exposes 86 tools through a single JSON-RPC 2.0 endpoint at /mcp-server. Every tool is available to any MCP-compatible agent host. Claude Code, Cursor, Codex, OpenCode, or your own client, using a Bearer token for authentication. Tools are grouped into 16 functional categories covering the full research lifecycle, from creating and branching nodes to leasing GPU compute, exporting subgraphs, and auditing activity.

Calling convention

All requests are HTTP POST to /mcp-server with Content-Type: application/json and an Authorization: Bearer <token> header. The body is a standard JSON-RPC 2.0 envelope with method set to tools/call.
jsonrpc
string
default:"\"2.0\""
required
Must be "2.0".
id
number | string
required
Client-generated request identifier. Echoed back in the response.
method
string
default:"\"tools/call\""
required
Always "tools/call" for tool invocations.
params.name
string
required
The tool name, e.g. thesis_stage_node_create.
params.arguments
object
required
Tool-specific arguments. Schema varies per tool; see the individual tool pages.

Example: create a node

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": "Attention vs. convolution on long sequences",
      "summary": "Test whether attention outperforms convolution past 8k tokens",
      "content": "Run both architectures on synthetic long-range dependency tasks. Vary sequence length from 1k to 32k. Measure accuracy and wall-clock time.",
      "kind": "empirical",
      "parent_ids": ["a1b2c3d4-0000-0000-0000-000000000001"]
    }
  }
}
The result.content array always contains a single text element whose text field is a JSON-encoded object. Parse that string to access the returned data.

Idempotency

Mutation tools in Thesis are automatically idempotent. When you call a mutation tool, the MCP server computes a SHA-256 key from the canonical JSON serialization of your parameters. If you send the exact same parameters again within 7 days, the server replays the cached response without re-executing the operation. This protects against duplicate writes caused by network retries or agent restarts.
Idempotency is keyed on the full parameter set. Changing any argument, even whitespace in a string field, produces a new key and triggers a fresh execution.

Tool categories

The 86 tools are grouped into 16 categories. Mutation tools (those that write or modify state) are marked in each category’s reference page.
CategoryCountWhat it covers
Nodes15Create, update, commit, branch, merge, and query research nodes
Sharing3Set per-node or batch sharing modes and collaborators
Tags4Create, rename, and assign tags to nodes
Artifacts7Upload, retrieve, preview, and delete node file attachments
Knowledge9Index papers, repos, docs, and datasets; search and read sources
Oracle4Queue and stream long-running research synthesis jobs
Tracer2GitHub code search across repositories
Document Agent1Q&A against a single indexed source
Compute11Lease GPU instances and manage approval sessions
Workflow7Start, progress, and complete multi-step research workflows
Campaigns5Manage campaign budgets and snapshots
Execution3Launch, list, and terminate code executions
Auth & Meta4Check auth status, credits, and system contract
Export/Import6Export subgraphs as JSON, markdown, or PDF; import subgraphs
Updates4List and manage in-app notifications
Audit1Retrieve audit events for a node