omitly-mcp 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,15 +9,17 @@ anywhere**. Redaction runs on-device through the Omitly engine and returns a
9
9
  signed audit log proving the data was removed — the opposite of pasting a
10
10
  confidential file into a chat model.
11
11
 
12
- **Four of the nine tools (`find_sensitive_regions`, `locate_text`,
13
- `check_redaction`, `verify_redaction`) work out of the box — `npm install`,
14
- no Rust toolchain, no native binary, no desktop app.** They run on a
15
- wasm-bindgen build of the same detector that powers the web leak-checker at
16
- omitly.app, bundled directly in this package. `create_pdf`, the two
17
- write tools (`redact_pdf`, `redact_by_entity`), and `verify_seal` still need
18
- a configured native engine — see "Build & run" below. `verify_seal` has no
19
- wasm fallback at all: there is no wasm seal-verification path, so it always
20
- requires the native engine.
12
+ **Five of the eleven tools (`find_sensitive_regions`, `locate_text`,
13
+ `check_redaction`, `verify_redaction`, `extract_pdf_text`) work out of the
14
+ box — `npm install`, no Rust toolchain, no native binary, no desktop app.**
15
+ They run on a wasm-bindgen build of the same detector that powers the web
16
+ leak-checker at omitly.app, bundled directly in this package. `create_pdf`,
17
+ the two write tools (`redact_pdf`, `redact_by_entity`), and the two
18
+ seal-verification tools (`verify_seal`, `verify_document`) still need a
19
+ configured native engine — see "Build & run" below. Neither seal tool has a
20
+ wasm fallback yet: there is no wasm seal-verification path (tracked in
21
+ issue #113), so both always require the native engine, even though checking
22
+ a seal needs no licence.
21
23
 
22
24
  ## Tools
23
25
 
@@ -25,10 +27,13 @@ requires the native engine.
25
27
  |------|--------------|
26
28
  | `find_sensitive_regions` | Scans a PDF on-device and returns PII candidates — email/SSN/phone/card plus Australian identifiers (TFN, ABN, ACN, Medicare, Centrelink CRN, IHI, BSB; check-digit validated where a published algorithm exists) — with page + exact coordinates, so the agent selects by entity and never guesses geometry. Best-effort pattern matching, not a compliance assessment. Optional `regions` (`generic`/`us`/`au`) narrows the listed kinds. |
27
29
  | `locate_text` | Resolves literal strings the model supplies (names, addresses — anything regex can't catch) to their page + coordinates. The model does the recognition; the engine does the geometry. |
30
+ | `check_redaction` | Audits an ALREADY-redacted PDF and reports whether sensitive text still survives underneath the redaction marks, in prior incremental-update revisions, metadata, AcroForm fields, or attachments — the "did my black boxes actually remove the data?" check, with a coverage report scoping what was inspected. Free tier (wasm) is EVALUATION-marked and capped to a monthly number of free checks; a configured licensed engine is not capped. |
31
+ | `extract_pdf_text` | Extracts a PDF's full text, page by page, PII-MASKED BY DEFAULT so raw sensitive values never flood the model's context window. Each page's `spans` report the CHAR offset (not byte offset) and kind of every masked value, so an agent can still reason about position without seeing the raw value. `masked: false` is a documented, explicit opt-in to raw text. Free, no licence, works out of the box on the bundled wasm engine — a native engine is preferred when available (also enables the `regions` filter; wasm ignores it and scans every pattern). Never renders pages to images. |
28
32
  | `redact_by_entity` | One-shot: find + filter by kind (`email`/`ssn`/`phone`/`card`/`tfn`/`abn`/`acn`/`medicare`/`crn`/`ihi`/`bsb`) and/or `regions` + redact + verify. The "just scrub the obvious PII" shortcut. |
29
33
  | `redact_pdf` | Removes the underlying data from given regions of a PDF, verifies nothing survives, writes the redacted file, and returns the audit log. |
30
34
  | `verify_redaction` | Re-scans an already-redacted PDF and returns the verification verdict — the redaction-completeness check. |
31
35
  | `verify_seal` | Cryptographically checks a PDF's embedded Omitly audit report and trailing Ed25519 tamper-evidence seal — the tamper-evidence check, distinct from `verify_redaction`. **Integrity, not identity:** the signing key is per-install and rides inside the file, so a valid seal means "unchanged since sealed by the holder of this key", never "produced by Omitly" — compare `sealFingerprint` out-of-band for origin. Requires a native engine; no wasm fallback exists. |
36
+ | `verify_document` | Recipient trust-verification (omitly#113): the same seal/report check as `verify_seal` — not a survivor re-scan — aimed at someone who *received* a PDF from someone else and wants to confirm it's authentic and unaltered, without paying or licensing anything. Free, no licence. Currently requires a native engine like `verify_seal` (no wasm seal-verification path yet). |
32
37
  | `create_pdf` | Generates a clean PDF from Markdown/HTML on-device, rendered through a real browser engine so it looks printed — instead of writing a throwaway reportlab/LaTeX script. |
33
38
  | `check_license` | Reports the current licence or trial state — tier, trial days left, the vendor-signed licensee name, which resolution step supplied the licence, and whether it is bound to this machine. Free, takes no arguments, reads no document, and is re-resolved on every call so buy → save licence → call again works without a restart. **Never returns the device fingerprint or the licence file's contents** — device binding is a yes/no. Requires a native engine: the wasm free tier has no licence concept. |
34
39
 
@@ -63,7 +68,7 @@ See [DEMO.md](./DEMO.md) for a full Claude Code walkthrough.
63
68
 
64
69
  ## Status
65
70
 
66
- The MCP surface (nine tools, schemas, transport), the native engine binary
71
+ The MCP surface (eleven tools, schemas, transport), the native engine binary
67
72
  (`crates/omitly-cli`, built as `omitly-redact`), and the bundled wasm engine
68
73
  (`crates/leakcheck-wasm`, covering the four free tools without a native
69
74
  binary) are all implemented and pass end-to-end tests. `find_sensitive_regions`
@@ -91,6 +96,22 @@ a JSON response from stdout. Any failure returns `{ "ok": false, "error": "..."
91
96
  // `preview` is masked — the raw value never leaves the process; redaction is driven by coordinates.
92
97
  ```
93
98
 
99
+ ```jsonc
100
+ // stdin — "masked" omitted ⇒ true (the default); pass "masked": false for the
101
+ // documented raw-text opt-in. "regions" narrows detected kinds (generic
102
+ // kinds like email/card always apply).
103
+ { "command": "extract_text", "pdfPath": "..." }
104
+ // stdout — "spans" offsets are CHAR (not byte) offsets into "text", valid
105
+ // against either the masked or the raw text of the same page (masking never
106
+ // changes a page's character count). A page that could not be decoded
107
+ // reports "contentDecoded": false with empty text/spans rather than being
108
+ // silently skipped.
109
+ { "ok": true, "masked": true, "pages": [
110
+ { "page": 0, "contentDecoded": true,
111
+ "text": "Sensitive sample line: SSN •••-••-6789",
112
+ "spans": [ { "kind": "ssn", "start": 24, "end": 35 } ] } ] }
113
+ ```
114
+
94
115
  ```jsonc
95
116
  // stdin
96
117
  { "command": "redact", "pdfPath": "...", "outputPath": "...",
@@ -124,10 +145,14 @@ a JSON response from stdout. Any failure returns `{ "ok": false, "error": "..."
124
145
  "sourceFilename": "...", "outputFilename": "..." }
125
146
  ```
126
147
 
148
+ The MCP tool `verify_document` (omitly#113) shells out to the exact same
149
+ `verify_seal` engine command above — it is the recipient-facing name/wording
150
+ for the same seal/report integrity check, not a separate engine command.
151
+
127
152
  ## Build & run
128
153
 
129
154
  **Free tools only (find_sensitive_regions, locate_text, check_redaction,
130
- verify_redaction) — no native engine needed:**
155
+ verify_redaction, extract_pdf_text) — no native engine needed:**
131
156
 
132
157
  ```bash
133
158
  cd omitly-mcp
@@ -142,11 +167,11 @@ source** (this repo) does need `wasm-pack` (`cargo install wasm-pack`) and
142
167
  the `wasm32-unknown-unknown` target, since `npm run build` regenerates the
143
168
  wasm bundle from `../crates/leakcheck-wasm` via `npm run build:wasm`.
144
169
 
145
- **Everything, including `create_pdf`, `verify_seal`, and the two write tools
146
- (`redact_pdf`, `redact_by_entity`):** `verify_seal` has no wasm fallback —
147
- unlike the four free tools above, it always needs the native engine
148
- configured, even though it carries no licence requirement (see "Licensing"
149
- below).
170
+ **Everything, including `create_pdf`, `verify_seal`, `verify_document`, and
171
+ the two write tools (`redact_pdf`, `redact_by_entity`):** neither seal tool
172
+ has a wasm fallback — unlike the five free tools above, they always need the
173
+ native engine configured, even though checking a seal carries no licence
174
+ requirement (see "Licensing" below).
150
175
 
151
176
  ```bash
152
177
  # 1. Build the local engine binaries (from the repo root)
@@ -163,8 +188,10 @@ One env var covers both binaries: `OMITLY_ENGINE_DIR` is the directory holding
163
188
  `omitly-redact` and `omitly-pdf`. Per-binary overrides (`OMITLY_REDACT_BIN`,
164
189
  `OMITLY_PDF_BIN`) win over the directory when set. When `OMITLY_ENGINE_DIR`
165
190
  (or `OMITLY_REDACT_BIN`) isn't set, `find_sensitive_regions`, `locate_text`,
166
- and `check_redaction` transparently use the bundled wasm engine instead —
167
- same detector, no native binary. `verify_redaction` does too, but with a
191
+ `check_redaction`, and `extract_pdf_text` transparently use the bundled wasm
192
+ engine instead — same detector, no native binary (`extract_pdf_text`'s
193
+ optional `regions` filter is native-only; wasm scans every pattern and notes
194
+ that the filter was ignored). `verify_redaction` does too, but with a
168
195
  narrower check: without a native engine there's no `<path>.audit.json`
169
196
  sidecar to verify specific regions against, so it falls back to a general
170
197
  re-scan of the whole file (still useful — a non-empty result still means the
@@ -200,23 +227,25 @@ same machine) runs unmarked; otherwise the shared 14-day trial applies and
200
227
  the audit output is permanently marked as evaluation output. The redaction
201
228
  itself is never degraded, and licence checks never touch the network.
202
229
  `find_sensitive_regions`, `locate_text`, `check_redaction`, `verify_redaction`,
203
- and `verify_seal` are free — and `verify_redaction`/`verify_seal` are free
204
- forever with **no cap and no marking** (recipient-side verification everywhere
205
- is the point). The two free *detection* tools (`find_sensitive_regions`,
206
- `check_redaction`) on the wasm tier — i.e. with no native engine configured —
207
- are metered (omitly#226): results carry an `evaluation: true` flag plus an
208
- EVALUATION banner, and after a monthly number of free checks (default 10,
209
- `OMITLY_FREE_CAP` to tune) the tool returns a structured
210
- `{ blocked: true, reason: "free-cap" }` refusal until the month rolls over.
211
- The count lives in `~/.omitly/usage.json` (override the directory with
212
- `OMITLY_STATE_DIR`; written 0600) and is **local-only — nothing ever phones
213
- home**; deleting the file resets the free count, which is accepted (the
214
- no-network doctrine makes it unavoidable), and the counter is deliberately
215
- never consulted by any paid write path. Calls served by a configured native
216
- engine are not metered here — that user is in the engine funnel, where the
217
- licence rules above apply. `verify_seal` (native-only) stays free by the same
218
- design in `crates/omitly-cli` (no Pro/Personal licence check on that command
219
- path either).
230
+ `verify_seal`, `verify_document`, and `extract_pdf_text` are free — and
231
+ `verify_redaction`/`verify_seal`/`verify_document`/`extract_pdf_text` are free
232
+ forever with **no cap and no marking** (recipient-side verification and
233
+ on-device extraction are the point, not a metered funnel). The two free
234
+ *detection* tools (`find_sensitive_regions`, `check_redaction`) on the wasm
235
+ tier — i.e. with no native engine configured — are metered (omitly#226):
236
+ results carry an `evaluation: true` flag plus an EVALUATION banner, and after
237
+ a monthly number of free checks (default 10, `OMITLY_FREE_CAP` to tune) the
238
+ tool returns a structured `{ blocked: true, reason: "free-cap" }` refusal
239
+ until the month rolls over. The count lives in `~/.omitly/usage.json`
240
+ (override the directory with `OMITLY_STATE_DIR`; written 0600) and is
241
+ **local-only — nothing ever phones home**; deleting the file resets the free
242
+ count, which is accepted (the no-network doctrine makes it unavoidable), and
243
+ the counter is deliberately never consulted by any paid write path. Calls
244
+ served by a configured native engine are not metered here — that user is in
245
+ the engine funnel, where the licence rules above apply. `verify_seal` and
246
+ `verify_document` (both native-only) stay free by the same design in
247
+ `crates/omitly-cli` (no Pro/Personal licence check on that command path
248
+ either — both tools shell out to the identical `verify_seal` engine command).
220
249
 
221
250
  ## Register with Claude Code
222
251
 
package/dist/index.js CHANGED
@@ -34,10 +34,12 @@ import { allowedRoot, confineInput, confineOutput } from "./paths.js";
34
34
  import { isSealErrorVerdict, normalizeSealResult, SEAL_VERDICTS, } from "./seal.js";
35
35
  import { evaluationBanner, freeCapRefusal, recordFreeCheck, } from "./usage.js";
36
36
  /**
37
- * WASM fallback for the four detection/verify tools — bundled in the npm
37
+ * WASM fallback for five detection/verify/extract tools — bundled in the npm
38
38
  * package (see package.json "files"/"build:wasm"), so `find_sensitive_regions`,
39
- * `locate_text`, `check_redaction` and `verify_redaction` work out of the box
40
- * with NO native engine binary and NO Rust toolchain on the caller's machine.
39
+ * `locate_text`, `check_redaction`, `verify_redaction` and `extract_pdf_text`
40
+ * (omitly#1169 — the last of the free tools to gain this, see that issue for
41
+ * why it didn't ship with the others) work out of the box with NO native
42
+ * engine binary and NO Rust toolchain on the caller's machine.
41
43
  * This is the wasm-bindgen twin of `redaction-core`'s detector (same crate
42
44
  * already shipped for the web leak-checker at omitly.app) — detection-only,
43
45
  * no qpdf/process/filesystem, so it crosses to wasm cleanly.
@@ -92,6 +94,18 @@ function runWasmLocate(bytes, needles) {
92
94
  return { ok: false, error: raw.error ?? "wasm locate failed" };
93
95
  return { ok: true, count: raw.count, regions: raw.leaks };
94
96
  }
97
+ /** Wasm `extract_text`'s output shape is already identical to the native
98
+ * `extract_text` command's (`{ ok, masked, pages }`, camelCase — see
99
+ * `crates/leakcheck-wasm/src/lib.rs`'s doc comment on why that binding
100
+ * doesn't just derive `Serialize` on the crate's own snake_case types), so
101
+ * unlike `runWasmScan`/`runWasmLocate` there is no shape translation here —
102
+ * `extract_pdf_text`'s handler below works unchanged regardless of engine. */
103
+ function runWasmExtractText(bytes, masked) {
104
+ if (!wasmEngine) {
105
+ return { ok: false, error: "bundled wasm engine not built — run `npm run build` (needs wasm-pack + Rust)" };
106
+ }
107
+ return JSON.parse(wasmEngine.extract_text(new Uint8Array(bytes), masked));
108
+ }
95
109
  /** Single source of truth for the server version (keeps the MCP handshake in
96
110
  * lockstep with the published package). */
97
111
  const VERSION = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
@@ -428,6 +442,67 @@ function toOutputSeal(res) {
428
442
  outputFilename: res.outputFilename,
429
443
  };
430
444
  }
445
+ /** Shared core for `verify_seal` and `verify_document` (omitly#113) — both
446
+ * tools check exactly the same thing (the CLI's `verify_seal` engine
447
+ * command: the embedded audit report + trailing Ed25519 seal) and only
448
+ * differ in their tool name/description and the wording of their summary
449
+ * text, so the confine → runEngine → normalize → schema-check pipeline
450
+ * lives here once. Currently native-engine-only — there is no wasm
451
+ * seal-verification path yet (omitly-seal itself has no filesystem/process
452
+ * dependency and could in principle cross to wasm, but that compilation
453
+ * work has not been done; see the #113 issue thread's 2026-08-14 note). */
454
+ async function runSealVerification(pdfPath) {
455
+ const confined = confineInput(pdfPath, ROOT);
456
+ const raw = await runEngine({ command: "verify_seal", pdfPath: confined });
457
+ if (!raw?.ok) {
458
+ return { ok: false, errorText: raw?.error ?? "unknown error" };
459
+ }
460
+ const res = normalizeSealResult(raw);
461
+ const structuredContent = checked(verifySealOutputSchema, toOutputSeal(res));
462
+ return { ok: true, res, structuredContent };
463
+ }
464
+ /** One PII span located within a page's extracted text — CHAR (Unicode
465
+ * scalar value) offsets, never byte offsets (mirrors `redaction_core::
466
+ * detect::TextSpan`; see that type's doc comment for why). Never a raw
467
+ * value: just the kind and where it sits, so a caller receiving MASKED
468
+ * text still learns what was found and where. */
469
+ const textSpanOutputSchema = z
470
+ .object({ kind: z.string(), start: z.number().int().min(0), end: z.number().int().min(0) })
471
+ .strict();
472
+ const extractedPageOutputSchema = z
473
+ .object({
474
+ page: z.number().int(),
475
+ /** `false` ⇒ this page's content stream could not be read (size cap or
476
+ * parse failure) — `text` is empty because it was never scanned, not
477
+ * because the page is blank. */
478
+ contentDecoded: z.boolean(),
479
+ /** Masked (default) or raw text, per the `masked` tool argument. */
480
+ text: z.string(),
481
+ spans: z.array(textSpanOutputSchema),
482
+ })
483
+ .strict();
484
+ export const extractPdfTextOutputSchema = z
485
+ .object({
486
+ /** Echoes which mode actually ran — `true` unless the caller explicitly
487
+ * passed `masked: false`. */
488
+ masked: z.boolean(),
489
+ pages: z.array(extractedPageOutputSchema),
490
+ /** Set when a `regions` filter was requested but ignored — the wasm
491
+ * fallback (no native engine configured) always scans every pattern,
492
+ * same posture as `findSensitiveRegionsOutputSchema`'s `note`. */
493
+ note: z.string().optional(),
494
+ })
495
+ .strict();
496
+ /** Copy only the known-safe fields off an engine-returned extracted page —
497
+ * same allowlist defense as `toOutputRegion`/`toOutputAudit`. */
498
+ function toOutputExtractedPage(p) {
499
+ return {
500
+ page: p.page,
501
+ contentDecoded: p.contentDecoded,
502
+ text: p.text,
503
+ spans: (p.spans ?? []).map((s) => ({ kind: s.kind, start: s.start, end: s.end })),
504
+ };
505
+ }
431
506
  export const checkRedactionOutputSchema = z
432
507
  .object({
433
508
  clean: z.boolean(),
@@ -569,8 +644,22 @@ function findViaEngineOrWasm(confinedPath, regions) {
569
644
  }
570
645
  return res;
571
646
  }
647
+ /** Run "extract_text" via the native engine if configured, else the bundled
648
+ * wasm fallback (omitly#1169) — same posture as `findViaEngineOrWasm`:
649
+ * regional narrowing only applies natively, wasm always scans every
650
+ * pattern (more results, never fewer) rather than silently dropping the
651
+ * requested narrowing. */
652
+ function extractTextViaEngineOrWasm(confinedPath, regions, masked) {
653
+ if (ENGINE_BIN)
654
+ return runEngine({ command: "extract_text", pdfPath: confinedPath, regions, masked });
655
+ const res = runWasmExtractText(readFileSync(confinedPath), masked);
656
+ if (res.ok && regions && regions.length) {
657
+ res.note = "Regional narrowing (regions filter) needs a native engine — showing all detected kinds.";
658
+ }
659
+ return res;
660
+ }
572
661
  /**
573
- * Registers all 9 tools on a given `McpServer` instance. Extracted from
662
+ * Registers all 10 tools on a given `McpServer` instance. Extracted from
574
663
  * module-level top code (#540) so tests can build an in-memory server +
575
664
  * client pair and drive the tools directly, without a child-process stdio
576
665
  * client. `index.ts`'s own module body stays a thin bin entry — see the
@@ -845,7 +934,11 @@ export function registerTools(server) {
845
934
  "file wasn't redacted by this tool), it falls back to a general on-device " +
846
935
  "re-scan of the whole file and reports whether anything is still " +
847
936
  "detectable — a good-faith re-check, not a claim of the same rigor as the " +
848
- "sidecar-based path.",
937
+ "sidecar-based path. This is a self-check for the person who just " +
938
+ "redacted, typically the one holding the sidecar file — a third-party " +
939
+ "recipient who only has the delivered PDF should use `verify_document` " +
940
+ "instead, which checks the embedded audit report and seal rather than " +
941
+ "re-scanning region bytes.",
849
942
  inputSchema: {
850
943
  pdfPath: z.string().describe("absolute path to the redacted PDF to verify"),
851
944
  },
@@ -1034,16 +1127,14 @@ export function registerTools(server) {
1034
1127
  outputSchema: verifySealOutputSchema,
1035
1128
  }, async ({ pdfPath }) => {
1036
1129
  try {
1037
- const confined = confineInput(pdfPath, ROOT);
1038
- const raw = await runEngine({ command: "verify_seal", pdfPath: confined });
1039
- if (!raw?.ok) {
1130
+ const result = await runSealVerification(pdfPath);
1131
+ if (!result.ok) {
1040
1132
  return {
1041
- content: [{ type: "text", text: `Could not verify seal: ${raw?.error ?? "unknown error"}` }],
1133
+ content: [{ type: "text", text: `Could not verify seal: ${result.errorText}` }],
1042
1134
  isError: true,
1043
1135
  };
1044
1136
  }
1045
- const res = normalizeSealResult(raw);
1046
- const structuredContent = checked(verifySealOutputSchema, toOutputSeal(res));
1137
+ const { res, structuredContent } = result;
1047
1138
  if (res.verdict === "seal_unsupported_version") {
1048
1139
  return {
1049
1140
  content: [
@@ -1089,6 +1180,87 @@ export function registerTools(server) {
1089
1180
  };
1090
1181
  }
1091
1182
  });
1183
+ server.registerTool("verify_document", {
1184
+ description: "Recipient trust-verification: for someone who RECEIVED a PDF from " +
1185
+ "someone else and wants to confirm it's an authentic, unaltered Omitly " +
1186
+ "output — free tier, no licence required. Confirms the embedded audit " +
1187
+ "report and Ed25519 tamper-evidence seal are valid and unaltered since " +
1188
+ "sealing, and reports the seal's own attested verdict — this does not " +
1189
+ "independently re-scan the document for residual PII. For that " +
1190
+ "self-check (typically run by the person who just redacted, not a " +
1191
+ "recipient), use `verify_redaction` instead. The seal proves " +
1192
+ "INTEGRITY, NOT IDENTITY: the signing key is per-install and travels " +
1193
+ "with the file, so a valid seal means 'unchanged since sealed by the " +
1194
+ "holder of this key', never 'produced by Omitly' — compare " +
1195
+ "`sealFingerprint` out-of-band against the fingerprint the sender " +
1196
+ "published if origin matters. Currently requires a configured native " +
1197
+ "engine (OMITLY_ENGINE_DIR/OMITLY_REDACT_BIN) — there is no wasm " +
1198
+ "seal-verification path yet (tracked in issue #113), so a recipient " +
1199
+ "running only `npx omitly-mcp` with no engine installed cannot use " +
1200
+ "this tool until that lands. A `seal_unsupported_version` verdict " +
1201
+ "means this verifier is too old to check the seal at all — that is " +
1202
+ "neither a pass nor a fail; update the verifier rather than trusting " +
1203
+ "or rejecting the file on that basis.",
1204
+ inputSchema: {
1205
+ pdfPath: z.string().describe("absolute path to the PDF to check for an Omitly audit report and seal"),
1206
+ },
1207
+ outputSchema: verifySealOutputSchema,
1208
+ }, async ({ pdfPath }) => {
1209
+ try {
1210
+ const result = await runSealVerification(pdfPath);
1211
+ if (!result.ok) {
1212
+ return {
1213
+ content: [{ type: "text", text: `Could not verify document: ${result.errorText}` }],
1214
+ isError: true,
1215
+ };
1216
+ }
1217
+ const { res, structuredContent } = result;
1218
+ if (res.verdict === "seal_unsupported_version") {
1219
+ return {
1220
+ content: [
1221
+ {
1222
+ type: "text",
1223
+ text: `⚠️ This file carries a seal version (${res.sealVersion ?? "unknown"}) this verifier ` +
1224
+ "does not implement. Nothing was cryptographically checked — this is " +
1225
+ "neither a pass nor a fail. Update the verifier to get a real verdict." +
1226
+ (res.carriesAuditReport
1227
+ ? " The file DOES carry an Omitly audit report, which raises the stakes: " +
1228
+ "an altered-and-relabelled Omitly output can look exactly like this " +
1229
+ "to a verifier that's too old to check the seal — treat this as needing " +
1230
+ "escalation, not a benign version mismatch."
1231
+ : " No Omitly audit report was found alongside it.") +
1232
+ `\n\n${JSON.stringify(res, null, 2)}`,
1233
+ },
1234
+ ],
1235
+ structuredContent,
1236
+ };
1237
+ }
1238
+ // Same non-overclaim discipline as verify_seal (CLAUDE.md invariant #2):
1239
+ // integrity only, never an origin/production claim.
1240
+ const summary = res.verdict === "verified"
1241
+ ? `✅ This document's audit report and seal are intact — unchanged since they were sealed. ` +
1242
+ `That is an INTEGRITY check, not proof of origin: the signing key is per-install and ` +
1243
+ `ships with the file, so compare the fingerprint (${res.sealFingerprint ?? "none reported"}) ` +
1244
+ `out-of-band against what the sender published if you need to know who sealed it. This did ` +
1245
+ `NOT re-scan the document for residual PII — use \`verify_redaction\` for that.`
1246
+ : res.verdict === "no_report"
1247
+ ? `⚠️ No Omitly audit report was found in this document — there is nothing here for this ` +
1248
+ `tool to verify. This does not mean the document is unsafe, only that it was not sealed ` +
1249
+ `by (or the report was stripped from) this pipeline.`
1250
+ : `⚠️ Seal verdict: ${res.verdict} — do not treat this file's audit trail as trustworthy.`;
1251
+ return {
1252
+ content: [{ type: "text", text: `${summary}\n\n${JSON.stringify(res, null, 2)}` }],
1253
+ structuredContent,
1254
+ isError: isSealErrorVerdict(res.verdict),
1255
+ };
1256
+ }
1257
+ catch (e) {
1258
+ return {
1259
+ content: [{ type: "text", text: `Could not verify document: ${e.message}` }],
1260
+ isError: true,
1261
+ };
1262
+ }
1263
+ });
1092
1264
  server.registerTool("create_pdf", {
1093
1265
  description: "Generate a clean PDF from Markdown (or raw HTML) on-device, rendered through " +
1094
1266
  "a real browser engine so it looks printed — not like a script's best guess. " +
@@ -1268,8 +1440,79 @@ export function registerTools(server) {
1268
1440
  };
1269
1441
  }
1270
1442
  });
