update_document
Modify existing documents in Outline wiki by editing titles, content, or appending new information to maintain current documentation.
Instructions
Update an existing document. Can append content with append mode.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | ||
| title | No | ||
| text | No | ||
| append | No |
Implementation Reference
- src/lib/handlers/documents.ts:70-89 (handler)Core implementation of the update_document tool handler. Checks access, fetches existing content if appending, constructs payload, calls Outline API /documents.update, returns formatted result.async update_document(args: UpdateDocumentInput) { checkAccess(config, 'update_document'); let text = args.text; if (args.append && args.text) { const { data: existing } = await apiCall(() => apiClient.post<OutlineDocument>('/documents.info', { id: args.documentId }) ); text = (existing.text || '') + '\n\n' + args.text; } const payload: Record<string, unknown> = { id: args.documentId }; if (args.title) payload.title = args.title; if (text !== undefined) payload.text = text; const { data } = await apiCall(() => apiClient.post<OutlineDocument>('/documents.update', payload) ); return docResult(data, MESSAGES.DOCUMENT_UPDATED); },
- src/lib/schemas.ts:50-55 (schema)Zod schema defining input for update_document: documentId (required), title/text (optional), append (boolean). Used for validation and type inference.export const updateDocumentSchema = z.object({ documentId, title: z.string().min(1).optional(), text: z.string().optional(), append: z.boolean().default(false), });
- src/lib/tools.ts:80-84 (registration)Registers the update_document tool definition with name, description, and schema reference for MCP tool discovery.createTool( 'update_document', 'Update an existing document. Can append content with append mode.', 'update_document' ),