# Documents and approvals MCP tools

This page documents **28 tools** in the documents and approvals group. Return to the [complete MCP tool reference](/docs/developers/api/mcp/tools) to browse another group.

Select a tool to inspect its schemas and behavior. Schema links open the exact definition in GitHub.

### `listControlDocuments` — List Control Documents

List documents linked to a control.

- **Input:** [`ListControlDocumentsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7069-L7085)
- **Output:** [`ListControlDocumentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7087-L7098)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19124–L19135 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19124-L19135)

### `listDocuments` — List Documents

List documents for the organization. By default only ACTIVE documents are returned; pass status filter to include ARCHIVED.

- **Input:** [`ListDocumentsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8606-L8651)
- **Output:** [`ListDocumentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8653-L8664)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19436–L19447 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19436-L19447)

### `getDocument` — Get Document

Get a document by ID.

- **Input:** [`GetDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8666-L8673)
- **Output:** [`GetDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8675-L8681)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19448–L19459 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19448-L19459)

### `addDocument` — Add Document

Add a new document to the organization.

- **Input:** [`AddDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8683-L8716)
- **Output:** [`AddDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8718-L8725)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19460–L19471 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19460-L19471)

### `updateDocument` — Update Document

Update an existing document.

- **Input:** [`UpdateDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8745-L8787)
- **Output:** [`UpdateDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8789-L8797)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19472–L19483 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19472-L19483)

### `deleteDocumentDraft` — Delete Document Draft

Delete the latest draft version of a document, reverting to the last published version. Cannot delete the initial v0.1 draft.

- **Input:** [`DeleteDocumentDraftInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8799-L8806)
- **Output:** [`DeleteDocumentDraftOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8808-L8814)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19484–L19495 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19484-L19495)

### `archiveDocument` — Archive Document

Archive a document to prevent further modifications.

- **Input:** [`ArchiveDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8816-L8823)
- **Output:** [`ArchiveDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8825-L8831)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19496–L19507 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19496-L19507)

### `unarchiveDocument` — Unarchive Document

Unarchive a document to allow modifications again.

- **Input:** [`UnarchiveDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8833-L8840)
- **Output:** [`UnarchiveDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8842-L8848)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19508–L19519 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19508-L19519)

### `listDocumentVersions` — List Document Versions

List all versions for a document.

- **Input:** [`ListDocumentVersionsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8850-L8874)
- **Output:** [`ListDocumentVersionsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8876-L8888)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19520–L19531 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19520-L19531)

### `getDocumentVersion` — Get Document Version

Get a document version by ID.

- **Input:** [`GetDocumentVersionInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8890-L8897)
- **Output:** [`GetDocumentVersionOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8899-L8906)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19532–L19543 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19532-L19543)

### `listDocumentRevisions` — List Document Revisions

List revisions for a document.

- **Input:** [`ListDocumentRevisionsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9026-L9042)
- **Output:** [`ListDocumentRevisionsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9044-L9063)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19544–L19555 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19544-L19555)

### `getDocumentHistorySnapshot` — Get Document History Snapshot

Materialize document content at given Automerge heads with edit highlights.

- **Input:** [`GetDocumentHistorySnapshotInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9065-L9083)
- **Output:** [`GetDocumentHistorySnapshotOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9085-L9099)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19556–L19567 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19556-L19567)

### `restoreDocumentHistory` — Restore Document History

Restore a draft document to a prior history point.

- **Input:** [`RestoreDocumentHistoryInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9101-L9114)
- **Output:** [`RestoreDocumentHistoryOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9116-L9122)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19568–L19579 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19568-L19579)

### `publishDocument` — Publish Document

Publish the latest draft of a document. Set minor=true to publish a minor version (no approval flow). When minor=false, providing approver_ids triggers an approval request as a new major version; otherwise the draft is published immediately as a new major version.

- **Input:** [`PublishDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9124-L9139)
- **Output:** [`PublishDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9141-L9154)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19580–L19591 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19580-L19591)

### `deleteDocument` — Delete Document

