Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

JustFill PDF Form Automation

PYPI · JUSTFILL-MCP · 2 COMPONENTS · SCANNED SEP 20

Fill existing fillable, flat and scanned PDF forms from structured data; save reusable templates

0 this week 75 Trust /100

Deprecated

This server is marked deprecated in the MCP registry. The registry records this reason: Renamed to io.github.mrmaciej1/justfill-pdf-forms for PDF discovery; package and endpoint are unchanged.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 0 of 31 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency32
Schema Quality & AI Usability70
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 1523 tokens (~108/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (86% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_field" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the JustFill PDF Form Automation MCP server?

JustFill PDF Form Automation runs locally as a PyPI package, launched with uvx justfill-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · justfill-mcp

# add to Claude Code
claude mcp add mrmaciej1-justfill -- uvx justfill-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "mrmaciej1-justfill": {
      "command": "uvx",
      "args": [
        "justfill-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "mrmaciej1-justfill": {
      "command": "uvx",
      "args": [
        "justfill-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add mrmaciej1-justfill -- uvx justfill-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mrmaciej1-justfill": {
      "type": "local",
      "command": [
        "uvx",
        "justfill-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add mrmaciej1-justfill --command uvx --arg justfill-mcp
# ~/.hermes/config.yaml
mcp_servers:
  mrmaciej1-justfill:
    command: "uvx"
    args: ["justfill-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "mrmaciej1-justfill": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "justfill-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add mrmaciej1-justfill -t stdio -c uvx -a justfill-mcp
// mcp.json
{
  "mcpServers": {
    "mrmaciej1-justfill": {
      "command": "uvx",
      "args": [
        "justfill-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 17 Sept 26 0
    • Stability: 0.97 → pass security
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 −14
    • Malware scan: pass → unverified security
  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 −3
    • Stability: pass → 0.77 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/justfill-mcp@0.4.7

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 31 packages
Packages resolved 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 14 exposed · ~1,292 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_field ~142

Add a field the detector missed (a false negative). Coordinates are percentages of the page (0-100), top-left origin — read them off the render_preview image proportionally. align ('left'|'center'|'right') and vertical_align ('top'|'middle'|'bottom') control where the value sits inside the box when the PDF is filled.

NameTypeReqDescription
align
field_typestring
hnumberyes
namestring
page_indexinteger
vertical_align
wnumberyes
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

close_workspace ~48

Release the current PDF and field data when work is finished. Saved templates and output PDFs are not deleted. This operation is idempotent, which makes it safe to call from automation cleanup blocks.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

fill_pdf ~124

Fill the PDF and save it. `values` maps field id -> text value (checkboxes: "true"/"yes"/"x" to tick). Fields not present in `values` stay empty. AcroForm fields are filled natively inside the PDF; everything else is drawn at its exact box. The response's `warnings` list flags values that will be shrunk or truncated to fit their box — fix those before delivering the document.

NameTypeReqDescription
flattenboolean
output_pathstringyes
valuesobjectyes
NameTypeReqDescription
resultstringyes

No examples provided.

list_fields ~26

List the current working fields (optionally one page only).

NameTypeReqDescription
page_index
NameTypeReqDescription
resultstringyes

No examples provided.

list_templates ~29

List saved templates on this account (name + field count + hash).

NameTypeReqDescription
limitinteger
NameTypeReqDescription
resultstringyes

No examples provided.

open_pdf ~213

Open a PDF (or a scanned image: jpg/png/tiff) and detect its fillable fields. Images are converted to a single-page PDF automatically (deterministically, so a template saved for a photo matches the same photo next time). Resolution order (best source wins): 1. Saved template matching this exact file (deterministic, confidence 1.0) 2. Embedded AcroForm fields (deterministic, confidence 1.0) 3. ML detection (each field carries a confidence score) force_detect=True skips steps 1-2 and re-runs ML detection from scratch — use it to rebuild a layout when the saved template is wrong or stale. min_confidence drops ML fields scored below it (templates/AcroForm are always kept). Returns a JSON summary + the field list.

NameTypeReqDescription
force_detectboolean
max_pagesinteger
min_confidencenumber
pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

prune_fields ~137

Bulk-delete fields matching ALL given criteria (e.g. detection noise). field_type: exact type match (e.g. 'cell'); confidence_below / width_below / height_below: strictly-less-than thresholds (w/h in % of page); page_index: limit to one page; exclude_ids: always keep these. Returns the removed ids so the operation is auditable (and reversible via add_field if it cut too much).

NameTypeReqDescription
confidence_below
exclude_ids
field_type
height_below
page_index
width_below
NameTypeReqDescription
resultstringyes

No examples provided.

remove_field ~29

Delete a field that isn't a real input (a false positive).

NameTypeReqDescription
field_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

remove_fields ~29

Delete many fields in one call (batch version of remove_field).

NameTypeReqDescription
field_idsarrayyes
NameTypeReqDescription
resultstringyes

No examples provided.

render_filled_preview ~107

Preview how the filled page will look BEFORE generating the PDF. Draws `values` (field id -> text; checkboxes get an X) into their boxes on the rendered page. Costs nothing — no fill is consumed. Typography is an approximation of the final output (the server typesets the real PDF), so use it to verify placement, alignment and obvious overflow, then fill_pdf.

NameTypeReqDescription
page_indexinteger
valuesobjectyes

No output schema declared.

No examples provided.

render_preview ~87

Render a page with the working field boxes drawn on it. Look at this image to VERIFY placement: blue boxes are deterministic (template/AcroForm/agent-placed); green/orange/red are ML detections by confidence (>=0.7 / >=0.4 / <0.4). Each box is labeled with its field id.

NameTypeReqDescription
page_indexinteger

No output schema declared.

No examples provided.

save_template ~139

Save the current (reviewed) field layout as a reusable template. Next time this exact PDF is opened — by you or another agent session on this account — open_pdf returns these fields with confidence 1.0 and no ML pass at all. This is what makes repeat filling deterministic. Before saving, give every field a short semantic name (update_fields with name=..., e.g. 'age_score', 'total_abcd2') — names are stored in the template, so the next session maps values by meaning instead of guessing from coordinates. Also remove false positives first (remove_fields).

NameTypeReqDescription
namestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

update_field ~108

Move/resize/rename a field, or set its text alignment. align: 'left'|'center'|'right'; vertical_align: 'top'|'middle'|'bottom' — where the value sits inside the box in the filled PDF.

NameTypeReqDescription
align
field_idstringyes
field_type
h
name
vertical_align
w
x
y
NameTypeReqDescription
resultstringyes

No examples provided.

update_fields ~74

Update many fields in one call (batch version of update_field). Each item: {"field_id": "...", and any of x, y, w, h, name, field_type, align, vertical_align}. Items with an unknown field_id are reported back, the rest are still applied.

NameTypeReqDescription
updatesarrayyes
NameTypeReqDescription
resultstringyes

No examples provided.

Common questions

What is the JustFill PDF Form Automation MCP server?

JustFill PDF Form Automation is an MCP server listed in the public MCP registry as io.github.mrmaciej1/justfill. Fill existing fillable, flat and scanned PDF forms from structured data; save reusable templates. This page covers its PyPI package (justfill-mcp).

Is the JustFill PDF Form Automation MCP server safe to use?

JustFill PDF Form Automation scores 75 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the JustFill PDF Form Automation MCP server expose?

JustFill PDF Form Automation exposes 14 tools: open_pdf, list_fields, close_workspace, render_preview, render_filled_preview, and 9 more. Their descriptions and schemas cost roughly 1,292 tokens of context every time the server is loaded.

Is the JustFill PDF Form Automation MCP server still maintained?

JustFill PDF Form Automation is marked deprecated in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.