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.

Extract Insurance

NPM · EXTRACT-INSURANCE

Insurance documents into JSON, with the quote and page behind every value.

Available components

+4 this week 66 Trust /100

Last scanned (19 minutes ago)

Scores higher than 33% of npm servers

Category Documents and Files

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 Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4801 tokens (~109/item across 44 items; 44 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 Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage88
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 63% of tool parameters carry a description.Partial
Tool Safety92
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 4 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "preview_publish" implies "publish" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 45 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
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.

  • 5 Nov 26 +1

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

  • 3 Nov 26 +1

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

  • 1 Nov 26 +16
    • Malware scan: unverified → pass ▲ security
  • 31 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.2.0 → 1.2.1 functional
  • 30 Oct 26 +1

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

  • 28 Oct 26 62

    First indexed and scored.

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 5 Nov 2026 · Analysed npm/extract-insurance@1.2.1

Provenance No attestation

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

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 92 packages
Packages resolved 92
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 44 exposed · ~4,280 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
accept_all ~56

Accepts every value not answered yet as right (all: also resolved and missing ones); never a disputed field. Only when the person says the rest is right.

NameTypeReqDescription
allboolean––
job_idstringyes–

No output schema declared.

No examples provided.

add_credit_link ~49

The Account page's billing section, where an owner adds credit and sets the spend limit, the low-balance alert and automatic top-up. A key never changes billing; show the person the link.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

add_sample ~79

Adds a document on this machine to a workflow's samples: publishing is checked against them. It uses the account's free documents first, and is read in the background (preview_publish waits for it).

NameTypeReqDescription
file_pathstringyes–
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

add_target ~146

Adds a target to the workflow's draft: the person's JSON Schema, a PDF or Excel template, or our standard schema (standard: true). Then map it (triage_target, save_draft) and preview_publish.

NameTypeReqDescription
namestring––
schemaobject–The person's JSON Schema (or an example of their JSON).
schema_filestring–Or the path of that file.
standardboolean––
template_filestring–Or a fillable PDF or an .xlsx to fill with each document's values.
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

answer_ticket ~101

Adds the person's answer to a ticket; it waits on us again (a closed one opens again). Only when the person asks: show them the message first, in their words. A person on our side answers, by email to whoever opened the ticket and in the app (Account → Support).

NameTypeReqDescription
messagestringyesThe person's answer, in their words.
ticketstringyesThe ticket's id (tkt_…), from list_tickets.

No output schema declared.

No examples provided.

api_read ~79

Any other GET from the Extract Insurance API (described at https://api.extractinsurance.dev/v1/openapi.json), as the person: e.g. /v1/workflows/{id}/versions/2, /v1/jobs/{id}/reviews.

NameTypeReqDescription
pathstringyesUnder /v1, e.g. /v1/account.

No output schema declared.

No examples provided.

close_ticket ~45

Closes a ticket the person says is settled; answering it later opens it again.

NameTypeReqDescription
ticketstringyesThe ticket's id (tkt_…), from list_tickets.

No output schema declared.

No examples provided.

compare_versions ~58

What the mapping changes between two versions, or a version and the draft.

NameTypeReqDescription
fromintegeryes–
to–yes–
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

create_workflow ~111

A new workflow (a draft). Its target is the person's JSON Schema, a PDF or Excel template, else our standard schema. Next: add_sample, then preview_publish and publish_workflow.

NameTypeReqDescription
namestringyes–
schemaobject–The person's JSON Schema (or an example of their JSON).
schema_filestring–Or the path of that file.
template_filestring–Or a fillable PDF or an .xlsx to fill with each document's values.

No output schema declared.

No examples provided.

create_workflow_key ~279

Makes a key for one workflow (what production uses: it runs that workflow and reads its jobs) and writes it into an env file on this machine, never into the chat. Use an uncommitted file such as .env.local. Returns the key's id and where it went. Code that calls the workflow: POST https://api.extractinsurance.dev/v1/jobs with Authorization: Bearer <key> and the file as the multipart part document (optional part version pins one; default the latest published) → 202 {id}; GET /v1/jobs/{id} until status is no longer queued or running, or let the workflow's webhook receive it; then result.targets.<target id>.value. Read the key from the environment, never write it into the code.

NameTypeReqDescription
env_filestringyesThe file to write it to, e.g. .env.local (created if missing; an existing line for env_var is replaced).
env_varstring–The variable's name (default EXTRACT_WORKFLOW_KEY).
modestring–live (default): published versions; test: also the draft.
namestring–The key's name, e.g. "production".
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

extract_document ~359

Reads one insurance document: a file on this machine (file_path) or an https link (url). PDF, PNG, JPG, HEIC, DOCX, XLSX, CSV, .eml or ZIP. Without workflow or schema you get our standard schema (everything we read); with the person's JSON Schema, their shape; with a workflow, its targets. Returns the result if it ends within wait_seconds (most documents take 40–170 s), else the job id for get_job. Each field: status (accepted, resolved, disputed, missing), value, quote and page; a missing field's absence says why. A file of several documents lists each with its own job_id. Costs $0.15 plus model usage.

NameTypeReqDescription
fieldsarray–Only fields whose path starts with one of these, e.g. ["named_insured", "vehicles"]: for a long document.
file_pathstring–A document on this machine (absolute, or relative to the project).
onlyarray–Only fields with these statuses, e.g. ["disputed"].
schemaobject–The person's JSON Schema, as an object.
schema_filestring–Or the path of their JSON Schema file.
urlstring–An https link we can fetch (public or signed).
wait_secondsinteger–How long to wait for the end, in seconds (default 45, at most 55: many clients give up at 60). If it isn't done by then, you get the job id: call get_job.
workflowstring–Run one of the person's workflows (id or slug; append @3 or @draft to pin a version).

No output schema declared.

No examples provided.

get_activity ~36

Who did what in the account, newest first, with the key each change was made with (owners).

NameTypeReqDescription
limitinteger––

No output schema declared.

No examples provided.

get_billing ~41

The balance, credit left with its expiry, the monthly spend limit and what's spent, the low-balance alert, automatic top-up, the free documents used.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_evidence ~190

A picture of the part of the page a field was read from, as the app shows it: each reading's place boxed (green; red when its quote wasn't found word for word); for a cell of a table, the rest of its row (blue, dashed) and the column headers. For a disputed field, to show the person what the page says. For a file of several documents, use that document's job_id. Needs the job's document: not after the account's "delete right after reading" (then the quote and page in the result are what there is). PDF, PNG, JPG and HEIC.

NameTypeReqDescription
fieldstringyesThe field's path, as in the result: named_insured.name, vehicles[1].vin.
job_idstringyes–
targetstring–For a workflow with several targets: which target's field.

No output schema declared.

No examples provided.

get_job ~153

A job's status, where it is, and its result once done; waits up to wait_seconds for the end. fields and only keep a long result small.

NameTypeReqDescription
fieldsarray–Only fields whose path starts with one of these, e.g. ["named_insured", "vehicles"]: for a long document.
job_idstringyes–
onlyarray–Only fields with these statuses, e.g. ["disputed"].
wait_secondsinteger–How long to wait for the end, in seconds (default 45, at most 55: many clients give up at 60). If it isn't done by then, you get the job id: call get_job.

No output schema declared.

No examples provided.

get_review ~74

A job's disputed fields with each reading (value, quote, page, whether the quote was found word for word) and what the person has answered so far. Show them the readings (get_evidence crops the page) and ask which is right; record their answer with record_answer.

NameTypeReqDescription
job_idstringyes–

No output schema declared.

No examples provided.

get_reviewed ~28

The job's result with the person's answers in it.

NameTypeReqDescription
job_idstringyes–

No output schema declared.

No examples provided.

get_standard_schema ~35

The fields we read from insurance documents, as a JSON Schema: to pick fields, or to write the person's schema against ours.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_ticket ~48

A ticket's messages, oldest first (from_us: our answer), and the runs it names.

NameTypeReqDescription
ticketstringyesThe ticket's id (tkt_…), from list_tickets.

No output schema declared.

No examples provided.

get_usage ~35

The month's documents and cost, per workflow, use and key (YYYY-MM; default this month).

NameTypeReqDescription
monthstring––

No output schema declared.

No examples provided.

get_workflow ~74

One workflow: its draft (targets with their schemas and mappings, policy with its gate: which documents get in), versions, samples with their review, settings, and whether the draft differs from the published version.

NameTypeReqDescription
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

list_runs ~62

The workflow's production jobs, newest first: status, file, version, cost, and per target what was filled.

NameTypeReqDescription
limitinteger––
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

list_tickets ~60

The account's support tickets, newest change first, with where each stands: open (waiting on us), waiting (on the person), closed. Also the account's last runs, to name in open_ticket.

NameTypeReqDescription
statusstring–Default all.

No output schema declared.

No examples provided.

list_workflow_keys ~42

The workflow's keys (never their tokens).

NameTypeReqDescription
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

list_workflows ~24

The person's workflows: id, slug, name, published version, samples.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

open_ticket ~112

Opens a support ticket: a value read wrong, a run that failed, billing. job_ids names the runs it's about (from list_tickets' recent_jobs or get_job). Only when the person asks: show them the message first, in their words. A person on our side answers, by email to whoever opened the ticket and in the app (Account → Support).