1443
+ server.registerTool("extract_pdf_text", {
1444
+ description: "Extract a PDF's text, page by page, for reading or summarizing — PII-MASKED " +
1445
+ "BY DEFAULT, so detected emails, SSNs, phone/card numbers and Australian " +
1446
+ "identifiers (TFN/ABN/ACN/Medicare/CRN/IHI/BSB) never flood your context window " +
1447
+ "as raw values. Each page returns its (masked, unless you opt out) text plus " +
1448
+ "'spans': the CHAR offset (not byte offset — matters for any non-ASCII text) of " +
1449
+ "every detected PII value with its kind, so you can still reason about WHERE " +
1450
+ "something was found even though the value itself reads as a masked preview " +
1451
+ "(e.g. '•••-••-6789'). Pass 'masked: false' ONLY when you deliberately need the " +
1452
+ "raw text for genuine content review and understand the raw PII values will then " +
1453
+ "appear verbatim in this response and in your context — that is the explicit, " +
1454
+ "documented opt-in this tool requires; the default is always masked. A page " +
1455
+ "whose content stream could not be read (corrupt or size-capped) reports " +
1456
+ "'contentDecoded: false' with empty text rather than being silently skipped or " +
1457
+ "counted as blank. Does NOT render pages to images — text only. Free tier, no " +
1458
+ "licence required; works zero-install via the bundled wasm engine, same as " +
1459
+ "find_sensitive_regions/locate_text/check_redaction/verify_redaction — a " +
1460
+ "configured native engine (OMITLY_ENGINE_DIR) is preferred when available (also " +
1461
+ "enables the 'regions' filter, wasm-only ignores it and scans every pattern) but " +
1462
+ "not required. The file is never uploaded: extraction runs entirely on-device.",
1463
+ inputSchema: {
1464
+ pdfPath: z.string().describe("absolute path to the PDF to extract text from"),
1465
+ regions: z
1466
+ .array(REGIONS)
1467
+ .optional()
1468
+ .describe("narrow which PII kinds are detected/masked to these regional packs (generic " +
1469
+ "kinds like email/card always apply regardless); omit to scan everything — " +
1470
+ "the safe default"),
1471
+ masked: z
1472
+ .boolean()
1473
+ .optional()
1474
+ .describe("false is an explicit opt-in to RAW (unmasked) text — the raw PII values will " +
1475
+ "then appear verbatim in this response. Omit, or pass true, for the default " +
1476
+ "masked behaviour."),
1477
+ },
1478
+ outputSchema: extractPdfTextOutputSchema,
1479
+ }, async ({ pdfPath, regions, masked }) => {
1480
+ try {
1481
+ const confined = confineInput(pdfPath, ROOT);
1482
+ const wantMasked = masked ?? true;
1483
+ const res = await extractTextViaEngineOrWasm(confined, regions, wantMasked);
1484
+ if (!res?.ok) {
1485
+ return {
1486
+ content: [{ type: "text", text: `Extraction failed: ${res?.error ?? "unknown error"}` }],
1487
+ isError: true,
1488
+ };
1489
+ }
1490
+ const pages = res.pages ?? [];
1491
+ const totalSpans = pages.reduce((n, p) => n + (Array.isArray(p.spans) ? p.spans.length : 0), 0);
1492
+ const summary = `Extracted ${pages.length} page(s).\n` +
1493
+ (wantMasked
1494
+ ? `${totalSpans} PII span(s) masked — pass masked:false for raw text (raw PII ` +
1495
+ `values will then appear in this response).\n\n`
1496
+ : `⚠️ RAW TEXT requested (masked:false) — ${totalSpans} PII span(s) are flagged ` +
1497
+ `in "spans" but "text" itself is UNMASKED.\n\n`) +
1498
+ (res.note ? `Note: ${res.note}\n\n` : "") +
1499
+ JSON.stringify(pages, null, 2);
1500
+ const structuredContent = checked(extractPdfTextOutputSchema, {
1501
+ masked: wantMasked,
1502
+ ...(res.note ? { note: res.note } : {}),
1503
+ pages: pages.map(toOutputExtractedPage),
1504
+ });
1505
+ return { content: [{ type: "text", text: summary }], structuredContent };
1506
+ }
1507
+ catch (e) {
1508
+ return {
1509
+ content: [{ type: "text", text: `Could not extract text: ${e.message}` }],
1510
+ isError: true,
1511
+ };
1512
+ }
1513
+ });
1271
1514
  } // end registerTools
