Skip to main content
Glama
knportal

formfill-mcp

License: MIT Version MCP

Get API Key · View on Smithery · Built by Plenitudo AI

Listed on: Smithery · Glama


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.


Tools

Tool

Description

When to use

list_form_fields

Returns every fillable field — name, type, and current value

First step: discover what's in the form

fill_form

Fill a PDF with provided field values and save the result

Standard forms (1–5 pages)

fill_form_multipage

Same as fill_form, page-by-page for large documents

Complex multi-page forms (6+ pages)


Works With

Any MCP-compatible host:

  • Claude Desktop — add to claude_desktop_config.json

  • Cursor — 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": "/Users/YOUR_USERNAME/Projects/formfill-mcp/venv/bin/python",
      "args": ["/Users/YOUR_USERNAME/Projects/formfill-mcp/server.py"]
    }
  }
}

Restart Claude Desktop. You'll see the 🔨 tools icon — FormFill is connected.

3. Fill your first form

List the fillable fields in /Users/me/Desktop/w9.pdf using API key ff_free_abc123
Fill 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_abc123

Example 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_abc123

Rental 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_abc123

Multi-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_abc123

Response 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:8000

For 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 counters

Contributing & Security

License

MIT — Copyright © 2025 Plenitudo AI


A
license - permissive license
-
quality - not tested
D
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