NameTypeReqDescription
job_idsarray––
messagestringyesThe person's question, in their words.
subjectstringyes–

No output schema declared.

No examples provided.

preview_publish ~128

What publishing the draft would change: the mapping, and the values on every sample (values the person confirmed are marked). Show it to the person; its confirmation token is what publish_workflow needs, once they say yes.

NameTypeReqDescription
wait_secondsinteger–How long to wait for the end, in seconds (default 45, at most 55: many clients give up at 60). If it isn't done by then, you get the job id: call get_job.
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

preview_sample ~129

What one sample gives in each of the draft's targets, as production would send it once published: to check a mapping before preview_publish.

NameTypeReqDescription
job_idstringyesThe sample's job id, from get_workflow.
wait_secondsinteger–How long to wait for the end, in seconds (default 45, at most 55: many clients give up at 60). If it isn't done by then, you get the job id: call get_job.
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

publish_workflow ~99

Publishes the draft as the next version: production runs it from now on. Needs the confirmation from preview_publish of this same draft, and the person's yes. To roll back: restore_version, then publish again.

NameTypeReqDescription
confirmationstringyesFrom preview_publish.
notestring–What changed, for the version list.
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

record_answer ~178

Saves what the person said a field is: one of its readings (reading, from get_review), the value they typed (value), that the document doesn't have it (not_in_document), or that the value as read is right (confirm); clear takes an answer back. Only their own answer, never your pick. A dispute they settle on a form is used on the account's next documents of that form.

