Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DOCMOST_URLYesThe base URL of your Docmost instance, e.g. https://docmost.example.com
DOCMOST_EMAILNoEmail address for login-based authentication (Option B).
DOCMOST_API_KEYNoAPI key for authentication (Option A). Example: dm_xxx
DOCMOST_PASSWORDNoPassword for login-based authentication (Option B).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_pagesA

Searches pages by keyword (full-text search).

It is a lexical search (PostgreSQL FTS): use meaningful words. Empty-meaning terms ("a", "de", "the") are stopwords and return no results.

get_pageA

Fetches a page: metadata and content.

Returns the page's metadata plus the content field with the full text. Internally it combines /pages/info with /pages/export.

create_pageA

Creates a new page in a space, with or without content.

If you provide content, the page is uploaded through the import endpoint (/pages/import), which is the only REST way that persists the page body in Docmost. The title is taken from the first heading; if you also provide title, that one is used.

update_pageA

Renames a page.

To change the content, use update_page_content.

update_page_contentA

Writes into the body of an already-created page.

Docmost's REST API cannot do this — the body lives in the Yjs collaboration server — so this tool opens the collaboration WebSocket, edits the document and waits for it to be persisted (~13 s).

Unlike /pages/update, which accepts an operation field and ignores it, mode genuinely works here:

  • "replace" (default): the page ends up with exactly this Markdown.

  • "append": keeps what is there and adds this at the end.

  • "prepend": keeps what is there and adds this at the start.

The Markdown is converted with Docmost's own converter, so it supports its whole schema: headings, bold, italics, code, lists, tables, blockquotes, code blocks, etc.

Requires the yjs extra (uv sync --extra yjs).

delete_pageA

Moves a page to the trash (recoverable with restore_page).

restore_pageA

Restores a page that is in the trash.

move_pageA

Moves or reorders a page. Say where it should go; the position is computed.

Three ways to place a page, in order of preference:

  • Nest it: pass parent_page_id and the page becomes a child of that page (appended at the end of its children by default).

  • Reorder it: pass after or before with the id of a sibling to sit next to.

  • Neither: the page is appended at the end of its current parent.

You never have to invent a position. Docmost orders pages with fractional indexing — a base62 string it compares lexicographically, which must be 5-12 characters — and that is fiddly to get right by hand. This tool reads the neighbouring positions and generates a valid one in between.

list_recent_pagesB

Lists recently updated pages.

get_workspace_overviewA

Start here. Lists everything in the workspace: every space and every page.

Use this to answer questions like "what do I have in Docmost?", to take an inventory, or to find a page by title before reading it with get_page. Unlike list_child_pages, it walks the whole page tree, so nested pages are included.

Each page carries id, slug_id, title, parent_page_id and depth, which is enough to rebuild the tree or to list everything flat.

With an activity level above "none" each page also carries updated_at and updated_by, and the result includes recently_updated: the most recently touched pages, newest first. Use it to decide what is worth reading first instead of walking the inventory blindly.

It also returns a summary with counts per space, tree shape (roots, containers, leaves, max depth), date ranges and recency buckets, pages never edited after creation, top editors and any orphaned pages. Every figure comes from data already gathered, so it costs nothing extra; summary.date_coverage states how much of the workspace the date-based numbers actually cover.

list_child_pagesA

Lists only the direct children of a space or a page.

This is one level, not the whole tree. To enumerate everything in the workspace, use get_workspace_overview instead.

get_page_breadcrumbsA

Returns the ancestor path (breadcrumbs) of a page.

get_page_historyC

Lists the version history of a page.

list_spacesB

Lists the spaces the user has access to.

get_spaceC

Gets the details of a space.

create_spaceB

Creates a new space.

get_commentsA

Gets the comments of a page.

create_commentB

Adds a comment to a page.

update_commentB

Updates the content of a comment.

get_current_userA

Returns the authenticated user and workspace information.

list_workspace_membersB

Lists the members of the workspace.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 21 tools

Disambiguation5/5

Each tool targets a distinct resource and action: pages (get/create/update/delete/restore/move/history/breadcrumbs), spaces (list/get/create), comments (get/create/update), and workspace overviews. The only potential overlap between update_page and update_page_content is clearly resolved by descriptions stating one renames and the other edits content. No tools appear to do the same thing.

Naming Consistency5/5

All 21 tools follow a consistent verb_noun pattern in snake_case: get_page, create_comment, list_spaces, update_page_content, delete_page, restore_page, move_page, etc. Verbs like get/list/create/update/delete/restore/move are used predictably, and even compound nouns like workspace_overview and child_pages maintain the pattern. No mixing of conventions.

Tool Count4/5

21 tools is slightly above the typical 3-15 ideal range, but the server covers a broad domain (spaces, pages, comments, workspace info) and each tool has a clear role. While a few could be merged (e.g., get_workspace_overview could subsume list_child_pages), the count is not excessive and fits the scope of a wiki/documentation server.

Completeness4/5

The tool surface covers the full lifecycle for pages (create, get, update content, rename, delete, restore, move, history), spaces (create, list, get), and comments (create, get, update), plus search, breadcrumbs, recent pages, and workspace overview. Missing operations like comment deletion or space updates are minor and can be worked around. Overall, it covers the core domain without dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues