Skip to main content
Glama
juergenkoller-software

PDF Content Search MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PDF_CS_HOSTNoHost to reach the app127.0.0.1
PDF_CS_PORTNoPort of the app's API server44477
PDF_CS_TOKENYesBearer token matching the app's API Server token (required)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_documentsA

Full-text search across all indexed PDF documents. Returns matching documents with snippets and match counts.

get_document_textA

Get the full OCR text content of a document. Returns text organized by page.

get_document_metadataA

Get metadata for a document: file name, path, page count, file size, processing state, and folder reference.

list_foldersA

List all indexed document folders with their IDs and paths.

list_folder_contentsB

List documents in a specific folder with processing state. Supports pagination.

get_processing_statusA

Get OCR processing statistics: total documents, counts by state (completed, not_processed, processing, error, etc.), per-folder breakdown.

get_document_thumbnailA

Get a PNG thumbnail of a specific document page. Returns base64-encoded image data.

export_documentsB

Export OCR text and metadata for multiple documents at once. Useful for bulk text extraction.

get_app_statusA

Get application health status, version, uptime, and active port.

get_ui_stateA

Get current UI state: selected document, list item count, search/browse mode, focused field.

get_search_stateA

Get the currently animated OCR hit rects on the document preview. Returns the active search text, per-rect page index, matched text, and the four corner points in normalized page coordinates [0.0..1.0] (origin top-left). Use this to debug highlights drawn outside the page bounds.

ui_searchA

Trigger a search in the app UI. Sets the search text and initiates the search, returning the result count.

ui_navigateC

Navigate in the document list: move up/down, jump to first/last, or go to a specific index.

ui_select_documentB

Select a specific document by ID or index in the current list.

ui_screenshotA

Take a screenshot of the main application window. Returns base64-encoded PNG image.

open_in_finderA

Reveal a document in macOS Finder by document_id or file_path. Only works when the app runs on the same Mac as the MCP client.

open_document_externalA

Open a document (by document_id or file_path) with the default macOS application, e.g. Preview for PDFs. Only works when the app runs on the same Mac as the MCP client.

reprocess_documentA

Re-queue a document for OCR processing. Useful when OCR failed or the document was updated.

rescan_folderA

Rescan a folder (by folder_id) for new or changed files. Initiates an asynchronous folder scan.

get_license_statusA

Get current license status: state (active/trial/grace/inactive/blocked), entitlement kind, expiration, days left, provider source, last sync date, and any issues.

refresh_licenseB

Refresh license status by re-syncing with the license server. Use force=true to bypass cache.

get_settingsA

Get current app settings. Specify a category or omit for all settings.

get_mail_message_metadataA

Read header and mailbox metadata for an Apple Mail message by RFC message-id. Requires Apple Mail indexing to be enabled.

open_in_apple_mailA

Open Apple Mail and jump to the message with the given RFC message-id. Only works when MCP client and app run on the same Mac.

get_mail_index_statusB

Returns Apple Mail indexer status: enabled flag, is_indexing, indexed_count, last_seen_rowid, envelope_index_path/readable, MailFtsSqlite db path.

get_mail_recentA

Returns the most recently indexed mails from MailFtsSqlite with subject/sender/date/snippet preview.

get_mail_mailboxesA

Returns mailbox-rowid + URL pairs from the Apple Mail Envelope Index for account-filter setup.

setup_apple_mailB

Configure Apple Mail indexing programmatically: bookmark mail_root (default ~/Library/Mail), optionally clear the index, set OCR size limit and account filter, then enable. Avoids the onboarding sheet entirely.

disable_apple_mailA

Disable Apple Mail indexing and remove the sidebar item. Index is kept on disk.

clear_mail_indexA

Wipe MailFtsSqlite rows and reset the indexer cursor to 0. Next index run will re-read from scratch.

reindex_apple_mailB

Trigger an indexer run. Pass restart=true to stop the current task first.

get_mail_full_index_statusA

Counters across all mailFtsMeta rows: success, empty, failed, pending. Use to verify completeness of Apple Mail index.

list_incomplete_mailsA

List Apple Mail records that are not 'success' (empty/failed/pending) with externalId, attemptCount, errorReason, envelopeRowid.

retry_incomplete_mailsA

Reset attemptCount and indexStatus='pending' for all non-success records and trigger an indexer run. Pulls newly-arrived .emlx bodies in.

cleanup_stale_mail_metaC

GC stale records: 'empty' with attemptCount>=10 older than 30 days, 'failed' older than 90 days.

list_mail_cloud_jobsA

List Office-attachment Cloud-Jobs (mailCloudJobs). Returns per-job docPortJobId, status, attemptCount, attachment metadata. Use status filter for slice.

retry_failed_mail_cloud_jobsA

Reset all 'failed' Office-attachment Cloud-Jobs to 'pending' with attemptCount=0, then trigger an immediate worker-tick.

cancel_pending_mail_cloud_jobsA

Cancel all 'pending' Office-attachment Cloud-Jobs (set status='notSupported', reason='user cancelled').

tick_mail_cloud_workerA

Trigger an immediate MailCloudWorker tick (process downloaded/pending/polling jobs now instead of waiting for the 30-second timer).

get_mail_detailA

