Skip to main content
Glama

Fill a form from documents or notes

fill_form_from_context

Fill a PDF form using facts found in supporting documents. Emboss reads the answers out of context_text and/or context_urls (public https links to PDFs, Word, spreadsheets, images, or text) and fills the form. Give form_id for a form already in the library, or pdf_url/pdf_base64 for a new one. Give library= from find_form to start from a form Emboss already keeps. policy is safe (write high and medium confidence) or strict (high only). Returns a job_id; poll get_job about every 20 seconds. Billed as one context fill; the first 5 each month are free. Optional retention: ephemeral or account_default (default: the account's own setting); it applies only when this call creates the form (pdf_url, pdf_base64 or library), since an existing form keeps the setting it was created with. Ephemeral processing: source and output documents are deleted 60 to 70 minutes after the last activity on a form. Pass dry_run=true to rehearse this call without doing it: nothing is stored, charged or sent, and no AI is used. The answer says whether the real call would succeed or be refused, what it would cost, and what a rehearsal cannot check.

Input Schema

NameRequiredDescriptionDefault
policyNosafe
dry_runNo
form_idNo
libraryNo
pdf_urlNo
retentionNo
pdf_base64No
context_textNo
context_urlsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "context_text": "Grace Hopper, born 9 December 1906, 1 Navy Way, Arlington, VA 22202.",
      -    "form_id": "11111111-2222-3333-4444-555555555555",
      -    "policy": "safe"
      -  }
      -]New value: +[
      +  {
      +    "context_text": "Grace Hopper, born 9 December 1906, 1 Navy Way, Arlington, VA 22202.",
      +    "form_id": "11111111-2222-3333-4444-555555555555",
      +    "policy": "safe"
      +  },
      +  {
      +    "context_text": "Grace Hopper, born 9 December 1906, 1 Navy Way, Arlington, VA 22202.",
      +    "dry_run": true,
      +    "form_id": "11111111-2222-3333-4444-555555555555",
      +    "policy": "safe"
      +  }
      +]
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "default": false,
      +  "title": "Dry Run",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "context_text": "Grace Hopper, born 9 December 1906, 1 Navy Way, Arlington, VA 22202.",
      +    "form_id": "11111111-2222-3333-4444-555555555555",
      +    "policy": "safe"
      +  }
      +]
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Well beyond the annotations, it discloses asynchronous job behavior (returns job_id, poll get_job every ~20s), billing (one context fill, first 5 monthly free), retention scoping rules and the ephemeral 60–70 minute deletion window. The dry_run paragraph even explains what a rehearsal cannot verify, which is unusually candid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and source-selection rules, then billing and retention. It is dense and somewhat run-on around retention/ephemeral/dry_run, but every sentence contributes operational information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter, asynchronous, billable, file-touching write tool, the description covers inputs, cost, lifecycle, polling and rehearsal. With an output schema present, no return-value explanation is needed, and nothing material to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full load, and it defines all nine parameters: policy values (safe vs strict with their confidence thresholds), the three form-source options, context inputs, retention values and their applicability, and dry_run. This is exactly what the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource — fill a PDF form using facts extracted from context_text/context_urls — which is far more specific than the title alone. It does not, however, contrast itself with close siblings like fill_form, fill_batch, or prepare_form, so an agent must infer that this is the context-driven variant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing between input modes (form_id for an existing library form, pdf_url/pdf_base64 for a new one, library=<slug> from find_form) and names get_job for polling. It never states when to prefer a sibling tool such as fill_form or fill_batch, which is the remaining ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.