Outline
Conventions and efficient workflows for Outline knowledge bases via mcp-outline tools. Use when creating, editing, restructuring, or diagramming Outline documents — covers Outline markdown quirks (mermaidjs code fences), document and collection structure, string-match editing, staged rewrites, batch operations, and search status filters.From its SKILL.md
npx -y skills add Vortiago/mcp-outline --skill outlineAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.2 KB, as published. Nobody here has run it
Working with Outline
Markdown
- Mermaid diagrams need
```mermaidjsfences, NOT```mermaid— the wrong fence silently renders as a plain code block. - Otherwise standard markdown. Use ATX headings (
#–######); they power the TOC and section tools.
Structure
- Collections contain documents; documents nest via
parent_document_id. Browse:list_collections,get_collection_structure. - Lifecycle: draft → published → archived → trash (30-day recovery
via
restore_document;delete_document(permanent=True)is unrecoverable). create_document(template=True)/update_document(template=True)adds to the "New from template" picker.- Titles are not unique; resolve to IDs with
get_document_id_from_titleorsearch_documents. Checkget_document_backlinksbefore restructuring or deleting.
Search defaults to published only
Drafts and archived docs are invisible to search_documents and
list_recently_updated_documents unless widened:
status_filter=["draft", "published", "archived"].
Reading large documents
get_document_toc— headings with 0-based line numbers.read_document_section(heading=...)— case-insensitive substring; accepts headings as the TOC prints them (e.g."## Background").search_document_content(query=...)— grep within the document: matching lines with line numbers and context. Use it to locate text foredit_documentold_strings orread_documentoffsets.read_document(offset=N, limit=M)— TOC/grep line numbers are valid offsets.
Full read_document only for small documents.
Editing
- Default to
edit_document: eachold_stringmust match exactly once (add surrounding context to disambiguate); edits apply sequentially, all-or-nothing. Batch all edits for one document into a single call. update_documentonly for full replacement, title changes, orappend=True(sends just the chunk).
Staged rewrites
edit_document(id, edits=[...], save=False) # stage, repeat as needed
edit_document(id, edits=[...], save=True) # final batch + push all
edit_document(id, edits=[], save=True) # or: flush only
One API write total. Staged changes are server-memory only — flush
before ending; a restart discards them. Read tools show staged text
with an "unsaved changes" notice; export_document bypasses staging
and returns the last saved content.
Many documents
Use batch_create_documents, batch_update_documents,
batch_move_documents, batch_archive_documents,
batch_delete_documents (10–50 per call; per-document results)
instead of loops.
Missing tools
Deployments may be read-only, delete-disabled, or scope-filtered. Use what's listed; if an editing tool is absent, say so.
Exploration
For broad search-and-summarize, delegate to the outline-explorer
agent (bundled with this plugin).