formfill-mcp
Enables remote access to the FormFill MCP server through Cloudflare Workers, allowing AI agents to fill PDF forms via a web proxy without local server installation.
Integrates with Stripe for subscription management and billing, handling payment processing for Pro tier upgrades and usage tracking through webhook handlers.
Get API Key · View on Smithery · Built by Plenitudo AI
How It Works
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 1. Inspect │ │ 2. Fill │ │ 3. Done │
│ │ → │ │ → │ │
│ list_form_ │ │ fill_form │ │ Filled PDF │
│ fields │ │ │ │ saved to disk │
│ │ │ │ │ │
│ Returns every │ │ Writes values, │ │ Open in │
│ field name, │ │ saves output │ │ Preview or │
│ type & value │ │ file │ │ send anywhere │
└─────────────────┘ └─────────────────┘ └─────────────────┘Most AI workflows collapse at the last mile: the agent understands the form but can't write to it. FormFill closes that gap with three focused tools.
Related MCP server: aipaygen-mcp
Tools
Tool | Description | When to use |
| Returns every fillable field — name, type, and current value | First step: discover what's in the form |
| Fill a PDF with provided field values and save the result | Standard forms (1–5 pages) |
| Same as | Complex multi-page forms (6+ pages) |
Works With
Any MCP-compatible host:
Claude Desktop — add to
claude_desktop_config.jsonCursor — MCP server config
Cline — same config pattern
Continue — same config pattern
Any agent that supports the Model Context Protocol
Supported Form Types
Category | Examples |
Tax | W-9, W-4, 1040, Schedule C, state forms |
HR | I-9, onboarding packets, benefits enrollment, PTO |
Legal | NDAs, lease agreements, contracts, disclosures |
Insurance | Claims forms, enrollment applications |
Real Estate | Purchase agreements, rental applications, disclosures |
Education | Admissions, financial aid, transcripts |
Pricing
Tier | Price | Monthly Fills |
Free | $0 | 50 fills |
Pro | $9.99 / month | Unlimited |
Get your API key at formfill.plenitudo.ai
Quick Start
1. Get an API key
Sign up at formfill.plenitudo.ai — free tier available immediately.
2. Connect to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"formfill": {
"command": "/absolute/path/to/formfill-mcp/venv/bin/python",
"args": ["/absolute/path/to/formfill-mcp/server.py", "--stdio"]
}
}
}Replace the paths with your actual install location. Fully quit and reopen Claude Desktop (Cmd+Q — just closing the window is not enough). You'll see the 🔨 tools icon — FormFill is connected.
Remote HTTP endpoint (Cursor, Cline, any HTTP MCP client):
https://formfill.plenitudo.ai/mcp3. Fill your first form
List the fillable fields in /Users/me/Desktop/w9.pdf using API key ff_free_abc123Fill the form at /Users/me/Desktop/w9.pdf with:
name: Jane Smith
TIN: 12-3456789
address: 123 Main St, Austin TX 78701
Save to /Users/me/Desktop/w9_filled.pdf
API key: ff_free_abc123Example Prompts
W-9 (tax):
Fill the W-9 at ~/Desktop/fw9.pdf with my name "John Smith", SSN "123-45-6789",
address "456 Oak Ave, Boston MA 02101". Business type: Individual/sole proprietor.
Save to ~/Desktop/fw9_filled.pdf. API key: ff_free_abc123Rental application:
Fill the rental application at ~/Desktop/rental_app.pdf with these values:
[paste field values]. Save to ~/Desktop/rental_filled.pdf. API key: ff_free_abc123Multi-page contract:
Fill the 8-page NDA at ~/Desktop/nda.pdf. My name: Jane Smith, Company: Acme Corp,
Date: March 28 2026. Use fill_form_multipage. API key: ff_free_abc123Response Format
Success:
{
"ok": true,
"output_path": "/Users/me/forms/w9_filled.pdf",
"fields_filled": 12,
"invalid_fields": []
}Error:
{"ok": false, "error": "Invalid API key"}
{"ok": false, "error": "Usage limit reached. Upgrade at https://formfill.plenitudo.ai"}
{"ok": false, "error": "File not found: /Users/me/missing.pdf"}Self-Hosting
git clone https://github.com/knportal/formfill-mcp.git
cd formfill-mcp
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python manage_keys.py create --tier free
python server.py
# → MCP server running on http://localhost:8000For remote agent access, deploy the included Cloudflare Worker (worker.js).
Architecture
server.py — MCP server (3 tools)
auth.py — API key validation + usage tracking (SQLite)
stripe_webhook.py — Stripe subscription webhook handler
worker.js — Cloudflare Worker (remote proxy)
manage_keys.py — Key management CLI
data/keys.db — API key store
data/usage.db — Monthly usage countersTroubleshooting
Values fill into the wrong fields
Always call list_form_fields first. It returns each field's position (x, y on page). Use those coordinates — not guessed names — to identify fields. Higher y = higher on the page (PDF coordinates are bottom-up). This matters most for IRS/government PDFs that use hybrid XFA/AcroForm format.
"No fillable fields found"
The PDF is either flat/scanned (no AcroForm layer), XFA-only (older Adobe LiveCycle format), or password-protected. The response includes pdf_type to tell you which. FormFill requires interactive AcroForm fields.
"None of the provided field names exist in this PDF"
Field names were guessed rather than read from list_form_fields. The error response includes valid_fields — the correct names to use.
Claude Desktop: "not a valid MCP server configuration"
Use command/args format (not url or type: streamableHttp). Include "--stdio" in args. Fully quit and reopen Claude Desktop after editing the config.
Server crashes: "Read-only file system: ./logs"
Set FORMFILL_LOG_FILE to a writable path, or ensure FORMFILL_DATA_DIR points to a writable directory. The default ~/Library/Logs/formfill-mcp/server.log works without config on macOS.
API key limit reached Free tier: 50 fills/month. Upgrade at formfill.plenitudo.ai. Your key is upgraded automatically — no config change needed.
Check server health
GET https://formfill.plenitudo.ai/health→{"status":"ok"}GET https://formfill.plenitudo.ai/smoke-test→ fills a real PDF end-to-end, returns pass/fail per component
Contributing & Security
CONTRIBUTING.md — dev setup and PR guidelines
SECURITY.md — responsible disclosure policy
License
MIT — Copyright © 2025 Plenitudo AI
This server cannot be installed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/knportal/formfill-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server