PDF Tables to Excel + True PII Redaction (MCP server)
Pricing
from $20.00 / 1,000 page processed for table extractions
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
16 hours ago
Last modified
Categories
Features
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.
| Tool | What your agent gets back |
|---|---|
extract_tables | Every 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_pdf | A 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/mcpAuthorization: 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 ApifyClientrun = 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) orfile_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)
| Event | USD |
|---|---|
page-extracted: each page processed by extract_tables | 0.02 |
page-redacted: each page processed by redact_pdf (after verification) | 0.04 |
page-ocr: extra charge for each scanned or image page | 0.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
- Invoice & Receipt to JSON + Excel: supplier, dates, VAT and line items, with totals reconciled.
- Bank Statement PDF to CSV/Excel: every transaction, with running balances and opening/closing totals verified.
- PDF Compare: every added, removed or changed passage between two PDF versions, plus an annotated diff PDF.