Skip to main content
Glama
mrmaciej1

JustFill PDF Forms

by mrmaciej1

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JUSTFILL_EMAILNoEmail for legacy authentication (fallback, use API key instead).
JUSTFILL_API_KEYNoAPI key from justfill.app. Create at Account → API Keys.
JUSTFILL_PASSWORDNoPassword for legacy authentication (fallback, use API key instead).

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
open_pdfA

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.

list_fieldsC

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

render_previewA

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.

render_filled_previewA

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.

add_fieldA

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.

update_fieldC

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.

update_fieldsA

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.

remove_fieldC

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

remove_fieldsB

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

prune_fieldsA

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).

fill_pdfA

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.

save_templateA

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).

list_templatesC

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

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/mrmaciej1/justfill-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server