Skip to content
Sırdaş
MCPagentsClaude CodeCursor

Give your AI agent access to your PDFs without uploading them: local MCP

What an MCP server is, why a local one lets Claude Code or Cursor work with confidential documents, and how to install it in one line.

By Brayan Pedraza9 min read

In short

An MCP server is a process that exposes tools to an AI agent. If that server runs on your machine and opens no network connections, the agent can read, classify and extract data from your PDFs without the file leaving the machine: what travels to the model is the text you decide, already redacted if you ask. It installs in one line, and from then on Claude Code, Claude Desktop, Cursor or any MCP client treats your documents as one more source.

What MCP is, plainly

Model Context Protocol is an open protocol that lets an AI agent discover and use tools. The agent does not know how to read a PDF; it knows how to call a tool named read_document and receive a structured answer. Who implements that tool, and where it runs, is the decision that matters.

There are two families of document MCP servers:

  • Wrappers around a cloud API. The server does run on your machine, but the first thing it does with your file is upload it to the vendor's service. The file leaves anyway; only the uploader changed.
  • Servers that process on your machine. The server opens the PDF, reads it, extracts the text and returns the result without opening a single connection.

The difference is invisible in the agent's interface. It shows up in the network tab, or by taking the machine offline.

Why it changes what you can ask

With the file uploaded to a chat, some things simply do not get asked. A lawyer does not upload the client's contract. A doctor does not upload the medical record. Not out of technical distrust, but because the document is privileged and uploading it is itself the transfer that should not happen.

With a local server, the split changes:

What happensWhere
Open the PDF, OCR if neededYour machine
Identify the document typeYour machine
Extract fields with page and positionYour machine
Redact personal dataYour machine
Reason over the already-redacted textThe model

The only thing travelling to the model provider is the text the tool returns, which you control and can request redacted. And if you also use a local model with Ollama or LM Studio, nothing travels at all.

What an agent can do with this

The practical difference is not «reading a PDF». It is that the agent can chain steps without asking you at every turn:

  • «Read every invoice in this folder, pull the total and the tax ID from each, and put them in a CSV.» The agent calls the tool per file, gets fields with their source page, and builds the table.
  • «This 80-page scan is several documents stuck together; split them.» Detecting where a new document starts is a heuristic over each page's text, not a job for a vision model.
  • «Turn these contracts into a fine-tuning dataset, without personal data.» The whole chain runs locally.
  • «What kind of document is this and what can I do with it?» Classification by visible rules, with the signals that support it, so the agent does not invent.

The design key is that every value carries its provenance: which page, which line, which box on the page. An agent that cites can be checked; one that summarizes cannot.

A dated example: iLovePDF's MCP server

On 27 September 2026 we reviewed the MCP server iLovePDF publishes (ilovepdf/ilovepdf-mcp, package @ilovepdf/mcp 0.1.0). It is a clear example of the first family, and it says so itself: its architecture document explains that each call "uploads them to the iLovePDF v1 REST API, triggers processing, downloads the produced file". It runs on your machine over stdio, but the file travels to their service.

@ilovepdf/mcp@sirdaspdf/mcp
Where the PDF is processedOn iLovePDF's serversOn your machine
Account or keyRequires "an iLovePDF public API key"None
Tools10 in its architecture document; 9 active (unlock "temporarily disabled")27
Office to PDFYesNo (Office to text only)
Works with networking offNoYes; tested on every change with docker run --network none

Where theirs is better: it converts Word, Excel and PowerPoint to PDF, and behind it is a mature service with many more web tools. If the document may leave your machine, it is a reasonable choice. If it may not, the question is not which server has more tools, but where the file is opened.

Nor are we the only PDF MCP server that processes locally: others exist, such as mcp-pdf or pdf-toolbox-mcp. Check any of them the same way: see whether it asks for an API key and whether it works offline.

How to install it

For Claude Code, one line:

claude mcp add sirdas -- npx -y @sirdaspdf/mcp@0.4.3

For Claude Desktop, Cursor, VS Code or Windsurf, the standard MCP config:

{
  "mcpServers": {
    "sirdas": { "command": "npx", "args": ["-y", "@sirdaspdf/mcp@0.4.3"] }
  }
}

And to prove it really is local, the test that admits no argument:

docker run --rm --network none -v "$PWD:/work" sirdas invoice.pdf

--network none leaves the container with no network interface. If the command returns the parsed document, the work happened without a network.

One call that does everything

The pattern that works with agents is not exposing twenty small tools and hoping the model guesses the sequence. It is one tool that does the whole job and returns, along with the result, what to offer next:

{
  "status": "ok",
  "document_type": "invoice",
  "steps": ["Extracted text from 2 page(s).", "Identified as invoice.",
            "Extracted 8 field(s) with page citations."],
  "fields": [
    { "name": "total", "value": "1,428,000", "page": 2,
      "evidence": "Total due: $ 1,428,000" }
  ],
  "next_steps": [{ "tool": "pdf_tables", "why": "Export the line items to CSV." }],
  "bytes_sent": 0
}

Three details built for agents: steps explains what was done, so the agent can tell the user; evidence lets it cite instead of assert; and next_steps saves the model from guessing which tool comes next.

What it does not do

  • It does not read handwriting, nor detect a pen-ticked box on a scan. That needs a vision model.
  • It does not turn charts into data.
  • It does not reproduce the layout of Word, Excel or PowerPoint: it reads them for content, which is what a model needs.

Saying so matters, because an agent expecting a capability that does not exist fails confusingly instead of with a clear error.

Where to start

The full documentation, in Markdown so your own agent can read it, is in the developers section. If you want the agent to install itself, paste this:

I want you to use Sırdaş to read and process my documents on my own machine, without uploading them anywhere. Read https://www.sirdaspdf.com/llms.txt, install the MCP server, try it on a PDF and tell me what you can now do with my files. Ask me before writing or changing files.

Questions

How is this different from uploading the PDF to the chat?
If you upload the file, it travels whole to the model provider and falls under its retention policy. With a local MCP server, the file is processed on your machine and only the text or fields the tool returns reach the model, and you can redact them first.
Does it work offline?
The MCP server does: it opens no connections. The model you talk to usually does not, unless you use a local one such as Ollama or LM Studio; in that case the whole chain works without a network.
Does it work with clients other than Claude?
Yes. MCP is an open protocol: Claude Code, Claude Desktop, Cursor, VS Code, Windsurf and any client that implements it can use the same server.
Does iLovePDF's MCP server process locally?
No. It runs on your machine, but according to its own architecture document it uploads each file to the iLovePDF API, processes it there and downloads the result; it also requires an API key (reviewed on 27 September 2026).

Keep reading