Documents
MCP tools for the Documents module. See the Documents module docs for permissions and data model.
list-documents
List documents
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
projectId | string | no | Project ID (optional) |
limit | number | no | Maximum number of results to return |
offset | number | no | Number of results to skip |
create-document
Create a document
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
projectId | string | no | Project ID. Required for JWT auth; omit when using an project key. |
content | string | yes | — |
path | string | no | Logical path within the project (e.g. /reports/q1.txt). Defaults to /filename if omitted. |
filename | string | no | — |
title | string | no | Document title |
metadata | object | no | Arbitrary metadata object. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase. |
tags | object | no | Key-value tags |
chunkStrategy | string | no | How to split the content into embeddable chunks. whole (default) stores the content as a single chunk; size splits into fixed-size character windows with overlap. page is equivalent to whole for plain text. |
chunkSize | number | no | Window size in characters when chunk_strategy=size. Defaults to 1000. |
chunkOverlap | number | no | Overlap in characters between consecutive windows when chunk_strategy=size. Defaults to 200. |
ingest-document
Ingest a file into a chunked document
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
async | boolean | no | When omitted or true (default), processing runs in the background and 202 Accepted is returned immediately with status=pending. Pass false to run synchronously and receive 201 Created with status=ready. |
fileId | string | yes | ID of the uploaded file. Must be one of application/pdf, text/plain, text/markdown. |
projectId | string | no | Project ID. Required for JWT auth; omit when using a project key. |
pathPrefix | string | no | Path prefix under which to store the document (e.g. /docs/). The filename is appended automatically. |
tags | object | no | Key-value tags to attach to the document. |
chunkStrategy | string | no | How to split the source into chunks. page (default) creates one chunk per non-empty page (PDF); for non-paged sources it yields a single chunk. whole joins everything into one chunk. size splits into fixed-size character windows with overlap. |
chunkSize | number | no | Window size in characters when chunk_strategy=size. Defaults to 1000. |
chunkOverlap | number | no | Overlap in characters between consecutive windows when chunk_strategy=size. Defaults to 200. |
get-document
Get a document by ID
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
delete-document
Delete a document
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
update-document
Update a document
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
content | string | no | New text content |
title | string | no | New title |
path | string | no | Logical path within the project (e.g. /reports/q1.txt). Pass null to clear. |
metadata | object | no | Arbitrary metadata object. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase. |
tags | object | no | Key-value tags |
get-document-status
Get document ingestion status
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
reingest-document
Re-ingest an existing document
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
async | boolean | no | When omitted or true (default), processing runs in the background and 202 Accepted is returned immediately with status=pending. Pass false to run synchronously and receive 201 Created with status=ready. |
chunkStrategy | string | no | How to split the source into chunks. Defaults to page. |
chunkSize | number | no | Window size in characters when chunk_strategy=size. Defaults to 1000. |
chunkOverlap | number | no | Overlap in characters between consecutive windows when chunk_strategy=size. Defaults to 200. |
complete-ingestion-callback
Deliver an async converter result
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
token | string | yes | Single-use signed token from the original callback.token |
get-document-tags
Get document tags
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
replace-document-tags
Replace document tags
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |
merge-document-tags
Merge document tags
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
documentId | string | yes | Document ID |