okular-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OKULAR_MCP_AUTHOR | No | Override the author name that marks written by the server carry. Default is 'llm'. | llm |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| viewer_stateA | Which PDF and page Okular is showing. Open Okular windows: document path, current page (1-based) and page count. |
| get_selectionA | Text the user has selected with the mouse, with page and lines. Text currently selected with the mouse ('primary') or on the clipboard ('clipboard'), with the document path, page and line numbers when it is found on the page Okular shows (line numbers match page_text and context). |
| page_textB | Numbered text lines of a page range. Numbered text lines of a page range (default: the page shown in Okular); |
| contextA | The paragraph around the user's mouse selection. The paragraph around the user's current mouse selection (or |
| linksA | Links on a page with their targets, to follow citations yourself. Links on a page (default: the page shown): anchor text and line, then the target page and line for internal links (citations, sections, figures) or the URL. Follow one with page_text(page=..., lines="<target_line>-..."). |
| outlineC | The document's table of contents. The document's bookmark tree (sections with page numbers), a map of the paper. |
| annotationsB | All highlights, notes and attachments saved in the PDF. All annotations in the PDF (default: the open document): page, type, author, highlighted text, note. Only annotations saved to the file are visible. |
| mark_textA | Highlight, underline, squiggle or strike out a passage, with a note. Mark every occurrence of |
| add_noteA | Put a comment icon in the margin, or reply to an annotation. Comment icon in the margin: level with |
| attach_fileB | Embed a text file (Markdown, Mermaid) as a paperclip annotation. Embed a text file (e.g. notes.md, diagram.mmd) as a paperclip annotation in the margin, level with |
| read_attachmentB | Read an attached file back as text. Contents of a file-attachment annotation (an xref from |
| remove_annotationB | Delete an annotation by xref. Delete an annotation by the |
| gotoA | Jump Okular to a page for the user. Jump Okular to |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool targets a distinct resource or action: viewer state, selection, page text, context around selection, links, outline, annotations, annotation creation/reading/removal, and navigation. Slight conceptual overlap exists between context/page_text and mark_text/add_note, but the descriptions clearly delimit them.
All names use snake_case, but the pattern mixes noun phrases (viewer_state, annotations, outline) with verb_noun forms (get_selection, mark_text, remove_annotation, goto). It remains readable, but there is no single predictable convention across the set.
13 tools is well within the ideal range and matches a PDF reading/annotation server's scope. Each tool represents a distinct operation, and none feels redundant or excessively granular.
The surface covers reading, navigation, annotation creation/reading/deletion, and attachments. Minor gaps remain: no explicit save or full-text search operation, and annotations cannot be modified in place, but the core lifecycle is covered.