PDF Tables to Excel + True PII Redaction (MCP server) avatar

PDF Tables to Excel + True PII Redaction (MCP server)

Pricing

from $20.00 / 1,000 page processed for table extractions

Go to Apify Store
PDF Tables to Excel + True PII Redaction (MCP server)

PDF Tables to Excel + True PII Redaction (MCP server)

Deterministic MCP tools for AI agents: extract tables from PDFs, scans and images to XLSX/CSV with every figure read twice and totals reconciled; truly redact personal data from PDFs (text removed, not covered) with a hashed log. No LLM inside.

Pricing

from $20.00 / 1,000 page processed for table extractions

Rating

0.0

(0)

Developer

Double AIgents

Double AIgents

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

16 hours ago

Last modified

Features

Limited permissionsSingle-tenantServer interface

Share

Two deterministic document tools for AI agents, served as an MCP server. There is no LLM inside, so the same file gives the same output every time. It runs on CPU and does not call any paid API.

Use it for: invoices, bank statements, price lists and financial reports into spreadsheets; anonymising documents before disclosure, publication, sharing with a supplier or feeding to an LLM; removing personal data from contracts, HR files, case bundles and FOI responses.

Why agents pick it: a figure the agent cannot trust is worse than no figure. Every number is double-read and totals are reconciled, and every redaction is proven by re-extraction, so your agent gets a clear all_ok / verified flag instead of guessing.

ToolWhat your agent gets back
extract_tablesEvery table in a PDF, scanned PDF or image as rows (JSON), plus one XLSX with a sheet per table and a Summary sheet. Every numeric cell is read a second time by an independent method: pdfium reads the cell box for text PDFs, and a separate OCR pass reads each cell for scans. Column sums are reconciled against Subtotal/VAT/Total rows. all_ok: false means a figure or total disagrees, and the summary shows which.
redact_pdfA redacted PDF where the matching text is deleted from the page content stream, not drawn over. Scanned pages are OCR'd and then rasterised with the boxes burned in. The output is re-extracted by two text engines to prove nothing that matches remains (verified: true). You also get a log CSV with page, type, salted hash, method and box. The log never contains the removed text.

Built-in detectors: email, phone_uk, phone_intl, postcode_uk, ni_number, iban (checksum-validated), sort_code, account_number, and date_of_birth (dates near "DOB" or "date of birth"). Add your own terms, such as names, addresses or reference numbers, which are matched case-insensitively. Document metadata (author, title, XMP) and any annotations over redacted text are removed.

Connect

MCP endpoint (streamable HTTP):

https://doubleaigents--pdf-tables-and-true-redaction-mcp.apify.actor/mcp
Authorization: Bearer <APIFY_TOKEN>

Claude Desktop / Cursor style config:

{ "mcpServers": { "docengine": {
"url": "https://doubleaigents--pdf-tables-and-true-redaction-mcp.apify.actor/mcp",
"headers": { "Authorization": "Bearer <APIFY_TOKEN>" } } } }

Or through Apify's hosted MCP gateway, which handles auth for any MCP client:

https://mcp.apify.com?tools=doubleaigents/pdf-tables-and-true-redaction-mcp

Python (batch run with the Apify client):

from apify_client import ApifyClient
run = ApifyClient("<APIFY_TOKEN>").actor("doubleaigents/pdf-tables-and-true-redaction-mcp").call(
run_input={"operation": "extract_tables", "fileUrl": "https://example.com/report.pdf"})
print(run["defaultDatasetId"])

JavaScript:

import { ApifyClient } from 'apify-client';
const run = await new ApifyClient({ token: '<APIFY_TOKEN>' })
.actor('doubleaigents/pdf-tables-and-true-redaction-mcp')
.call({ operation: 'redact_pdf', fileUrl: 'https://example.com/letter.pdf', terms: ['Jane Smith'] });

Tool inputs

extract_tables(file_url | file_base64, filename?, check=true, lang="eng")

redact_pdf(file_url | file_base64, filename?, terms=[], types=[all], ocr_text_layer=true, lang="eng")

  • Send exactly one of file_url (public http/https) or file_base64. Supported files are PDF, PNG, JPG, TIFF, BMP and WEBP, up to 50 MB and 500 pages.
  • Output files come back as a key-value store URL. Files under 8 MB also come back inline as base64.

Pricing (pay per event)

EventUSD
page-extracted: each page processed by extract_tables0.02
page-redacted: each page processed by redact_pdf (after verification)0.04
page-ocr: extra charge for each scanned or image page0.01

You are charged only after a call completes. If your run's maximum charge cannot cover the page count, the call is refused before any work is done.

Limits worth knowing

  • Tables: ruled tables are detected directly. Unruled tables use a word-grid fallback that assumes one text line per row, so multi-line cells split into extra rows. Handwriting is not supported.
  • Redaction: detection uses patterns plus your term list. It is not a named-entity model, so give it the names you need removed. Text inside images on otherwise text-based pages is not OCR'd. Rasterised pages get an OCR text layer, which can contain stray characters near the black boxes.
  • Scans are OCR'd with Tesseract (English by default). Poor scans lower accuracy. When that happens, the second-pass check is what flags it.

FAQ

Is the redacted text really gone? Yes. Text is removed from the page content, not covered with a box. The output is then re-extracted with two independent engines, and verified is true only if none of the redacted strings can be found.

How do I know the table figures are right? With check=true every numeric cell is read a second time independently and totals are reconciled. Any disagreement is listed, and all_ok is false.

Does it use an LLM or send my file anywhere else? No. It runs deterministic code (pdfplumber, pypdf, pdfium, Tesseract) inside the Actor. No third-party API is called.

Can it handle scanned PDFs and photos? Yes, with OCR, at $0.01 extra per scanned page. Accuracy depends on scan quality, and the second-pass check flags doubtful figures.

What does a 10-page PDF cost? Tables: $0.20. Redaction: $0.40. Add $0.10 if all 10 pages are scans.

Batch mode

You can also run the Actor normally with operation, fileUrl, terms and the other inputs. It writes one dataset item, with links to the XLSX or redacted PDF and the log.

Who runs it

Double AIgents Ltd, UK (company no. 17513072). Your input file is processed for the call and not kept by us. Outputs sit in the run's unnamed Apify storage, which Apify removes automatically under its data-retention policy. Need volume pricing, a private deployment or a custom document pipeline? https://www.doubleaigents.com

More tools from Double AIgents