# juergenkoller-software/pdf-content-search-mcp [Health: Active]

**Category:** 🔎 Search & Data Extraction  
**Repository:** https://github.com/juergenkoller-software/pdf-content-search-mcp  
**GitHub Stars:** 1  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/juergenkoller-software-pdf-content-search-mcp

## Description
MCP bridge for PDF Content Search — full-text PDF search with Apple Vision OCR across thousands of documents in under a second. Advanced filters (date, category, sender, amount), wildcards, boolean operators.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "pdf-content-search-mcp": {
    "command": "npx",
    "args": ["-y","juergenkoller-software-pdf-content-search-mcp"],
    "env": {
      "PDF_CS_TOKEN": "",
      "PDF_CS_PORT": "",
      "PDF_CS_HOST": ""
    }
  }
}
```

**Requires environment variables:** `PDF_CS_TOKEN`, `PDF_CS_PORT`, `PDF_CS_HOST` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation & README

# PDF Content Search MCP Server

[![Swift](https://img.shields.io/badge/Swift-5.9+-orange.svg)](https://swift.org)
[![Platform](https://img.shields.io/badge/platform-macOS%2012%2B-blue.svg)](https://apple.com/macos)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![MCP](https://img.shields.io/badge/protocol-MCP-purple.svg)](https://modelcontextprotocol.io)
[![juergenkoller-software/pdf-content-search-mcp MCP server](https://glama.ai/mcp/servers/juergenkoller-software/pdf-content-search-mcp/badges/score.svg)](https://glama.ai/mcp/servers/juergenkoller-software/pdf-content-search-mcp)

**Full-text PDF search + OCR for Claude, Cursor, and any MCP client.**

This is the official [Model Context Protocol](https://modelcontextprotocol.io) bridge for [**PDF Content Search**](https://store.juergenkoller.software/en/apps/pdf-content-search) — a native macOS app that indexes thousands of PDFs (including scanned ones via Apple Vision OCR) and finds anything in under a second.

> **You need the PDF Content Search app installed and running.** This MCP server is a stdio→HTTP bridge — the index, OCR engine, and search live in the app. Get PDF Content Search at [store.juergenkoller.software/apps/pdf-content-search](https://store.juergenkoller.software/en/apps/pdf-content-search).

---

## What you can do

> "Claude, find every invoice from Telekom in 2024 across all my PDFs and list amount + date."
>
> "Cursor, search 'data processing agreement' across my contracts folder, return the matching PDF + page number."

The app exposes search, filter, OCR, indexing, and document-metadata tools through MCP. Search results include page numbers, highlighted snippets, and bounding-box coordinates from OCR. Full tool list is announced by the server on `tools/list` after `initialize`.

---

## Installation

### Prerequisites

1. **macOS 12 (Monterey) or later**
2. **PDF Content Search app installed and running** — [get it here](https://store.juergenkoller.software/en/apps/pdf-content-search) (one-time purchase €89.99, 30-day free trial, includes free iOS + Android scanner companion apps)
3. **Swift 5.9+** (Xcode 15+) if building from source

### Build from source

```bash
git clone https://github.com/juergenkoller-software/pdf-content-search-mcp.git
cd pdf-content-search-mcp
swift build -c release
# Binary: .build/release/pdf-content-search-mcp
```

Universal binary (for shipping inside the app bundle):

```bash
swift build -c release --arch arm64 --arch x86_64
```

### Already inside the app

If you have PDF Content Search installed, the bridge ships inside the app bundle at `Contents/Resources/pdf-content-search-mcp`. Use the "**Set up Claude Desktop**" button in the app to auto-configure Claude Desktop with the right path and token — that's the recommended path for end users.

This repo is the **source code** for that bundled bridge, kept open so you can audit it, fork it, or run it under your own sandbox.

---

## Configuration

### Claude Desktop

```json
{
  "mcpServers": {
    "pdf-content-search": {
      "command": "/path/to/pdf-content-search-mcp",
      "env": {
        "PDF_CS_TOKEN": "your-token-here",
        "PDF_CS_PORT": "44477"
      }
    }
  }
}
```

Get `PDF_CS_TOKEN` from **PDF Content Search → Settings → API Server**, or use the in-app "Set up Claude Desktop" button.

### Claude Code

```bash
claude mcp add pdf-content-search /path/to/pdf-content-search-mcp \
  --env PDF_CS_PORT=44477 \
  --env PDF_CS_TOKEN=your-token-here
```

### Cursor / other MCP clients

Same pattern — stdio MCP server.

---

## Environment variables

| Variable | Default | Description |
|---|---|---|
| `PDF_CS_TOKEN` | _(none)_ | Bearer token matching the app's API Server token (required) |
| `PDF_CS_PORT` | `44477` | Port of the app's API server |
| `PDF_CS_HOST` | `127.0.0.1` | Host to reach the app |

---

## Protocol behavior

- Newline-delimited JSON on stdin/stdout (MCP stdio transport).
- Each line is POSTed to the app's `/mcp` endpoint verbatim.
- The first response's `Mcp-Session-Id` header is cached and sent with every subsequent request, so session state survives across messages.
- Notifications (requests without `id`) expect HTTP 202 and produce no stdout.
- Transport errors are turned into JSON-RPC error responses (code `-32000` "Cannot reach PDF Content Search") so the client surfaces a meaningful message instead of hanging.
- HTTP 401 → JSON-RPC error `-32001` with a hint to rerun the setup.
- HTTP 404 on an established session drops the cached ID and tells the client to re-initialize.

---

## How it works

```
┌────────────────┐  JSON-RPC stdio   ┌────────────────┐  HTTP+Bearer   ┌────────────────────┐
│  Claude/Cursor │ ───────────────►  │ pdfcs-mcp      │ ─────────────► │ PDF Content Search │
│  (MCP client)  │ ◄───────────────  │   (this repo)  │ ◄───────────── │  (port 44477)      │
└────────────────┘                   └────────────────┘                └────────────────────┘
```

PDF Content Search owns the index (full-text + OCR + extracted metadata), the AI-naming pipeline, the iOS/Android sync, and the search engine. This bridge keeps the stdio MCP transport open-source so you can audit the wire format independently.

---

## About PDF Content Search

PDF Content Search replaces complex folder structures with lightning-fast full-text search. Highlights:

- **One-time purchase** — €89.99, no subscription
- **Full-text search** across thousands of PDFs in under a second
- **OCR text recognition** — Apple Vision Framework, makes scans searchable
- **AI file naming** — phone photo of invoice becomes `250401 Invoice Telekom.pdf`
- **Free companion apps** — iOS and Android scanner apps included
- **Encrypted sync** to Mac
- **Advanced filters** — date, category, sender, amount; boolean operators; wildcards
- **Spotlight + iCloud Drive** integration
- **MCP server** (this repo) + REST API
- **Made for offices, law firms, accountants** — anyone with lots of documents

→ **[Get PDF Content Search at store.juergenkoller.software](https://store.juergenkoller.software/en/apps/pdf-content-search)**

---

## License

MIT — see [LICENSE](https://github.com/juergenkoller-software/pdf-content-search-mcp/blob/HEAD/LICENSE). Bridge open source; the PDF Content Search app is commercial.

## Issues & support

- **Bridge bugs:** [open an issue](https://github.com/juergenkoller-software/pdf-content-search-mcp/issues)
- **App support:** [support@juergenkoller.software](mailto:support@juergenkoller.software)

Built by [Juergen Koller Software GmbH](https://juergenkoller.software).

