# extract_pdf_text

Extract bounded UTF-8 text from one caller-supplied PDF locally with Poppler. Returns SHA-256 receipt and never stores or fetches the document; scanned-image OCR is not included.

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

## Facts

- Tool: `extract_pdf_text`
- Server: Delx MCP Server (`delx-mcp-server`) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.md
- Install: `npx -y delx-mcp-server`
- Homepage: https://github.com/davidmosiah/delx-mcp-server
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 3 (1 required)
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `max_chars` | 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_text",
    "arguments": {
      "pdf_base64": "<pdf_base64>"
    }
  }
}
```

## Why extract_pdf_text is rated Low

This tool performs document text extraction, which is inherently a read operation. It retrieves content from a caller-supplied PDF using Poppler (a PDF rendering library) and returns a SHA-256 receipt for integrity verification. The explicit guarantee that it 'never stores or fetches' indicates no persistence or external data access, eliminating Write and Destructive categories.

From the tool's own definition: "Tool description explicitly states it 'Extract[s]' text from a PDF and 'never stores or fetches the document' — a read-only operation with no side effects. The function is data retrieval (extract) without modification, creation, deletion, or execution."

## Use case

AI agents call extract_pdf_text to retrieve information from Delx MCP Server 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 Server:

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

## Other tools on Delx MCP Server (739)

- `util_arr_compact` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-arr-compact.md
- `util_arr_drop` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-arr-drop.md
- `util_dedent_text` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-dedent-text.md
- `util_dedupe_lines` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-dedupe-lines.md
- `util_header_map_normalize` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-header-map-normalize.md
- `util_http_request_canonicalize` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-http-request-canonicalize.md
- `util_remove_punctuation` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-remove-punctuation.md
- `util_text_truncate` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-text-truncate.md
- `util_truncate_middle` — Destructive — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-truncate-middle.md
- `crisis_intervention` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/crisis-intervention.md
- `explain_delx_rewards` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/explain-delx-rewards.md
- `grounding_protocol` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/grounding-protocol.md
- `group_therapy_round` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/group-therapy-round.md
- `quick_operational_recovery` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/quick-operational-recovery.md
- `quick_session` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/quick-session.md
- `start_therapy_session` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/start-therapy-session.md
- `util_bool_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-bool-parse.md
- `util_cagr_simple` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-cagr-simple.md
- `util_caip2_build` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-caip2-build.md
- `util_caip2_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-caip2-parse.md
- `util_categorical_distribution` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-categorical-distribution.md
- `util_deployment_readiness` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-deployment-readiness.md
- `util_dmarc_policy_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-dmarc-policy-parse.md
- `util_duration_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-duration-parse.md
- `util_eth_to_wei` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-eth-to-wei.md
- `util_iso_duration_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-iso-duration-parse.md
- `util_mx_host_parse` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-mx-host-parse.md
- `util_parse_bool_list` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-parse-bool-list.md
- `util_parse_bytes` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-parse-bytes.md
- `util_parse_float_safe` — Execute — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server/util-parse-float-safe.md
- …and 709 more: https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.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-server · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-davidmosiah-delx-mcp-server
