omitly-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QPDF_BIN | No | Path to the qpdf executable. Default: looked up on PATH. | |
| OMITLY_PDF_BIN | No | Path to the omitly-pdf binary used for the create_pdf tool. | |
| OMITLY_FREE_CAP | No | Monthly number of free checks before the free tier returns a refusal. Default: 10. | 10 |
| OMITLY_STATE_DIR | No | Directory for state files (e.g., usage.json). Default: ~/.omitly. | |
| OMITLY_ENGINE_DIR | No | Directory containing the Omitly engine binaries (omitly-redact and omitly-pdf). Enables native-engine tools. | |
| OMITLY_REDACT_BIN | No | Path to the omitly-redact binary used for native redaction tools. When not set, detection tools use the bundled wasm engine. | |
| OMITLY_ALLOWED_DIR | No | Allowed directory for all file operations. Defaults to the directory the server was started in. | |
| OMITLY_BROWSER_BIN | No | Override the browser executable used for PDF generation (create_pdf). | |
| OMITLY_LICENSE_FILE | No | Path to a Pro or Personal license file to run redaction without evaluation marking. | |
| OMITLY_ENGINE_TIMEOUT_MS | No | Timeout in milliseconds for engine processes. Default: 120000. | 120000 |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_sensitive_regionsA | Scan a PDF on-device and return candidate regions that look like PII — emails, US SSNs, phone numbers, card numbers, and Australian identifiers (TFN, ABN, ACN, Medicare, Centrelink CRN, IHI, BSB; kinds 'tfn'/'abn'/'acn'/'medicare'/'crn'/'ihi'/'bsb') — each with the page and exact coordinates (in PDF points) the redaction engine needs. Use this FIRST so you select regions by entity ('redact every TFN') and pass the returned coordinates straight to redact_pdf, instead of guessing geometry from a rendered page. Numeric kinds are check-digit validated where a published algorithm exists (CRN has none — its matches are format-only). Candidates are best-effort pattern matches for review — not a completeness guarantee and not a compliance assessment; the file is never uploaded — detection runs locally. Each candidate carries a MASKED preview (e.g. '•••-••-6789'), never the raw value: the secret stays on the machine. You don't need the plaintext to redact — drive it by page + coordinates. (A human reviewer has the file open locally for full context.) Free tier (no native engine): results are EVALUATION-marked and limited to a monthly number of free checks, counted locally — past the cap this tool returns a structured 'free-cap' refusal. A configured licensed engine is not capped. |
| locate_textA | Locate exact text strings in a PDF and return each occurrence's page and coordinates (in PDF points). Use this for what pattern-matching can't catch — names, addresses, account references — by doing the entity recognition YOURSELF and passing the literal strings here; the engine resolves where they sit so you never guess geometry from a rendered page. Feed the returned regions straight to redact_pdf. Case-insensitive; a string the PDF splits across text operators may not match as one run. Each hit returns a masked preview, not the raw text. Nothing is uploaded. |
| redact_by_entityA | Find and redact PII in a PDF in ONE on-device step: scan, keep only the requested entity kinds (email/ssn/phone/card plus the Australian tfn/abn/acn/medicare/crn/ihi/bsb — omit |
| redact_pdfA | Permanently redact regions of a PDF on-device using Omitly. Removes the underlying text and image data (not a black box over it), verifies nothing survives in each region, and returns a signed audit log. The file is never uploaded — redaction happens locally. |
| verify_redactionA | Re-scan an already-redacted PDF on-device and confirm nothing recoverable remains. With a configured native engine and this file's own |
| verify_sealA | Verify a PDF's embedded Omitly audit report and trailing Ed25519 tamper-evidence seal — on-device, nothing uploaded. Distinct from |
| create_pdfA | Generate a clean PDF from Markdown (or raw HTML) on-device, rendered through a real browser engine so it looks printed — not like a script's best guess. Give it Markdown inline via |
| check_redactionA | Audit an ALREADY-redacted PDF and report whether sensitive text still survives underneath the redaction — the 'did my black boxes actually remove the data?' check. Most tools redact by drawing a rectangle over text while leaving the characters in the file, where they stay selectable and extractable. This re-extracts the text on-device and flags any emails, SSNs, phone or card numbers that are still present, each with a MASKED preview — the raw value never leaves the machine. It checks the page text layer, text surviving UNDER redaction marks, incremental-update prior revisions (the classic 'redacted then saved, original still in the file' failure), document metadata, AcroForm field values and embedded attachments, and returns a coverage report so a clean result is scoped to what was inspected. A non-empty result means the redaction leaked. Nothing is uploaded. (Pattern-based: names/addresses, image-only text, and the surfaces listed as not-inspected aren't covered; absence of hits isn't proof of completeness.) Free tier (no native engine): reports are EVALUATION-marked — for evaluation, not production reliance — and limited to a monthly number of free checks, counted locally; past the cap this tool returns a structured 'free-cap' refusal. A configured licensed engine is not capped. |
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 8 tools
Each tool has a distinct role, though verify_redaction and check_redaction both audit redacted PDFs from different angles, which could cause minor selection confusion. The descriptions clearly differentiate them, and other overlapping pairs (find_sensitive_regions vs redact_by_entity) are separated by scan-only vs scan-and-redact.
All tool names follow a consistent verb_noun snake_case pattern (find_sensitive_regions, redact_pdf, verify_redaction, etc.). This uniform convention makes the toolset predictable and easy to navigate.
With 8 tools, the server is well-scoped for a PDF redaction workflow. Each tool covers a specific stage—detection, location, redaction, verification, sealing, and creation—without unnecessary redundancy.
The toolset covers the full PDF redaction lifecycle: create_pdf generates input, find_sensitive_regions/locate_text detect targets, redact_by_entity/redact_pdf perform redaction, and verify_redaction/check_redaction/verify_seal provide comprehensive verification. No obvious dead ends or missing operations.