NestDaddy

PDF To Text

io.github.Jim-Panse/pdf-to-text · v0.7.0

Extracts PDF text locally, with macOS PDFKit and Vision OCR fallbacks and optional AI retry.

Connect Runs on your machine

Terminal
claude mcp add pdf-to-text -e PDF_TO_TEXT_MCP_ROOT=<PDF_TO_TEXT_MCP_ROOT> -e OPENAI_API_KEY=<OPENAI_API_KEY> -e OPENAI_MODEL=<OPENAI_MODEL> -e AI_MAX_OUTPUT_TOKENS=<AI_MAX_OUTPUT_TOKENS> -e MAX_PARALLEL_EXTRACTIONS=<MAX_PARALLEL_EXTRACTIONS> -e EXTRACTION_QUEUE_CAPACITY=<EXTRACTION_QUEUE_CAPACITY> -e EXTRACTION_QUEUE_WAIT_MS=<EXTRACTION_QUEUE_WAIT_MS> -e WRITE_TEXT=<WRITE_TEXT> -- npx -y @jim-panse/[email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "pdf-to-text": {
      "command": "npx",
      "args": [
        "-y",
        "@jim-panse/[email protected]"
      ],
      "env": {
        "PDF_TO_TEXT_MCP_ROOT": "<PDF_TO_TEXT_MCP_ROOT>",
        "OPENAI_API_KEY": "<OPENAI_API_KEY>",
        "OPENAI_MODEL": "<OPENAI_MODEL>",
        "AI_MAX_OUTPUT_TOKENS": "<AI_MAX_OUTPUT_TOKENS>",
        "MAX_PARALLEL_EXTRACTIONS": "<MAX_PARALLEL_EXTRACTIONS>",
        "EXTRACTION_QUEUE_CAPACITY": "<EXTRACTION_QUEUE_CAPACITY>",
        "EXTRACTION_QUEUE_WAIT_MS": "<EXTRACTION_QUEUE_WAIT_MS>",
        "WRITE_TEXT": "<WRITE_TEXT>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "pdf-to-text": {
      "command": "npx",
      "args": [
        "-y",
        "@jim-panse/[email protected]"
      ],
      "env": {
        "PDF_TO_TEXT_MCP_ROOT": "<PDF_TO_TEXT_MCP_ROOT>",
        "OPENAI_API_KEY": "<OPENAI_API_KEY>",
        "OPENAI_MODEL": "<OPENAI_MODEL>",
        "AI_MAX_OUTPUT_TOKENS": "<AI_MAX_OUTPUT_TOKENS>",
        "MAX_PARALLEL_EXTRACTIONS": "<MAX_PARALLEL_EXTRACTIONS>",
        "EXTRACTION_QUEUE_CAPACITY": "<EXTRACTION_QUEUE_CAPACITY>",
        "EXTRACTION_QUEUE_WAIT_MS": "<EXTRACTION_QUEUE_WAIT_MS>",
        "WRITE_TEXT": "<WRITE_TEXT>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "pdf-to-text": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@jim-panse/[email protected]"
      ],
      "env": {
        "PDF_TO_TEXT_MCP_ROOT": "<PDF_TO_TEXT_MCP_ROOT>",
        "OPENAI_API_KEY": "<OPENAI_API_KEY>",
        "OPENAI_MODEL": "<OPENAI_MODEL>",
        "AI_MAX_OUTPUT_TOKENS": "<AI_MAX_OUTPUT_TOKENS>",
        "MAX_PARALLEL_EXTRACTIONS": "<MAX_PARALLEL_EXTRACTIONS>",
        "EXTRACTION_QUEUE_CAPACITY": "<EXTRACTION_QUEUE_CAPACITY>",
        "EXTRACTION_QUEUE_WAIT_MS": "<EXTRACTION_QUEUE_WAIT_MS>",
        "WRITE_TEXT": "<WRITE_TEXT>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
PDF_TO_TEXT_MCP_ROOT
Required
Required existing directory that defines the root-relative filesystem namespace for PDF input and derived text output.
OPENAI_API_KEY
Optional, secret
Optional secret. Enables one AI extraction retry when local extraction is inadequate; omit for local-only operation.
OPENAI_MODEL
Optional
Optional OpenAI model used only for AI retry. Defaults to gpt-5.4-mini.
AI_MAX_OUTPUT_TOKENS
Optional
Optional cap for all AI-generated output tokens, including non-visible reasoning tokens. Integer minimum 800; defaults to 32000.
MAX_PARALLEL_EXTRACTIONS
Optional
Integer concurrency limit from 1 to 32. Defaults to min(os.availableParallelism(), 4).
EXTRACTION_QUEUE_CAPACITY
Optional
Integer maximum waiting requests from 0 to 100; zero disables waiting.
EXTRACTION_QUEUE_WAIT_MS
Optional
Maximum queue wait in milliseconds, integer 1 through 2147483647. Does not limit active work.
WRITE_TEXT
Optional
Optionally save successful extraction text beside the source PDF.

Details

Package@jim-panse/[email protected] (NPM, stdio)
First published15 Oct 2026
Last updated15 Oct 2026
Registry nameio.github.Jim-Panse/pdf-to-text

More files and documents servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.