NameTypeReqDescription
clearboolean–Take back an answer given before (the person changed their mind).
confirmboolean––
fieldstringyesThe field's path, as in get_review.
job_idstringyes–
not_in_documentboolean––
notestring–The person's words, if they gave a reason.
readinginteger––
value–––

No output schema declared.

No examples provided.

remove_sample ~59

Takes a document out of the workflow's samples.

NameTypeReqDescription
job_idstringyesThe sample's job id, from get_workflow.
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

request_one_document ~116

A file we cut into several documents (each charged) that the person says is one document: asks us to look. Only our approval gives back the fees past the first. Only when the person says so. Without note: where an earlier request stands. If the file was deleted after reading, give file_path to send it again.

NameTypeReqDescription
file_pathstring––
job_idstringyesThe file's job (not one of its documents).
notestring–The person's reason, in their words.

No output schema declared.

No examples provided.

restore_version ~52

Copies an earlier version into the draft (publish it to roll back).

NameTypeReqDescription
versionintegeryes–
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

revoke_workflow_key ~61

Stops a workflow key at once: production using it gets 401. Only when the person asks.

NameTypeReqDescription
key_idstringyes–
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

save_document ~74

The document a job read (for one document of a file, its own pages), saved on this machine, while we keep it: not after the account's "delete right after reading".

NameTypeReqDescription
job_idstringyes–
save_tostringyesWhere to save it, e.g. out/policy.pdf.

No output schema declared.

No examples provided.

save_draft ~297

Replaces the workflow's draft: send the draft from get_workflow, edited (name, targets with their mappings, policy: resolve_confidence, gate). The published version is untouched until publish_workflow. Which documents get in: policy.gate = {accept: [one choice], on_mismatch, when_unsure}; leave gate out to let every document in. accept: "insurance" (any insurance document); one kind: "policy" (policies, quotes, binders, endorsements), "submission" (applications, loss runs, schedules), "claims", "certificate" (certificates and evidence of insurance), "billing" (invoices, premium audits); or one type of page: "declarations", "loss_run", "application", "certificate_of_insurance". on_mismatch, for a document that is clearly something else: "reject" (refuse it; default) or "warn" (read it anyway, with a warning). when_unsure: "extract" (read it, with a warning; default) or "reject". A refused document costs only the check and is not an extraction; job status "rejected", result.rejected.reason says why. It filters out documents that don't belong; it is not a security control.

NameTypeReqDescription
draftobjectyes–
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

save_filled_file ~133

For a workflow with a PDF or Excel target: that file filled with a job's values, saved on this machine (never into the chat). With workflow, the job is one of its samples and the file is filled as the draft would.

NameTypeReqDescription
job_idstringyes–
save_tostringyesWhere to save it, e.g. out/acord-125.pdf.
targetstringyesThe target's id, from the job's result.targets or the workflow's draft.
workflowstring–For a sample: the workflow, to fill it as its draft would.

No output schema declared.

No examples provided.

sign_in ~109

Signs this machine in to Extract Insurance. The first call returns a link and a code: show both to the person and ask them to open the link, check the code and approve. Then call sign_in again: it waits for the approval and saves the key (shared with the extract-insurance CLI; it stops after 90 days without use). Already signed in: says as whom.

NameTypeReqDescription
wait_secondsinteger–How long to wait for the approval on a later call (default 45).

No output schema declared.

No examples provided.

sign_out ~26

Revokes the saved key and deletes it from this machine. Only when the person asks.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

test_webhook ~48

Sends a signed test delivery to the workflow's webhook and says what it answered.

NameTypeReqDescription
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

triage_target ~100

For one target of the draft, which of our fields fills each of the person's fields: sure, choose (with candidates), or unknown. Use it to decide the mappings, then save_draft.

NameTypeReqDescription
hints–––
onlyarray––
targetstringyesThe target's id, from get_workflow.
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

update_account_settings ~135

How long the account keeps documents (retention_days; null: our default), whether each one is deleted right after it's read (delete_after_read), and whether we may use its documents to improve our reading (improve: the person's consent, only when they say so in their own words); the account's name. Owners only; a workflow's own settings are update_workflow_settings. A shorter retention or deleting right after reading also ends page crops for documents read from then on.

NameTypeReqDescription
delete_after_readboolean––
improveboolean––
namestring––
retention_days–––

No output schema declared.

No examples provided.

update_workflow_settings ~135

The workflow's settings, live at once (not versioned): webhook_url (https; null: none), retention_days (how long documents are kept), results_retention_days (how long results are kept), delete_after_read. null: the account's setting. Which documents get in (the gate) is in the draft's policy: save_draft.

NameTypeReqDescription
delete_after_readboolean|null––
results_retention_days–––
retention_days–––
webhook_url–––
workflowstringyesThe workflow's id (wf_…) or its slug, from list_workflows.

No output schema declared.

No examples provided.

whoami ~25

The account, the key in use and the role of the person it acts as.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the Extract Insurance MCP server?

Extract Insurance runs locally as an npm package, launched with npx -y extract-insurance. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · extract-insurance

# add to Claude Code
claude mcp add dev-extractinsurance-extract-insurance -- npx -y extract-insurance
Common questions

What is the Extract Insurance MCP server?

Extract Insurance is an MCP server listed in the public MCP registry as dev.extractinsurance/extract-insurance. Insurance documents into JSON, with the quote and page behind every value. This page covers its npm package (extract-insurance).

Is the Extract Insurance MCP server safe to use?

Extract Insurance scores 66 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. 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 Extract Insurance MCP server expose?

Extract Insurance exposes 44 tools: sign_in, sign_out, whoami, extract_document, get_job, and 39 more. Their descriptions and schemas cost roughly 4,280 tokens of context every time the server is loaded.

Is the Extract Insurance MCP server still maintained?

Extract Insurance is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Extract Insurance MCP server under?

Extract Insurance declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.