Delete a document.

- **Input:** [`DeleteDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9156-L9163)
- **Output:** [`DeleteDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9165-L9172)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19592–L19603 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19592-L19603)

### `listDocumentVersionSignatures` — List Document Version Signatures

List all signatures for a document version.

- **Input:** [`ListDocumentVersionSignaturesInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9174-L9206)
- **Output:** [`ListDocumentVersionSignaturesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9208-L9219)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19604–L19615 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19604-L19615)

### `getDocumentVersionSignature` — Get Document Version Signature

Get a document version signature by ID.

- **Input:** [`GetDocumentVersionSignatureInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9221-L9228)
- **Output:** [`GetDocumentVersionSignatureOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9230-L9236)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19616–L19627 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19616-L19627)

### `requestDocumentVersionSignature` — Request Document Version Signature

Request a signature for a document version.

- **Input:** [`RequestDocumentVersionSignatureInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9238-L9249)
- **Output:** [`RequestDocumentVersionSignatureOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9251-L9257)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19628–L19639 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19628-L19639)

### `cancelSignatureRequest` — Cancel Signature Request

Cancel a document version signature request.

- **Input:** [`CancelSignatureRequestInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9259-L9266)
- **Output:** [`CancelSignatureRequestOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9268-L9275)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19640–L19651 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19640-L19651)

### `voidDocumentVersionApproval` — Void Document Version Approval

Void a pending document version approval request.

- **Input:** [`VoidDocumentVersionApprovalInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9277-L9284)
- **Output:** [`VoidDocumentVersionApprovalOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9286-L9292)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19652–L19663 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19652-L19663)

### `approveDocumentVersion` — Approve Document Version

Approve a document version pending approval as the authenticated user.

- **Input:** [`ApproveDocumentVersionInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9294-L9304)
- **Output:** [`ApproveDocumentVersionOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9306-L9312)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19664–L19675 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19664-L19675)

### `rejectDocumentVersion` — Reject Document Version

Reject a document version pending approval as the authenticated user.

- **Input:** [`RejectDocumentVersionInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9314-L9324)
- **Output:** [`RejectDocumentVersionOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9326-L9332)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19676–L19687 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19676-L19687)

### `signDocument` — Sign Document

Sign a document version as the authenticated user.

- **Input:** [`SignDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9334-L9341)
- **Output:** [`SignDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9343-L9349)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19688–L19699 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19688-L19699)

### `listDocumentVersionApprovalQuorums` — List Document Version Approval Quorums

List approval quorums for a document version.

- **Input:** [`ListDocumentVersionApprovalQuorumsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9351-L9367)
- **Output:** [`ListDocumentVersionApprovalQuorumsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9369-L9380)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20451–L20462 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20451-L20462)

### `getDocumentVersionApprovalQuorum` — Get Document Version Approval Quorum

Get a document version approval quorum by ID.

- **Input:** [`GetDocumentVersionApprovalQuorumInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9382-L9389)
- **Output:** [`GetDocumentVersionApprovalQuorumOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9391-L9397)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20463–L20474 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20463-L20474)

### `listDocumentVersionApprovalDecisions` — List Document Version Approval Decisions

List approval decisions for an approval quorum.

- **Input:** [`ListDocumentVersionApprovalDecisionsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9399-L9423)
- **Output:** [`ListDocumentVersionApprovalDecisionsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9425-L9436)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20475–L20486 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20475-L20486)

### `getDocumentVersionApprovalDecision` — Get Document Version Approval Decision

Get a document version approval decision by ID.

- **Input:** [`GetDocumentVersionApprovalDecisionInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9438-L9445)
- **Output:** [`GetDocumentVersionApprovalDecisionOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9447-L9453)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20487–L20498 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20487-L20498)

### `uploadFile` — Upload File

Upload a private file for an image or file node in rich text.

- **Input:** [`UploadFileInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17621-L17639)
- **Output:** [`UploadFileOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17641-L17657)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L22371–L22382 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L22371-L22382)