Full detail of an indexed mail by external-id (RFC message-id): header fields, mailbox, attachment list and indexed body/attachment text.

get_mail_by_rowidB

Peek at an indexed mail by its MailFtsSqlite rowid. Returns subject/sender/date/snippet for that single row.

reveal_mail_in_finderA

Reveal the .emlx file of an indexed mail in Finder (falls back to opening it in Apple Mail). Only works on the same Mac as the app.

list_mail_attachmentsA

List attachments of an indexed mail: external files from the Apple Mail Attachments folder plus inline MIME parts. Returns name, size, content_type and kind (external/inline).

get_mail_attachmentA

Fetch a single attachment of an indexed mail by name. Returns base64 by default; for large attachments pass save_to_path to write the file to disk instead of returning base64.

get_document_ocr_rectsA

Get OCR bounding boxes for a document: per-rect page index, recognised text and x/y/width/height in normalized page coordinates. Optionally filter by page.

get_folder_statsA

Get aggregate stats for a folder: total documents, total pages and a breakdown by processing state.

get_folder_processing_statusA

Get the OCR processing status of a folder: whether it is currently processing plus counts for processing/pending/completed/failed.

get_processing_progressA

Get the live OCR processing progress: is_processing flag, total/processed item counts and progress percent.

list_recent_scansA

List recently scanned items with file name/path/type, creation date and read state.

get_unread_scan_countA

Get the number of recently scanned items not yet marked as read.

mark_scan_as_readB

Mark a recent scan item as read by its scan ID.

add_folderA

Add a folder to the indexed search folders by absolute path. The path must exist and be a directory.

delete_folderA

Remove a folder (by folder_id) from the index. Destructive. Requires confirm=true.

delete_documentA

Delete a single document (by document_id) from the index. Destructive. Requires confirm=true.

bulk_delete_documentsA

Delete multiple documents (document_ids) from the index at once. Destructive. Requires confirm=true.

patch_settings_searchB

Update search settings. Accepted fields: case_sensitive, fuzzy_search, whole_word, max_results, search_in_filenames, highlight_matches, auto_search, snippet_length, exclude_patterns, min_query_length.

patch_settings_processingB

Update OCR/processing settings. Accepted fields: ocr_enabled, ocr_language, auto_process_new, max_concurrent_tasks, process_images, process_pdfs, thumbnail_quality, ocr_quality, max_file_size_mb.

patch_settings_appearanceC

Update appearance settings. Accepted fields: theme, accent_color, sidebar_visible, list_density, show_thumbnails, font_size, grid_view.

patch_settings_sharingC

Update mobile-sharing settings. Accepted fields: enabled, require_approval, share_name, max_devices, auto_accept_known, read_only, sharee_key.

ui_list_itemsA

List the items currently shown in the app's document list.

ui_get_zoomA

Get the document preview zoom state: zoom_level, min/max zoom and fit_mode.

ui_set_zoomB

Set the document preview zoom. Pass zoom_level (a value between min and max) and/or fit_mode.

ui_get_pageA

Get the current page state of the document preview: current_page and total_pages.

ui_set_pageA

Navigate the document preview. Pass action (first/prev/next/last) or page (1-based page number).

ui_get_transcriptA

Get the transcript panel state: visible flag and mode.

ui_set_transcriptA

Set the transcript panel. Pass visible (bool) and/or mode (e.g. split / searchResults).

ui_get_sortA

Get the current list sort order plus the list of available sort orders.

ui_set_sortA

Set the list sort order. Pass sort with one of the values returned by ui_get_sort (e.g. relevance / new2Old / old2New / a2z / z2a).

ui_get_filtersA

Get the active list filters: file_types, date_range and folders.

ui_set_filtersA

Set list filters. Pass file_types (array), date_range (string) and/or clear=true to reset all filters first.

ui_get_popupsA

List the popups/sheets currently presented in the app UI.

ui_dismiss_popupB

Dismiss a presented popup/sheet in the app UI.

ui_list_alertsA

List the NSAlerts currently shown by the app: title, message, window and button titles.

ui_dismiss_alertA

Dismiss active app alerts. Pass button_title or button_index to click a specific button, or dismiss_all=true to close every open alert.

activate_licenseA

Activate a license using license_key. Sensitive. Requires confirm=true.

deactivate_licenseA

Deactivate the current license. Sensitive. Requires confirm=true.

request_trialA

Start a trial period. Sensitive. Requires confirm=true.

get_cloud_statusA

Get cloud-service status: enabled flag, conditions_accepted, number of scanned folders and item counts by state.

list_cloud_itemsA

List cloud-service items across all folders with file path, folder, state and modification date. Optionally filter by state.

cloud_syncA

Control the cloud service. Pass enabled to toggle it (requires accept_conditions=true once), or omit to run a cleanup of completed items.

get_mobile_sync_statusA

Get mobile-sync status: number of connected folders, HTTP folders and polling state.

list_mobile_devicesA

List folders shared with mobile devices including backend, client identifier and last sync timestamps.

mobile_syncB

Trigger a mobile sync. Pass folder_path to sync a single connected folder, or omit to sync all.

confirm_mobile_pairingA

Confirm a mobile-device pairing using the 9-digit code. Sensitive. Requires confirm=true.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/juergenkoller-software/pdf-content-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server