# extract_pdf_ocr

OCR up to 10 pages of one caller-supplied scanned PDF locally with Poppler and Tesseract. Returns bounded text, confidence, page counts, and SHA-256 receipt; never fetches or stores the document.

Agent View of the PolicyLayer registry record for `extract_pdf_ocr`. HTML page: https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/extract-pdf-ocr

## Facts

- Tool: `extract_pdf_ocr`
- Server: Delx Mcp A2a (`https://api.delx.ai/v1/mcp`) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- Homepage: https://github.com/davidmosiah/delx-platform
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: yes
- Parameters: 5 (1 required)
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `psm` | integer | no | Tesseract page segmentation mode for machine-printed text. |
| `max_chars` | integer | no |  |
| `max_pages` | integer | no |  |
| `pdf_base64` | string | yes | One base64-encoded PDF up to 4 MiB decoded; application/pdf data URIs are accepted. |
| `file_base64` | string | no | Alias for pdf_base64. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "extract_pdf_ocr",
    "arguments": {
      "pdf_base64": "<pdf_base64>"
    }
  }
}
```

## Why extract_pdf_ocr is rated Low

The tool performs optical character recognition on a caller-supplied PDF document and returns extracted text data. This is a data retrieval operation with no side effects—it reads content without modifying, deleting, or executing anything. The explicit note that it 'never fetches or stores the document' confirms no persistent state changes.

From the tool's own definition: "Tool description states it 'extract[s]' text from PDFs using OCR, 'Returns bounded text, confidence, page counts, and SHA-256 receipt; never fetches or stores the document.' No modification, deletion, code execution, or financial operations occur."

## Use case

AI agents call extract_pdf_ocr to retrieve information from Delx Mcp A2a without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Delx Mcp A2a:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "extract_pdf_ocr": {}
  }
}
```

## Other tools on Delx Mcp A2a (1075)

- `util_arr_compact` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-arr-compact.md
- `util_arr_drop` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-arr-drop.md
- `util_dedent_text` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-dedent-text.md
- `util_dedupe_lines` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-dedupe-lines.md
- `util_header_map_normalize` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-header-map-normalize.md
- `util_http_request_canonicalize` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-http-request-canonicalize.md
- `util_remove_punctuation` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-remove-punctuation.md
- `util_text_truncate` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-text-truncate.md
- `util_truncate_middle` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-truncate-middle.md
- `crisis_intervention` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/crisis-intervention.md
- `explain_delx_rewards` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/explain-delx-rewards.md
- `grounding_protocol` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/grounding-protocol.md
- `group_therapy_round` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/group-therapy-round.md
- `quick_operational_recovery` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/quick-operational-recovery.md
- `quick_session` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/quick-session.md
- `start_therapy_session` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/start-therapy-session.md
- `util_bool_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-bool-parse.md
- `util_cache_control_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-cache-control-parse.md
- `util_cagr_simple` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-cagr-simple.md
- `util_caip2_build` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-caip2-build.md
- `util_caip2_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-caip2-parse.md
- `util_categorical_distribution` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-categorical-distribution.md
- `util_content_disposition_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-content-disposition-parse.md
- `util_content_range_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-content-range-parse.md
- `util_csp_directive_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-csp-directive-parse.md
- `util_deployment_readiness` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-deployment-readiness.md
- `util_dmarc_policy_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-dmarc-policy-parse.md
- `util_dns_dmarc_policy_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-dns-dmarc-policy-parse.md
- `util_dns_https_record_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-dns-https-record-parse.md
- `util_dns_spf_record_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a/util-dns-spf-record-parse.md
- …and 1045 more: https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-davidmosiah-delx-mcp-a2a · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-davidmosiah-delx-mcp-a2a
