# 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#L7086-L7102)
- **Output:** [`ListControlDocumentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7104-L7115)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19169–L19180 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19169-L19180)

### `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#L8623-L8668)
- **Output:** [`ListDocumentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8670-L8681)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19481–L19492 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19481-L19492)

### `getDocument` — Get Document

Get a document by ID.

- **Input:** [`GetDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8683-L8690)
- **Output:** [`GetDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8692-L8698)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19493–L19504 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19493-L19504)

### `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#L8700-L8733)
- **Output:** [`AddDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8735-L8742)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19505–L19516 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19505-L19516)

### `updateDocument` — Update Document

Update an existing document.

- **Input:** [`UpdateDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8762-L8804)
- **Output:** [`UpdateDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8806-L8814)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19517–L19528 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19517-L19528)

### `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#L8816-L8823)
- **Output:** [`DeleteDocumentDraftOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8825-L8831)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19529–L19540 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19529-L19540)

### `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#L8833-L8840)
- **Output:** [`ArchiveDocumentOutput`](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 · L19541–L19552 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19541-L19552)

### `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#L8850-L8857)
- **Output:** [`UnarchiveDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8859-L8865)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19553–L19564 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19553-L19564)

### `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#L8867-L8891)
- **Output:** [`ListDocumentVersionsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8893-L8905)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19565–L19576 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19565-L19576)

### `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#L8907-L8914)
- **Output:** [`GetDocumentVersionOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8916-L8923)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19577–L19588 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19577-L19588)

### `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#L9043-L9059)
- **Output:** [`ListDocumentRevisionsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9061-L9080)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19589–L19600 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19589-L19600)

### `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#L9082-L9100)
- **Output:** [`GetDocumentHistorySnapshotOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9102-L9116)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19601–L19612 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19601-L19612)

### `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#L9118-L9131)
- **Output:** [`RestoreDocumentHistoryOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9133-L9139)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19613–L19624 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19613-L19624)

### `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#L9141-L9156)
- **Output:** [`PublishDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9158-L9171)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19625–L19636 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19625-L19636)

### `deleteDocument` — Delete Document

Delete a document.

- **Input:** [`DeleteDocumentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9173-L9180)
- **Output:** [`DeleteDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9182-L9189)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19637–L19648 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19637-L19648)

### `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#L9191-L9223)
- **Output:** [`ListDocumentVersionSignaturesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9225-L9236)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19649–L19660 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19649-L19660)

### `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#L9238-L9245)
- **Output:** [`GetDocumentVersionSignatureOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9247-L9253)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19661–L19672 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19661-L19672)

### `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#L9255-L9266)
- **Output:** [`RequestDocumentVersionSignatureOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9268-L9274)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19673–L19684 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19673-L19684)

### `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#L9276-L9283)
- **Output:** [`CancelSignatureRequestOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9285-L9292)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19685–L19696 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19685-L19696)

### `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#L9294-L9301)
- **Output:** [`VoidDocumentVersionApprovalOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9303-L9309)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19697–L19708 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19697-L19708)

### `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#L9311-L9321)
- **Output:** [`ApproveDocumentVersionOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9323-L9329)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19709–L19720 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19709-L19720)

### `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#L9331-L9341)
- **Output:** [`RejectDocumentVersionOutput`](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 · L19721–L19732 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19721-L19732)

### `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#L9351-L9358)
- **Output:** [`SignDocumentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9360-L9366)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19733–L19744 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19733-L19744)

### `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#L9368-L9384)
- **Output:** [`ListDocumentVersionApprovalQuorumsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9386-L9397)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20496–L20507 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20496-L20507)

### `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#L9399-L9406)
- **Output:** [`GetDocumentVersionApprovalQuorumOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9408-L9414)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20508–L20519 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20508-L20519)

### `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#L9416-L9440)
- **Output:** [`ListDocumentVersionApprovalDecisionsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9442-L9453)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20520–L20531 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20520-L20531)

### `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#L9455-L9462)
- **Output:** [`GetDocumentVersionApprovalDecisionOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L9464-L9470)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L20532–L20543 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L20532-L20543)

### `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#L17666-L17684)
- **Output:** [`UploadFileOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17686-L17702)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L22416–L22427 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L22416-L22427)
