Skip to content
Strata/Docs

MCP Tools Reference

Strata exposes 17 tools via the Model Context Protocol, organized into groups. By default, only core tools are enabled. Enable additional groups via the X-Strata-Tool-Groups header.

Tool Groups

Header Configuration

Add the X-Strata-Tool-Groups header to your MCP client configuration to enable tool groups. Use comma-separated group names, or "all" to enable everything.

json
{
  "url": "https://api.strata.space/mcp",
  "headers": {
    "X-Strata-Tool-Groups": "core,spaces,agents"
  }
}

Core

default

Document read, edit, list, and search

#app_get_section_content

Get the full content of a document section by document ID and section ID. Returns the section text and heading context.

ParameterTypeDescription
chunkIdstringThe chunk ID to retrieve
documentIdstringThe document ID containing the section

#edit_document

Edit a document, manage access, or upload content from a file.

ACTIONS - "create": title, [content], [folderId] — create with inline content. - "edit": documentId, oldString, newString, [replaceAll] — targeted replacement. - "write": documentId, newContent — full INLINE replacement. - "share": documentId, email, role — grant access. - "unshare": documentId, targetUserId — revoke access. - "presignUpload": contentLength + (documentId OR title [+folderId]). Returns { uploadId, uploadUrl, requiredHeaders, expiresAt }. - "finalizeUpload": uploadId. Idempotent. Returns { documentId, bytes, created }.

Upload flow (prefer when content already exists as a file or as bytes you generated — avoids re-emitting them as tool input): 1. wc -c file.md → byte count 2. presignUpload(contentLength, ...) → { uploadUrl } 3. PUT file to uploadUrl with requiredHeaders 4. finalizeUpload(uploadId) → { documentId }

ParameterTypeDescription
actionstringAction to perform (see tool description)
content?stringInitial markdown body (action `create`)
contentLength?integer (uint64)Byte count of payload (action `presignUpload`)
documentId?stringDocument ID
email?stringRecipient email (action `share`)
folderId?stringFolder ID (actions `create`, `presignUpload`)
newContent?stringFull new body (action `write`)
newString?stringReplacement text (action `edit`)
oldString?stringText to find (action `edit`)
replaceAll?booleanReplace every match, default false (action `edit`)
role?stringviewer, commenter, or editor (action `share`)
targetUserId?stringUser to revoke (action `unshare`)
title?stringDocument title (actions `create`, `presignUpload`)
uploadId?stringID from `presignUpload` (action `finalizeUpload`)

#find

Search, list, or discover documents and spaces across the workspace. Use this tool whenever you need to locate content before reading it — set intent to the kind of discovery (search, list, recent, related, info) and scope to where to look (all, a specific space, folder, or document, the set of all spaces, published documents, or strataDocumentation for Strata's own product docs). Search uses hybrid keyword + semantic retrieval fused via Reciprocal Rank Fusion, so both short keywords and natural sentences work as queries. Use filters for status, owner, date ranges, includeShared, direction, sinceDays (for intent='recent'), and tokenBudget. Returns a uniform shape with items that carry id, title, snippet, score, and source attribution; follow up with read_document to fetch full content for any item you want to use. If you receive zero results, broaden the scope before reformulating the query — narrow scopes can return empty even when content exists.

ParameterTypeDescription
intentunknownDiscovery intent. "search" ranks by relevance, "list" enumerates, "recent" returns newest changes within filters.sinceDays, "related" finds documents similar to scope.id (requires scope.type="document"), "info" returns metadata about the scoped entity.
scopeunknownWhere to look. Use IDs from the prompt or a prior find result.
filters?objectNarrowing filters. Ignored when inapplicable to the chosen intent. For intent="recent", set filters.sinceDays (default 7).
limit?integer (uint32)Max results. Default: 10. Max: 50.
nextToken?stringPagination cursor from a prior find result. Pass through unchanged.
query?stringSearch text. Required when intent="search".
tokenBudget?integer (uint32)Per-chunk content size budget for intent="search". Default: server-chosen.

#get_document_graph

Get the connection graph neighborhood around a document. Returns nodes (documents) and edges (connections) discovered by BFS traversal.

Optional parameters: - depth: BFS depth (default 2, max 5) - maxNodes: Maximum nodes to return (default 50, max 200)

ParameterTypeDescription
documentIdstringThe document ID to start the graph traversal from
depth?integer (uint32)BFS traversal depth (default 2, max 5)
maxNodes?integer (uint32)Maximum number of nodes to return (default 50, max 200)

#get_image

Retrieve an image from a document as base64-encoded data. Use when you need to analyze, describe, or understand an image referenced in a document.

The imageId is found in document content as [Image: alt text (imageId: <id>)] markers or ![alt](strata://image/<id>) in markdown.

Returns the image as inline base64 PNG data that can be viewed directly.

ParameterTypeDescription
documentIdstringDocument the image belongs to. The caller must have `DocumentRead` on this document before bytes are returned
imageIdstringImage ID (SHA256 hex from document content)
maxWidth?integer (uint32)Maximum width to resize to before encoding (saves tokens). Defaults to 1024

#read_document

Read a document's content by ID.

Returns rendered Markdown. Use before editing. Large documents automatically return a structural outline instead of full content (default budget: 10000 tokens). Use the sections parameter with heading paths from the outline to read specific sections.

Workflow: read_document(id) → outline (if large) → read_document(id, sections: ["Heading > Subheading"]) → section content.

ParameterTypeDescription
documentIdstringDocument ID to read, like `doc_01JAB...`
commentFormat?stringComment output format: "footnotes" (default, inline markdown footnotes) or "structured" (appends a JSON block with full comment thread data)
includeComments?booleanWhether to include comments in the response. Comments are rendered as inline footnotes in the markdown output
includeSuggestions?booleanWhether to include pending suggestions as a JSON block appended to the markdown content
maxTokens?integer (uint32)Token budget (default: 10000). Documents exceeding this return an outline instead of full content. Set to 0 to always get the outline
sections?string[]Heading paths to read, like `["Architecture > Database Layer"]`. Prefix matching: `"Architecture"` returns that section and all sub-sections. Use paths from a prior outline response

Collaboration

Section locking and presence

#get_presence

Query who is currently viewing or editing a document. Returns a list of collaborators with their entity type, display name, active section, status, and presence color. Useful for understanding who else is working on the document before making edits.

ParameterTypeDescription
documentIdstringDocument ID to query presence for

Agents

Platform agent invocation

#get_agent_status

Check the status of an agent task.

Returns the current status, tool call count, and output (if completed) or error (if failed). Poll this after invoke_agent to track completion.

Possible statuses: pending, running, completed, failed, cancelled, timedOut.

ParameterTypeDescription
taskIdstringThe task ID returned by `invoke_agent`

#invoke_agent

Invoke a platform agent to perform a task.

Specify the agent by ID or by name (mutually exclusive). Optionally provide a target document and a natural-language instruction.

Returns a task ID — use get_agent_status to poll for status and output. The agent executes asynchronously; this tool returns immediately after the task is created.

ParameterTypeDescription
agentId?stringAgent ID to invoke (mutually exclusive with `agent_name`)
agentName?stringAgent name to invoke (mutually exclusive with `agent_id`)
documentId?stringTarget document ID (optional)
idempotencyKey?stringIdempotency key (optional)
instruction?stringNatural-language instruction for the agent