{"serverId":"mcp-registry/co.civai.nova/content-calendar-agent","tools":[{"name":"pdf__delete_preview","fixed":{"name":"pdf__delete_preview","description":"Delete one stored PDF draft by preview_id from this chat session only. Hidden from suggestion buttons — agent-only. Returns deleted true/false. Does not remove already-generated public PDF files. Never accept path-like ids.","inputSchema":{"type":"object","required":["preview_id"],"properties":{"preview_id":{"type":"string","description":"Hex preview_id from list_previews / get_preview in THIS session only"},"notification_message":{"type":"string","description":"Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":183,"tokensAfter":183},{"name":"pdf__get_preview","fixed":{"name":"pdf__get_preview","description":"Preview PDF button. Call with no args first: if one draft exists, returns document_markdown; if multiple, returns needs_selection + previews — emit_display layout P (interaction_mode none) numbered picker only. NEVER collect_user_input or emit_display input for preview_id. After user replies with a number/title, call again with preview_id.","inputSchema":{"type":"object","required":[],"properties":{"preview_id":{"type":"string","description":"Optional. Omit on first Preview PDF tap so the tool can list drafts. Pass only after the user picks from the numbered list (or when chat already has a clear id)."},"notification_message":{"type":"string","description":"Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":237,"tokensAfter":237},{"name":"pdf__list_previews","fixed":{"name":"pdf__list_previews","description":"List all stored PDF drafts in this session. Returns previews[{preview_id, title}], count, and most_recent_preview_id. Use when the user taps List PDFs or asks which drafts exist. Does not show document body — follow with get_preview after they pick.","inputSchema":{"type":"object","required":[],"properties":{"notification_message":{"type":"string","description":"Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":154,"tokensAfter":154},{"name":"pdf__preview_document","fixed":{"name":"pdf__preview_document","description":"Write or revise draft markdown into session storage (creates preview_id). Agent-only — not a suggestion button. Use when the user asks to create/write/edit document content. For showing an existing draft use get_preview (Preview PDF). Never put emit_display chrome into content.","inputSchema":{"type":"object","required":["content"],"properties":{"title":{"type":"string","description":"Document title (real topic title, not 'Preview')"},"content":{"type":"string","description":"Full substantive markdown for the PDF pages (use --- between pages; each page needs a heading). Must be the document the user requested — never UI phrases like 'Here is a preview of your PDF document.'"},"update_preview_id":{"type":"string","description":"When the user asks to adjust an existing preview, set this to that preview's preview_id. Omit to create a new preview."},"notification_message":{"type":"string","description":"Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":307,"tokensAfter":307}],"toolsChanged":4,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}