Let your agent fill PDF forms, on your machine

Agents are good at answers and bad at flat PDFs: they can't tell where a field is or what it's for. The fenfill MCP server fixes that. fenfill finds the fields on the blank form, and your agent fills it on your own computer. The answers it writes never reach us.

2 min readUpdated

  • Add the fenfill MCP server to Claude Code, Claude Desktop, Cursor or any MCP client.
  • fenfill finds the fields on a blank PDF. Your agent fills it locally.
  • What your agent writes is never sent to fenfill or anywhere else.
  • Included on Pro and above. Open source (MIT).

Your agent fills it; we never see the answers

Ask an agent to fill a PDF and it usually guesses. A flat form is just lines on a page, and even a fillable one names its fields things like Text17. The agent writes over the wrong line, or skips the box it couldn't find.

fenfill does the part agents can't: it reads the blank form and returns every field with what it is and where it sits. Text boxes, checkboxes, dates, character boxes, tables and signature lines.

Then the fenfill MCP server fills the PDF on your machine. Your agent hands it the answers, the server stamps them onto the page, and you get a new PDF. The answers your agent writes are never sent to fenfill or anywhere else. Only the blank form comes to us, to be analyzed.

That last part is a guardrail, not a mind reader: it spots filled form fields, not handwriting or text typed onto a flat page. So point your agent at the blank form.

Set it up in three steps

  1. 1

    Get an API key

    In fenfill, open Settings → API keys and create one. It's shown once.

  2. 2

    Add the MCP server

    One line for Claude Code, or a short config block for Claude Desktop, Cursor and other MCP clients.

  3. 3

    Ask your agent to fill a form

    Give it the blank PDF and the answers. It analyzes the form, fills it locally and saves the new PDF.

The server runs on your computer through npx. There's nothing to host and no new account: your fenfill workspace is the account, and the key ties the agent to it. The quickstart has the exact lines for each client.

Your saved templates work too. The agent can list them, read their fields and fill one, with the same branding a fill in the web app gets. It can also create a personal fill link for a client and check whether they've opened or completed it.

Built for repeat forms

Forms that already have fillable fields are read directly, with no AI, and use no page scans. If a form also has blanks its fields don't cover, like a signature line, you can choose to detect those too.

Analyzing the same file again uses no page scans: the result is cached on your machine. The cache holds form layouts and blank forms, never your answers.

When a field comes out wrong, the agent can see it. It draws each page on your machine with every field outlined, then moves, resizes or relabels the field and saves the fix to your template. A correction sends only the form's layout and wording, never your answers.

What is sent where

What the MCP server sends to fenfill
Sent to fenfill?
The blank PDF you analyzeYes, once, encrypted as soon as it arrives
Your API keyYes, in the Authorization header only
Your agent's answers and the filled PDFNever
Page previewsNo: drawn on your machine
Template correctionsLayout and wording only, when you save
Re-analyzing a saved templateNothing is uploaded

The blank PDF you analyze

Sent to fenfill?
Yes, once, encrypted as soon as it arrives

Your API key

Sent to fenfill?
Yes, in the Authorization header only

Your agent's answers and the filled PDF

Sent to fenfill?
Never

Page previews

Sent to fenfill?
No: drawn on your machine

Template corrections

Sent to fenfill?
Layout and wording only, when you save

Re-analyzing a saved template

Sent to fenfill?
Nothing is uploaded

Unless you save the form as a template, the blank PDF is deleted as soon as its analysis finishes. The analysis itself is kept for at most 24 hours, or 1 hour after your agent first fetches it, whichever comes first.

This is not end-to-end encryption: our servers decrypt the blank form to analyze it. The answers are a different story. They never reach us at all. More in how fenfill handles your files and the data flow docs.

API keys are shown once. We store only a hash, and accept the key only in the Authorization header. The MCP server is open source (MIT): every release is built from github.com/fenfill/mcp by GitHub Actions and published to npm with provenance, so you can check what you run.

Frequently asked questions

Which agents does it work with?

Any MCP client that can run a local server: Claude Code, Claude Desktop, Cursor and others. The docs have setup lines for each.

Does fenfill see what my agent fills in?

No. The MCP server stamps the answers into the PDF on your machine. Only the blank form is sent to fenfill, to analyze it.

Which plans include it?

Pro and above. The pricing page lists what each plan includes.

Can I call the API directly, without MCP?

Yes. The MCP server uses the same REST API (`/v1`), and the API reference in the docs covers every endpoint. There is no fill endpoint: filling happens on your side.

Does filling use page scans?

No. Filling never uses page scans, and neither do forms that already have fillable fields. Analyzing a flat form does, and the API docs explain how.

Is there a hosted connector for claude.ai or ChatGPT?

Not today. The MCP server runs on your computer, which is what keeps your answers off our servers.

What if my API key leaks?

Revoke it in Settings → API keys. It stops working at once. Then create a new one.

Give your agent the forms it can't read.