1272
- /** Create a fresh `McpServer` with all 9 tools registered — used by both the
1515
+ /** Create a fresh `McpServer` with all 10 tools registered — used by both the
1273
1516
  * bin entry below and tests. */
1274
1517
  export function createServer() {
1275
1518
  const server = new McpServer({ name: "omitly-mcp", version: VERSION });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omitly-mcp",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "type": "module",
5
5
  "description": "Model Context Protocol server exposing Omitly's local, verifiable PDF redaction to AI agents. Redaction runs on-device — documents are never uploaded.",
6
6
  "keywords": [
package/skill/SKILL.md CHANGED
@@ -49,6 +49,14 @@ removes the underlying bytes and independently verifies each region is empty.
49
49
  Report it that way, and point the user at `sealFingerprint` for out-of-band
50
50
  comparison if they care about origin.
51
51
 
52
+ - **"I received this PDF from someone else — is it genuine?" (recipient, not
53
+ the person who redacted it)** → `verify_document` (omitly#113). Same
54
+ check as `verify_seal` above (identical verdicts, same integrity-not-identity
55
+ caveat) — it exists as a separate, recipient-worded tool/description so the
56
+ guarantee it makes (report+seal integrity) isn't confused with
57
+ `verify_redaction`'s survivor re-scan. Also currently native-engine-only —
58
+ there is no wasm seal-verification path yet.
59
+
52
60
  ## Rules
53
61
 
54
62
  1. **Never echo a raw sensitive value.** The tools return *masked* previews
@@ -6,6 +6,38 @@
6
6
  */
7
7
  export function engine_version(): string;
8
8
 
9
+ /**
10
+ * Extract a PDF's text page by page, with PII spans, entirely client-side —
11
+ * the wasm twin of `extract_text`, giving `extract_pdf_text` the same
12
+ * zero-install fallback its four detection siblings (`scan`/`locate`, native
13
+ * names `find`/`locate_text`) already have (omitly#1169). It was the one
14
+ * free MCP tool that silently required a native engine while its siblings
15
+ * ran on bundled wasm.
16
+ *
17
+ * Called from JS as `extract_text(new Uint8Array(arrayBuffer), masked)`.
18
+ * Output shape is `{ ok, masked, pages: [{ page, contentDecoded, text,
19
+ * spans: [{ kind, start, end }] }] }` — deliberately identical to
20
+ * `omitly-cli`'s native `extract_text` command (`do_extract_text` in
21
+ * `crates/omitly-cli/src/main.rs`), so the MCP server's
22
+ * `toOutputExtractedPage` mapping works unchanged regardless of which engine
23
+ * produced the result.
24
+ *
25
+ * `spans[].start`/`end` are CHAR (Unicode scalar value) offsets, never byte
26
+ * offsets — see `TextSpan`'s doc comment in `redaction_core::detect` for
27
+ * why (a mask replacement character is 3 UTF-8 bytes but 1 char, so only
28
+ * char offsets stay valid across the masked/raw distinction; this crate has
29
+ * been bitten by byte-vs-char confusion before, omitly#744's `café`
30
+ * fixture). This binding does not recompute them, only serializes what
31
+ * `extract_text` already produced in char space — verified unchanged by
32
+ * this crate's own non-ASCII regression test.
33
+ *
34
+ * Unlike the native path, region narrowing (`extract_text_in`) is not
35
+ * exposed here: wasm always scans every pattern, the same "more results,
36
+ * never fewer" posture `findViaEngineOrWasm` already applies to
37
+ * `find_sensitive_regions`'s wasm fallback.
38
+ */
39
+ export function extract_text(bytes: Uint8Array, masked: boolean): string;
40
+
9
41
  /**
10
42
  * Locate literal strings (names, addresses — whatever the caller's own entity
11
43
  * recognition turns up) and return their masked positions, the wasm twin of the
@@ -22,6 +22,59 @@ function engine_version() {
22
22
  }
23
23
  exports.engine_version = engine_version;
24
24
 
25
+ /**
26
+ * Extract a PDF's text page by page, with PII spans, entirely client-side —
27
+ * the wasm twin of `extract_text`, giving `extract_pdf_text` the same
28
+ * zero-install fallback its four detection siblings (`scan`/`locate`, native
29
+ * names `find`/`locate_text`) already have (omitly#1169). It was the one
30
+ * free MCP tool that silently required a native engine while its siblings
31
+ * ran on bundled wasm.
32
+ *
33
+ * Called from JS as `extract_text(new Uint8Array(arrayBuffer), masked)`.
34
+ * Output shape is `{ ok, masked, pages: [{ page, contentDecoded, text,
35
+ * spans: [{ kind, start, end }] }] }` — deliberately identical to
36
+ * `omitly-cli`'s native `extract_text` command (`do_extract_text` in
37
+ * `crates/omitly-cli/src/main.rs`), so the MCP server's
38
+ * `toOutputExtractedPage` mapping works unchanged regardless of which engine
39
+ * produced the result.
40
+ *
41
+ * `spans[].start`/`end` are CHAR (Unicode scalar value) offsets, never byte
42
+ * offsets — see `TextSpan`'s doc comment in `redaction_core::detect` for
43
+ * why (a mask replacement character is 3 UTF-8 bytes but 1 char, so only
44
+ * char offsets stay valid across the masked/raw distinction; this crate has
45
+ * been bitten by byte-vs-char confusion before, omitly#744's `café`
46
+ * fixture). This binding does not recompute them, only serializes what
47
+ * `extract_text` already produced in char space — verified unchanged by
48
+ * this crate's own non-ASCII regression test.
49
+ *
50
+ * Unlike the native path, region narrowing (`extract_text_in`) is not
51
+ * exposed here: wasm always scans every pattern, the same "more results,
52
+ * never fewer" posture `findViaEngineOrWasm` already applies to
53
+ * `find_sensitive_regions`'s wasm fallback.
54
+ * @param {Uint8Array} bytes
55
+ * @param {boolean} masked
56
+ * @returns {string}
57
+ */
58
+ function extract_text(bytes, masked) {
59
+ let deferred2_0;
60
+ let deferred2_1;
61
+ try {
62
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
63
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export3);
64
+ const len0 = WASM_VECTOR_LEN;
65
+ wasm.extract_text(retptr, ptr0, len0, masked);
66
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
67
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
68
+ deferred2_0 = r0;
69
+ deferred2_1 = r1;
70
+ return getStringFromWasm0(r0, r1);
71
+ } finally {
72
+ wasm.__wbindgen_add_to_stack_pointer(16);
73
+ wasm.__wbindgen_export2(deferred2_0, deferred2_1, 1);
74
+ }
75
+ }
76
+ exports.extract_text = extract_text;
77
+
25
78
  /**
26
79
  * Locate literal strings (names, addresses — whatever the caller's own entity
27
80
  * recognition turns up) and return their masked positions, the wasm twin of the
Binary file
@@ -2,6 +2,7 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const engine_version: (a: number) => void;
5
+ export const extract_text: (a: number, b: number, c: number, d: number) => void;
5
6
  export const locate: (a: number, b: number, c: number, d: number, e: number) => void;
6
7
  export const scan: (a: number, b: number, c: number) => void;
7
8
  export const __wbindgen_export: (a: number) => void;