Repository navigation
Expand file tree
/
Copy pathtools.json
More file actions
1 lines (1 loc) · 128 KB
/
Copy pathtools.json
File metadata and controls
1 lines (1 loc) · 128 KB
1
[{"name":"upload_documents","title":"Upload documents","description":"Upload local files once for parse_document, extract_fields and classify_document. A remote server cannot read local paths:\npass each file\u0027s filename, content_type and path, then run the returned document_request.command once, as returned.\nIt stores every file in DWS and prints an asset_id for each, in order. Pass an asset_id to the processing tool with the\nsame tenant_id, and reuse it for further operations on that file instead of uploading again. Uploading is free and processes\nnothing; documents expire after 24 hours. The command\u0027s credential lasts at most five minutes: run it at once, and if it has\nexpired call upload_documents again.","inputSchema":{"type":"object","properties":{"documents":{"description":"Local files to upload, 1 to 20: filename, content_type and path for each.","type":"array","items":{"type":"object","properties":{"filename":{"description":"Original filename, including its extension.","type":"string","minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":"string","minLength":1,"maxLength":128},"path":{"description":"The file\u0027s path on your machine, exactly as your shell needs it. It only completes the returned command; the server never reads or stores it.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false},"minItems":1,"maxItems":20},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128}},"required":["documents"]},"outputSchema":{"type":"object","properties":{"status":{"description":"awaiting_upload: run document_request.command now; it prints an asset_id for each file.","type":["string","null"]},"product":{"type":["string","null"]},"tenant_id":{"type":["string","null"]},"document_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]},"guidance":{"type":"string"}},"required":["document_request","guidance"]},"annotations":{"title":"Upload documents","destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}},{"name":"parse_document","title":"Parse document","description":"Use it when the user asks to parse, OCR, transcribe or convert a document to Markdown, including a file attached to the chat:\nDWS Parse returns OCR for scans, reading order, tables and element positions, as a stored run. For a question about a document\nwhose text you can read, read it yourself instead; parse a scan or an image-only PDF you can\u0027t read.\nFor a local file pass asset_id from upload_documents. Omit instructions for the default: agentic mode, visual reasoning with\nself-correction, returning Markdown and spatial elements together in one pass; the second format costs nothing extra. Choose mode\ntext or structure only when the user wants a faster, cheaper parse. The call waits briefly and usually returns the finished run;\nif status is queued or running, wait poll_after_seconds and use get_run until terminal. Then read what the task needs:\nresult.output.markdown for the text, or result.output.elements, JSON with each element\u0027s type, content and bounds.{x,y,width,height}\nin rendered page pixels from the page\u0027s top-left; page gives width/height/pageIndex/pageNumber. Missing geometry is unknown, not zero.\nWhen the result is compacted, read_result reads either with view=native and pointer /output/markdown or /output/elements, without\nparsing again. Use extract_fields for structured fields.","inputSchema":{"type":"object","properties":{"instructions":{"description":"Native DWS Parse configuration; omit for agentic mode with Markdown and spatial output. Choose inline mode/options/output or a stored processor with optional version/storeRun. Do not combine these modes.","type":["object","null"],"properties":{"mode":{"description":"agentic: visual reasoning with self-correction for complex documents, the MCP default and the most costly; understand: semantic analysis; structure: OCR with geometry; text: plain text to Markdown, the fastest and cheapest.","type":["string","null"],"enum":["text","structure","understand","agentic"]},"processor":{"description":"Stored parse processor ID (proc_\u2026). Mutually exclusive with mode, options and output.","type":["string","null"]},"version":{"description":"Published processor version: a positive integer, or the string \u0027latest\u0027 (the default). Only used with processor. Pin a numeric version for repeatable async submissions: omitted/latest may resolve to a newer version on retry and conflict with the original idempotency key."},"options":{"description":"OCR language detection options for structure, understand and agentic parsing.","type":["object","null"],"properties":{"language":{"description":"OCR language: a string such as \u0027english\u0027, \u0027eng\u0027 or \u0027eng\u002Bspa\u0027, or an array of language strings such as [\u0027eng\u0027,\u0027spa\u0027]. \u0027auto\u0027 enables automatic detection for Data Extraction."},"maxLanguages":{"description":"Maximum detected languages per page when language is auto. Default 2.","type":["integer","null"],"minimum":1,"maximum":2147483647},"maxScripts":{"description":"Maximum detected scripts per page when language is auto. Default 2.","type":["integer","null"],"minimum":1,"maximum":2147483647}}},"output":{"description":"Omitted: markdown and spatial together (markdown only in text mode). When output is supplied, choose exactly one of format or formats. text mode only supports markdown; other modes also support spatial. Multiple formats use one processing pass.","type":["object","null"],"properties":{"format":{"description":"One output format; mutually exclusive with formats.","type":["string","null"],"enum":["spatial","markdown"]},"formats":{"description":"One or more output formats. Mutually exclusive with format.","type":["array","null"],"items":{"type":"string","enum":["spatial","markdown"]},"minItems":1},"includeWords":{"description":"Include word-level OCR inside spatial elements. Defaults to false.","type":["boolean","null"]},"useHtmlTables":{"description":"Render Markdown tables as HTML to preserve merged cells. Defaults to true; requires markdown output.","type":["boolean","null"]},"enableSemanticBlockFormatting":{"description":"Include semantic footnote, caption and picture markers in Markdown. Defaults to true.","type":["boolean","null"]},"includeHeadersAndFooters":{"description":"Include running headers and footers in Markdown. Defaults to false.","type":["boolean","null"]},"extractWordsFromPictures":{"description":"Include recognized picture text in Markdown. Defaults to false.","type":["boolean","null"]}}},"storeRun":{"description":"Async Data Extraction always stores the native run using DWS quotas and retention. Omit or pass true; false is rejected before submission.","type":["boolean","null"]}},"default":null},"asset_id":{"description":"asset_id that upload_documents printed for a local file, used with the same tenant_id. Reuse it for further operations on the same file instead of uploading again.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"document":{"description":"A remote or small document instead of asset_id: filename, content_type and either an HTTPS url that DWS fetches or exact content_base64 of at most 1 MiB. For a local file use upload_documents and asset_id.","type":["object","null"],"properties":{"filename":{"description":"Original document filename, including its extension.","type":["string","null"],"minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":["string","null"],"minLength":1,"maxLength":128},"content_base64":{"description":"Exact base64 of a small file, at most 1 MiB decoded. Never transcribe large base64 into model context.","type":["string","null"],"minLength":4,"maxLength":1398104},"url":{"description":"HTTPS URL that DWS fetches itself. Mutually exclusive with content_base64.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false,"default":null},"source_run_id":{"description":"For NEW work, reuse the original input of an existing retained extraction run in the same tenant instead of asset_id or document. It processes and charges again; it is not a retry or the earlier result.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"idempotency_key":{"description":"Optional submission key: 1\u2013255 visible ASCII characters (! through ~), no whitespace. Usually omit it: MCP derives one from this request, so repeating the same call replays its run instead of processing and charging again. An intent extraction regenerates its schema, so repeating it returns idempotency_conflict, not the earlier run. Supply a new key only to run identical work again on purpose. Pin a numeric stored-processor version, because latest can resolve differently on a repeat. Never include personal data or credentials.","type":["string","null"],"default":null,"pattern":"^[!-~]\u002B$","minLength":1,"maxLength":255},"chat_file":{"type":"object","description":"Filled in by hosts that pass a file the user attached to the chat (ChatGPT). Never write it yourself: use document.","properties":{"download_url":{"type":"string"},"file_id":{"type":"string"},"mime_type":{"type":"string"},"file_name":{"type":"string"}},"required":["download_url","file_id"]},"attached_file":{"type":"object","description":"Only when upload_documents\u0027 command could not reach Nutrient from where the file is (for example HTTP 403 \u0022Host not in allowlist\u0022): the file the user attached to this chat, instead of asset_id, one call per file. The Nutrient panel asks the user for it, uploads it and runs this call; nothing is processed until then.","properties":{"filename":{"type":"string","description":"The file\u0027s name, including its extension."},"content_type":{"type":"string","description":"Its MIME type, such as application/pdf."}},"required":["filename","content_type"]}}},"outputSchema":{"type":"object","properties":{"run_id":{"type":["string","null"]},"product":{"description":"Keep this original product with run_id for later reads.","type":["string","null"]},"tenant_id":{"type":["string","null"]},"operation":{"type":["string","null"]},"idempotency_key":{"description":"Submission key, yours or derived from the request. The same request under the same key replays this run instead of processing again; a regenerated intent schema is a different request.","type":["string","null"]},"idempotency_replayed":{"description":"True only when DWS confirms this submission reused an existing retained run; no new processing was submitted.","type":["boolean","null"]},"poll_after_seconds":{"description":"For queued/running runs, wait at least this long before get_run/read_result and back off if still pending. Acceptance is not completion.","type":["integer","null"]},"retry_after_seconds":{"description":"When read_warning reports a capacity or temporary read failure, wait at least this long before reading the same retained run again. Never resubmit processing to retry a read.","type":["integer","null"]},"run_error":{"description":"Native DWS run failure, with DWS\u0027s caller-specific redaction preserved.","type":["object","null"]},"usage":{"description":"Native DWS usage for this retained run. An empty object is not proof that execution was free or that billing has settled.","type":["object","null"]},"guidance":{"type":["string","null"]},"read_warning":{"type":["string","null"]},"file_name":{"description":"The input file\u0027s name as DWS recorded it.","type":["string","null"]},"schema_fields":{"description":"Extraction only: the top-level fields of the schema this run extracts, generated or supplied. Check they cover the user\u0027s request.","type":["array","null"],"items":{"type":"string"}},"status":{"description":"queued/running: wait poll_after_seconds and use get_run until terminal; succeeded: inspect result, or use read_result when no values are included; failed: inspect run_error; canceled: ended without a result. Never automatically resubmit uncertain processing.","type":"string"},"result":{"description":"Full native product JSON for small responses. Larger responses use result_summary; download output_assets for complete evidence.","type":["object","null"]},"result_omitted":{"description":"True when result values could not be returned inline. Use download instructions or the retained run; omitted values are not empty data.","type":["boolean","null"]},"review":{"description":"Extraction review signals, not an accuracy verdict. verified=false; signals reference JSON pointers in output.data/metadata. Preserve warnings with saved results.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"fields_inspected":{"type":"integer"},"low_confidence_threshold":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"severity":{"description":"check: inspect the field in the original before relying on it. info: a limit of the evidence (a field the document lacks, low DWS groundedness, which also scores correct reformatted values such as ISO dates low, a choice, signature or barcode that cited text cannot prove), reported for completeness.","type":"string"}},"required":["code","fields","severity"]}},"truncated":{"type":"boolean"},"guidance":{"type":["string","null"]}},"required":["status","signals"]},"result_summary":{"description":"Compact alternative to result. Data is included unchanged only if it fits entirely; full native evidence remains in output_assets.","type":["object","null"],"properties":{"data":true,"data_included":{"type":"boolean"},"native_result_bytes":{"type":"integer"},"guidance":{"type":"string"}},"required":["guidance"]},"review_summary":{"description":"Compact alternative to review. Includes counts and selected signals; omitted_signals/source_truncated make limitations explicit.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"signal_counts":{"type":"object","additionalProperties":{"type":"integer"}},"signals":{"type":"array","items":{}},"omitted_signals":{"description":"Canonical signals left out of this compact summary only. They remain readable with read_result view=review; this is not the count of warnings missing upstream.","type":"integer"},"source_truncated":{"description":"The bounded MCP review is not exhaustive. Any additional missing warnings are unknown; this is independent of omitted_signals, which remain accessible.","type":"boolean"},"guidance":{"type":"string"}},"required":["status","signal_counts","signals","guidance"]},"output_assets":{"description":"Existing DWS artifacts with authenticated download requests.","type":["array","null"],"items":{"type":"object","properties":{"role":{"type":"string"},"content_type":{"type":["string","null"]},"download_url":{"description":"Native DWS asset URL; requires DWS OAuth. Use download_request for a harness without that credential.","type":"string"},"authentication":{"type":["string","null"]},"download_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]}},"required":["role","content_type","download_url","download_request"]}},"retained_until":{"type":["string","null"],"format":"date-time"},"result_access":{"description":"Suggested read_result arguments for inspecting retained JSON without new processing or shell scripts.","type":["object","null"],"properties":{"tool":{"type":"string"},"run_id":{"type":"string"},"product":{"type":"string"},"view":{"type":"string"},"pointer":{"type":"string","default":""},"tenant_id":{"type":["string","null"],"default":null}},"required":["tool","run_id","product","view"]},"result_directory":{"description":"Available views and bounded paths/counts. Use string character counts to jump to a suffix; arrays are not expanded into records.","type":["object","null"],"properties":{"available_views":{"type":"array","items":{"type":"string"}},"entries":{"type":"array","items":{"type":"object","properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"},"total_characters":{"type":["integer","null"],"default":null}},"required":["view","pointer","kind","item_count"]}},"truncated":{"description":"Some child paths were omitted by the depth/count/byte bounds; read a parent to explore further.","type":"boolean"}},"required":["available_views","entries","truncated"]}},"required":["status"]},"annotations":{"title":"Parse document","destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://nutrient/workbench-08956a8c0531.html"},"openai/fileParams":["chat_file"]}},{"name":"extract_fields","title":"Extract fields","description":"Use it when the user asks to extract, pull out or get fields, values, line items or tables from a document, including a file\nattached to the chat: DWS cites where each value comes from, as a stored run. Infer a concise intent from the user\u0027s request: MCP generates the schema with DWS\nand extracts against it, so no parse call is needed first. intent and document_type are TOP-LEVEL arguments, never inside\ninstructions; omit instructions for this simple path. For a local file pass asset_id from upload_documents, for example\n{\u0022intent\u0022:\u0022Extract the invoice number and total\u0022,\u0022asset_id\u0022:\u00223f2a9c1e-6b7d-4e8f-9a0b-1c2d3e4f5a6b\u0022}. Alternatively supply instructions.schema or\ninstructions.processor. The call waits briefly and usually returns the finished run; if status is queued or running, wait\npoll_after_seconds and use get_run until terminal. Finish the user\u0027s request with the values in result.output.data or\nresult_summary.data; use read_result for larger results and output_assets.download_request to save the native JSON.\nmetadata keeps per-field confidence and citations; schema is the generated schema, and schema_fields lists its top-level fields:\ncheck they cover the request. For several files of one kind, extract the first, then pass the same intent with instructions.schema\nset to its schema (result.output.schema, or read_result view=schema when the result is compacted) for the others: nothing is\nregenerated and every file returns the same fields. generate_schema returns the\nschema without extracting. Save MCP review warnings beside the native result, not inside it. Success does not verify accuracy:\nreport review signals (check before info), keep identifiers as strings and unanswered fields unknown.\nFor repeated tests or items, request individual records with their document/patient identifiers and dates.\nIf the user asks for a comparison, finish it after reading the records: match the same subject and test/item,\norder by the relevant source date (collection date for labs, not report-release date), and compare only compatible units. Show the source values\nand dates with the calculated change, labelled as derived analysis separate from native extraction data.\nDo not silently match different subjects, missing dates, ambiguous duplicates or incompatible units; state those gaps. When you pass attached_file, read that file first and pass preview with the values you read: the Nutrient panel shows them right away, labelled as your reading, until Nutrient has the file.","inputSchema":{"type":"object","properties":{"intent":{"description":"Top-level extraction goal inferred from the user: fields, grouping, formats and constraints. Never put intent inside instructions. Omit instructions for ordinary requests. For broad requests let DWS discover fields; do not invent unrequested fields. Exclusive with processor; with instructions.schema the schema is used instead of generating one.","type":["string","null"],"default":null,"minLength":1,"maxLength":8000},"document_type":{"description":"Optional known document type inferred from the user request. Omit when unknown. Only used with intent.","type":["string","null"],"default":null,"minLength":1,"maxLength":200},"instructions":{"description":"With intent, optional schema/parseConfig/options/storeRun only. MCP defaults options.multimodal=true for visual layout, with higher cost/latency; explicit false is preserved. Without intent, supply schema or processor using native defaults.","type":["object","null"],"properties":{"processor":{"description":"Stored extract processor ID (proc_\u2026). Exclusive with intent, schema, instructions, parseConfig and options.","type":["string","null"]},"version":{"description":"Published processor version: a positive integer, or the string \u0027latest\u0027 (the default). Only used with processor. Pin a numeric version for repeatable async submissions: omitted/latest may resolve to a newer version on retry and conflict with the original idempotency key."},"schema":{"description":"Explicit inline extraction schema; prefer the tool\u0027s intent to let DWS generate it. With intent, an earlier run\u0027s or generate_schema\u0027s schema replaces generation, normalized like a generated one, so files of one kind share their fields. Root type must be object. No $ref, $defs, composition or additionalProperties keywords. Limit 32 KB, 500 fields, 50 properties per object and 5 nesting levels.","type":["object","null"],"properties":{"type":{"description":"One scalar type name accepted by DWS. Type arrays and unions are unsupported; describe how to handle missing evidence in the field description.","type":["string","null"],"enum":["string","number","integer","boolean","array","object"]},"description":{"description":"Field-level extraction guidance.","type":["string","null"],"maxLength":4096},"properties":{"description":"Named fields of an object. Required at the root; at most 50 per object.","type":["object","null"],"additionalProperties":{"description":"A self-contained extraction field definition. Root requires type=object and properties; array fields require items; object fields use properties and required.","type":["object","null"],"properties":{"type":{"description":"One scalar type name accepted by DWS. Type arrays and unions are unsupported; describe how to handle missing evidence in the field description.","type":["string","null"],"enum":["string","number","integer","boolean","array","object"]},"description":{"description":"Field-level extraction guidance.","type":["string","null"],"maxLength":4096},"properties":{"description":"Named fields of an object. Required at the root; at most 50 per object.","$ref":"#/properties/instructions/properties/schema/properties/properties"},"required":{"description":"Property names the extraction must include.","type":["array","null"],"items":{"type":["string","null"]}},"items":{"description":"Element definition for an array field.","type":["object","null"],"properties":{"type":{"description":"One scalar type name accepted by DWS. Type arrays and unions are unsupported; describe how to handle missing evidence in the field description.","type":["string","null"],"enum":["string","number","integer","boolean","array","object"]},"description":{"description":"Field-level extraction guidance.","type":["string","null"],"maxLength":4096},"properties":{"description":"Named fields of an object. Required at the root; at most 50 per object.","$ref":"#/properties/instructions/properties/schema/properties/properties"},"required":{"description":"Property names the extraction must include.","$ref":"#/properties/instructions/properties/schema/properties/properties/additionalProperties/properties/required","items":{}},"items":{"description":"Element definition for an array field.","$ref":"#/properties/instructions/properties/schema/properties/properties/additionalProperties/properties/items"},"enum":{"description":"Allowed values for string fields; at most 50 values of 256 characters.","type":["array","null"],"items":{"type":["string","null"]},"maxItems":50},"format":{"description":"Only date is supported, for string fields.","type":["string","null"],"enum":["date"]}},"required":["type"]},"enum":{"description":"Allowed values for string fields; at most 50 values of 256 characters.","$ref":"#/properties/instructions/properties/schema/properties/properties/additionalProperties/properties/items/properties/enum","items":{},"maxItems":50},"format":{"description":"Only date is supported, for string fields.","type":["string","null"],"enum":["date"]}},"required":["type"]}},"required":{"description":"Property names the extraction must include.","$ref":"#/properties/instructions/properties/schema/properties/properties/additionalProperties/properties/required","items":{}},"items":{"description":"Element definition for an array field.","$ref":"#/properties/instructions/properties/schema/properties/properties/additionalProperties/properties/items"},"enum":{"description":"Allowed values for string fields; at most 50 values of 256 characters.","$ref":"#/properties/instructions/properties/schema/properties/properties/additionalProperties/properties/items/properties/enum","items":{},"maxItems":50},"format":{"description":"Only date is supported, for string fields.","type":["string","null"],"enum":["date"]}},"required":["type"]},"instructions":{"description":"Additional extraction guidance when supplying an explicit schema.","type":["string","null"],"maxLength":10000},"parseConfig":{"type":["object","null"],"properties":{"mode":{"description":"Parsing before extraction. Supported native modes: structure, understand or agentic.","type":["string","null"],"enum":["structure","understand","agentic"]},"options":{"description":"OCR language detection options for structure, understand and agentic parsing.","type":["object","null"],"properties":{"language":{"description":"OCR language: a string such as \u0027english\u0027, \u0027eng\u0027 or \u0027eng\u002Bspa\u0027, or an array of language strings such as [\u0027eng\u0027,\u0027spa\u0027]. \u0027auto\u0027 enables automatic detection for Data Extraction."},"maxLanguages":{"description":"Maximum detected languages per page when language is auto. Default 2.","type":["integer","null"],"minimum":1,"maximum":2147483647},"maxScripts":{"description":"Maximum detected scripts per page when language is auto. Default 2.","type":["integer","null"],"minimum":1,"maximum":2147483647}}}}},"storeRun":{"description":"Async extraction always stores the native run. Omit or pass true; false is rejected before schema generation or submission.","type":["boolean","null"]},"options":{"type":["object","null"],"properties":{"includeCitations":{"description":"Include per-field citations, bounds and confidence. Defaults to true.","type":["boolean","null"]},"strict":{"description":"Constrain the extraction model to the schema. Native default false.","type":["boolean","null"]},"multimodal":{"description":"Use page images as well as text, increasing cost and latency. MCP defaults to true with intent; false for explicit schema/processor native defaults. Explicit false is preserved.","type":["boolean","null"]},"includeGroundedness":{"description":"Measure whether citations support each value using an extra model pass. Defaults to true; adds latency.","type":["boolean","null"]}}}},"default":null},"asset_id":{"description":"asset_id that upload_documents printed for a local file, used with the same tenant_id. Reuse it for further operations on the same file instead of uploading again.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"document":{"description":"A remote or small document instead of asset_id: filename, content_type and either an HTTPS url that DWS fetches or exact content_base64 of at most 1 MiB. For a local file use upload_documents and asset_id.","type":["object","null"],"properties":{"filename":{"description":"Original document filename, including its extension.","type":["string","null"],"minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":["string","null"],"minLength":1,"maxLength":128},"content_base64":{"description":"Exact base64 of a small file, at most 1 MiB decoded. Never transcribe large base64 into model context.","type":["string","null"],"minLength":4,"maxLength":1398104},"url":{"description":"HTTPS URL that DWS fetches itself. Mutually exclusive with content_base64.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false,"default":null},"source_run_id":{"description":"For NEW work, reuse the original input of an existing retained extraction run in the same tenant instead of asset_id or document. It processes and charges again; it is not a retry or the earlier result.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"idempotency_key":{"description":"Optional submission key: 1\u2013255 visible ASCII characters (! through ~), no whitespace. Usually omit it: MCP derives one from this request, so repeating the same call replays its run instead of processing and charging again. An intent extraction regenerates its schema, so repeating it returns idempotency_conflict, not the earlier run. Supply a new key only to run identical work again on purpose. Pin a numeric stored-processor version, because latest can resolve differently on a repeat. Never include personal data or credentials.","type":["string","null"],"default":null,"pattern":"^[!-~]\u002B$","minLength":1,"maxLength":255},"chat_file":{"type":"object","description":"Filled in by hosts that pass a file the user attached to the chat (ChatGPT). Never write it yourself: use document.","properties":{"download_url":{"type":"string"},"file_id":{"type":"string"},"mime_type":{"type":"string"},"file_name":{"type":"string"}},"required":["download_url","file_id"]},"attached_file":{"type":"object","description":"Only when upload_documents\u0027 command could not reach Nutrient from where the file is (for example HTTP 403 \u0022Host not in allowlist\u0022): the file the user attached to this chat, instead of asset_id, one call per file. The Nutrient panel asks the user for it, uploads it and runs this call; nothing is processed until then.","properties":{"filename":{"type":"string","description":"The file\u0027s name, including its extension."},"content_type":{"type":"string","description":"Its MIME type, such as application/pdf."}},"required":["filename","content_type"]},"preview":{"type":"object","description":"Only with attached_file, when you have read that file: the values you read, keyed by the fields you ask for, for example {\u0022invoice_number\u0022: \u0022INV-1\u0022, \u0022total\u0022: \u002293.50\u0022}. The Nutrient panel shows them to the user, labelled as your reading, until Nutrient has processed the file. The service discards them: they are never stored or sent to DWS. At most 16 KiB."}}},"outputSchema":{"type":"object","properties":{"run_id":{"type":["string","null"]},"product":{"description":"Keep this original product with run_id for later reads.","type":["string","null"]},"tenant_id":{"type":["string","null"]},"operation":{"type":["string","null"]},"idempotency_key":{"description":"Submission key, yours or derived from the request. The same request under the same key replays this run instead of processing again; a regenerated intent schema is a different request.","type":["string","null"]},"idempotency_replayed":{"description":"True only when DWS confirms this submission reused an existing retained run; no new processing was submitted.","type":["boolean","null"]},"poll_after_seconds":{"description":"For queued/running runs, wait at least this long before get_run/read_result and back off if still pending. Acceptance is not completion.","type":["integer","null"]},"retry_after_seconds":{"description":"When read_warning reports a capacity or temporary read failure, wait at least this long before reading the same retained run again. Never resubmit processing to retry a read.","type":["integer","null"]},"run_error":{"description":"Native DWS run failure, with DWS\u0027s caller-specific redaction preserved.","type":["object","null"]},"usage":{"description":"Native DWS usage for this retained run. An empty object is not proof that execution was free or that billing has settled.","type":["object","null"]},"guidance":{"type":["string","null"]},"read_warning":{"type":["string","null"]},"file_name":{"description":"The input file\u0027s name as DWS recorded it.","type":["string","null"]},"schema_fields":{"description":"Extraction only: the top-level fields of the schema this run extracts, generated or supplied. Check they cover the user\u0027s request.","type":["array","null"],"items":{"type":"string"}},"status":{"description":"queued/running: wait poll_after_seconds and use get_run until terminal; succeeded: inspect result, or use read_result when no values are included; failed: inspect run_error; canceled: ended without a result. Never automatically resubmit uncertain processing.","type":"string"},"result":{"description":"Full native product JSON for small responses. Larger responses use result_summary; download output_assets for complete evidence.","type":["object","null"]},"result_omitted":{"description":"True when result values could not be returned inline. Use download instructions or the retained run; omitted values are not empty data.","type":["boolean","null"]},"review":{"description":"Extraction review signals, not an accuracy verdict. verified=false; signals reference JSON pointers in output.data/metadata. Preserve warnings with saved results.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"fields_inspected":{"type":"integer"},"low_confidence_threshold":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"severity":{"description":"check: inspect the field in the original before relying on it. info: a limit of the evidence (a field the document lacks, low DWS groundedness, which also scores correct reformatted values such as ISO dates low, a choice, signature or barcode that cited text cannot prove), reported for completeness.","type":"string"}},"required":["code","fields","severity"]}},"truncated":{"type":"boolean"},"guidance":{"type":["string","null"]}},"required":["status","signals"]},"result_summary":{"description":"Compact alternative to result. Data is included unchanged only if it fits entirely; full native evidence remains in output_assets.","type":["object","null"],"properties":{"data":true,"data_included":{"type":"boolean"},"native_result_bytes":{"type":"integer"},"guidance":{"type":"string"}},"required":["guidance"]},"review_summary":{"description":"Compact alternative to review. Includes counts and selected signals; omitted_signals/source_truncated make limitations explicit.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"signal_counts":{"type":"object","additionalProperties":{"type":"integer"}},"signals":{"type":"array","items":{}},"omitted_signals":{"description":"Canonical signals left out of this compact summary only. They remain readable with read_result view=review; this is not the count of warnings missing upstream.","type":"integer"},"source_truncated":{"description":"The bounded MCP review is not exhaustive. Any additional missing warnings are unknown; this is independent of omitted_signals, which remain accessible.","type":"boolean"},"guidance":{"type":"string"}},"required":["status","signal_counts","signals","guidance"]},"output_assets":{"description":"Existing DWS artifacts with authenticated download requests.","type":["array","null"],"items":{"type":"object","properties":{"role":{"type":"string"},"content_type":{"type":["string","null"]},"download_url":{"description":"Native DWS asset URL; requires DWS OAuth. Use download_request for a harness without that credential.","type":"string"},"authentication":{"type":["string","null"]},"download_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]}},"required":["role","content_type","download_url","download_request"]}},"retained_until":{"type":["string","null"],"format":"date-time"},"result_access":{"description":"Suggested read_result arguments for inspecting retained JSON without new processing or shell scripts.","type":["object","null"],"properties":{"tool":{"type":"string"},"run_id":{"type":"string"},"product":{"type":"string"},"view":{"type":"string"},"pointer":{"type":"string","default":""},"tenant_id":{"type":["string","null"],"default":null}},"required":["tool","run_id","product","view"]},"result_directory":{"description":"Available views and bounded paths/counts. Use string character counts to jump to a suffix; arrays are not expanded into records.","type":["object","null"],"properties":{"available_views":{"type":"array","items":{"type":"string"}},"entries":{"type":"array","items":{"type":"object","properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"},"total_characters":{"type":["integer","null"],"default":null}},"required":["view","pointer","kind","item_count"]}},"truncated":{"description":"Some child paths were omitted by the depth/count/byte bounds; read a parent to explore further.","type":"boolean"}},"required":["available_views","entries","truncated"]}},"required":["status"]},"annotations":{"title":"Extract fields","destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://nutrient/workbench-08956a8c0531.html"},"openai/fileParams":["chat_file"]}},{"name":"classify_document","title":"Classify document","description":"Use it when the user asks to classify documents or sort them into categories. Classify a document against at least two labels or\na stored classifier, as a stored DWS run. For a local file pass asset_id\nfrom upload_documents. Preserve topK and text/image branch controls; no parse is needed first. The call waits briefly and usually\nreturns the finished run with native ranked predictions and scores; if status is queued or running, wait poll_after_seconds and\nuse get_run until terminal before reporting predictions.","inputSchema":{"type":"object","properties":{"instructions":{"description":"Native DWS classifier configuration. Choose at least two labels and optional scoring controls, or a stored processor with optional version/storeRun. Do not combine these modes.","type":"object","properties":{"processor":{"description":"Stored classifier ID (proc_\u2026). Exclusive with labels, topK, textWeight and imageWeight.","type":["string","null"]},"version":{"description":"Published processor version: a positive integer, or the string \u0027latest\u0027 (the default). Only used with processor. Pin a numeric version for repeatable async submissions: omitted/latest may resolve to a newer version on retry and conflict with the original idempotency key."},"storeRun":{"description":"Async classification always stores the native run, including inline labels. Omit or pass true; false is rejected before submission.","type":["boolean","null"]},"labels":{"description":"Candidate classes; provide at least two. Mutually exclusive with processor.","type":["array","null"],"items":{"type":"object","properties":{"label":{"description":"Class name returned in predictions.","type":"string"},"description":{"description":"Optional explanation to distinguish this class from others.","type":["string","null"]}},"required":["label"]},"minItems":2},"topK":{"description":"Maximum ranked predictions; 0 means all.","type":["integer","null"],"minimum":0,"maximum":2147483647},"textWeight":{"description":"0 disables the text branch. Nonzero enables it; DWS chooses the balance per document. At least one branch must be enabled.","type":["number","null"],"minimum":0,"maximum":1},"imageWeight":{"description":"0 disables the image branch. Nonzero enables it; DWS chooses the balance per document. At least one branch must be enabled.","type":["number","null"],"minimum":0,"maximum":1}}},"asset_id":{"description":"asset_id that upload_documents printed for a local file, used with the same tenant_id. Reuse it for further operations on the same file instead of uploading again.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"document":{"description":"A remote or small document instead of asset_id: filename, content_type and either an HTTPS url that DWS fetches or exact content_base64 of at most 1 MiB. For a local file use upload_documents and asset_id.","type":["object","null"],"properties":{"filename":{"description":"Original document filename, including its extension.","type":["string","null"],"minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":["string","null"],"minLength":1,"maxLength":128},"content_base64":{"description":"Exact base64 of a small file, at most 1 MiB decoded. Never transcribe large base64 into model context.","type":["string","null"],"minLength":4,"maxLength":1398104},"url":{"description":"HTTPS URL that DWS fetches itself. Mutually exclusive with content_base64.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false,"default":null},"source_run_id":{"description":"For NEW work, reuse the original input of an existing retained extraction run in the same tenant instead of asset_id or document. It processes and charges again; it is not a retry or the earlier result.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"idempotency_key":{"description":"Optional submission key: 1\u2013255 visible ASCII characters (! through ~), no whitespace. Usually omit it: MCP derives one from this request, so repeating the same call replays its run instead of processing and charging again. An intent extraction regenerates its schema, so repeating it returns idempotency_conflict, not the earlier run. Supply a new key only to run identical work again on purpose. Pin a numeric stored-processor version, because latest can resolve differently on a repeat. Never include personal data or credentials.","type":["string","null"],"default":null,"pattern":"^[!-~]\u002B$","minLength":1,"maxLength":255},"chat_file":{"type":"object","description":"Filled in by hosts that pass a file the user attached to the chat (ChatGPT). Never write it yourself: use document.","properties":{"download_url":{"type":"string"},"file_id":{"type":"string"},"mime_type":{"type":"string"},"file_name":{"type":"string"}},"required":["download_url","file_id"]},"attached_file":{"type":"object","description":"Only when upload_documents\u0027 command could not reach Nutrient from where the file is (for example HTTP 403 \u0022Host not in allowlist\u0022): the file the user attached to this chat, instead of asset_id, one call per file. The Nutrient panel asks the user for it, uploads it and runs this call; nothing is processed until then.","properties":{"filename":{"type":"string","description":"The file\u0027s name, including its extension."},"content_type":{"type":"string","description":"Its MIME type, such as application/pdf."}},"required":["filename","content_type"]}},"required":["instructions"]},"outputSchema":{"type":"object","properties":{"run_id":{"type":["string","null"]},"product":{"description":"Keep this original product with run_id for later reads.","type":["string","null"]},"tenant_id":{"type":["string","null"]},"operation":{"type":["string","null"]},"idempotency_key":{"description":"Submission key, yours or derived from the request. The same request under the same key replays this run instead of processing again; a regenerated intent schema is a different request.","type":["string","null"]},"idempotency_replayed":{"description":"True only when DWS confirms this submission reused an existing retained run; no new processing was submitted.","type":["boolean","null"]},"poll_after_seconds":{"description":"For queued/running runs, wait at least this long before get_run/read_result and back off if still pending. Acceptance is not completion.","type":["integer","null"]},"retry_after_seconds":{"description":"When read_warning reports a capacity or temporary read failure, wait at least this long before reading the same retained run again. Never resubmit processing to retry a read.","type":["integer","null"]},"run_error":{"description":"Native DWS run failure, with DWS\u0027s caller-specific redaction preserved.","type":["object","null"]},"usage":{"description":"Native DWS usage for this retained run. An empty object is not proof that execution was free or that billing has settled.","type":["object","null"]},"guidance":{"type":["string","null"]},"read_warning":{"type":["string","null"]},"file_name":{"description":"The input file\u0027s name as DWS recorded it.","type":["string","null"]},"schema_fields":{"description":"Extraction only: the top-level fields of the schema this run extracts, generated or supplied. Check they cover the user\u0027s request.","type":["array","null"],"items":{"type":"string"}},"status":{"description":"queued/running: wait poll_after_seconds and use get_run until terminal; succeeded: inspect result, or use read_result when no values are included; failed: inspect run_error; canceled: ended without a result. Never automatically resubmit uncertain processing.","type":"string"},"result":{"description":"Full native product JSON for small responses. Larger responses use result_summary; download output_assets for complete evidence.","type":["object","null"]},"result_omitted":{"description":"True when result values could not be returned inline. Use download instructions or the retained run; omitted values are not empty data.","type":["boolean","null"]},"review":{"description":"Extraction review signals, not an accuracy verdict. verified=false; signals reference JSON pointers in output.data/metadata. Preserve warnings with saved results.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"fields_inspected":{"type":"integer"},"low_confidence_threshold":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"severity":{"description":"check: inspect the field in the original before relying on it. info: a limit of the evidence (a field the document lacks, low DWS groundedness, which also scores correct reformatted values such as ISO dates low, a choice, signature or barcode that cited text cannot prove), reported for completeness.","type":"string"}},"required":["code","fields","severity"]}},"truncated":{"type":"boolean"},"guidance":{"type":["string","null"]}},"required":["status","signals"]},"result_summary":{"description":"Compact alternative to result. Data is included unchanged only if it fits entirely; full native evidence remains in output_assets.","type":["object","null"],"properties":{"data":true,"data_included":{"type":"boolean"},"native_result_bytes":{"type":"integer"},"guidance":{"type":"string"}},"required":["guidance"]},"review_summary":{"description":"Compact alternative to review. Includes counts and selected signals; omitted_signals/source_truncated make limitations explicit.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"signal_counts":{"type":"object","additionalProperties":{"type":"integer"}},"signals":{"type":"array","items":{}},"omitted_signals":{"description":"Canonical signals left out of this compact summary only. They remain readable with read_result view=review; this is not the count of warnings missing upstream.","type":"integer"},"source_truncated":{"description":"The bounded MCP review is not exhaustive. Any additional missing warnings are unknown; this is independent of omitted_signals, which remain accessible.","type":"boolean"},"guidance":{"type":"string"}},"required":["status","signal_counts","signals","guidance"]},"output_assets":{"description":"Existing DWS artifacts with authenticated download requests.","type":["array","null"],"items":{"type":"object","properties":{"role":{"type":"string"},"content_type":{"type":["string","null"]},"download_url":{"description":"Native DWS asset URL; requires DWS OAuth. Use download_request for a harness without that credential.","type":"string"},"authentication":{"type":["string","null"]},"download_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]}},"required":["role","content_type","download_url","download_request"]}},"retained_until":{"type":["string","null"],"format":"date-time"},"result_access":{"description":"Suggested read_result arguments for inspecting retained JSON without new processing or shell scripts.","type":["object","null"],"properties":{"tool":{"type":"string"},"run_id":{"type":"string"},"product":{"type":"string"},"view":{"type":"string"},"pointer":{"type":"string","default":""},"tenant_id":{"type":["string","null"],"default":null}},"required":["tool","run_id","product","view"]},"result_directory":{"description":"Available views and bounded paths/counts. Use string character counts to jump to a suffix; arrays are not expanded into records.","type":["object","null"],"properties":{"available_views":{"type":"array","items":{"type":"string"}},"entries":{"type":"array","items":{"type":"object","properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"},"total_characters":{"type":["integer","null"],"default":null}},"required":["view","pointer","kind","item_count"]}},"truncated":{"description":"Some child paths were omitted by the depth/count/byte bounds; read a parent to explore further.","type":"boolean"}},"required":["available_views","entries","truncated"]}},"required":["status"]},"annotations":{"title":"Classify document","destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://nutrient/workbench-08956a8c0531.html"},"openai/fileParams":["chat_file"]}},{"name":"generate_schema","title":"Generate extraction schema","description":"Generate the schema extract_fields would use for an intent, without extracting: nothing is billed and no run is stored.\nUse it to check the fields cover the user\u0027s request before paying for an extraction, or to fix one set of fields before\nextracting several files of one kind. Pass the intent and document_type you would pass to extract_fields, and one input: asset_id\nfrom upload_documents, document or source_run_id. Returns schema and schema_fields, its top-level fields. Then call extract_fields with the same intent and\ninstructions.schema set to this schema, edited if a requested field is missing.","inputSchema":{"type":"object","properties":{"intent":{"description":"Extraction goal inferred from the user, as you would pass it to extract_fields.","type":"string","minLength":1,"maxLength":8000},"document_type":{"description":"Optional known document type inferred from the user request. Omit when unknown.","type":["string","null"],"default":null,"minLength":1,"maxLength":200},"asset_id":{"description":"asset_id that upload_documents printed for a local file, used with the same tenant_id. Reuse it for further operations on the same file instead of uploading again.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"document":{"description":"A remote or small document instead of asset_id: filename, content_type and either an HTTPS url that DWS fetches or exact content_base64 of at most 1 MiB. For a local file use upload_documents and asset_id.","type":["object","null"],"properties":{"filename":{"description":"Original document filename, including its extension.","type":["string","null"],"minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":["string","null"],"minLength":1,"maxLength":128},"content_base64":{"description":"Exact base64 of a small file, at most 1 MiB decoded. Never transcribe large base64 into model context.","type":["string","null"],"minLength":4,"maxLength":1398104},"url":{"description":"HTTPS URL that DWS fetches itself. Mutually exclusive with content_base64.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false,"default":null},"source_run_id":{"description":"For NEW work, reuse the original input of an existing retained extraction run in the same tenant instead of asset_id or document. It processes and charges again; it is not a retry or the earlier result.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128}},"required":["intent"]},"outputSchema":{"type":"object","properties":{"status":{"type":["string","null"]},"schema":{"description":"The schema extract_fields would use for this intent, normalized to what DWS accepts.","type":"object"},"schema_fields":{"description":"Its top-level fields, in order.","type":"array","items":{"type":"string"}},"tenant_id":{"type":["string","null"]},"guidance":{"type":"string"}},"required":["schema","schema_fields","guidance"]},"annotations":{"title":"Generate extraction schema","destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true}},{"name":"sign_document","title":"Sign PDF","description":"Digitally sign a PDF with existing DWS signing policy. Supply documents.document for the PDF and optional appearance files,\neach with filename, content_type and path, then run document_request.command and save the binary response. Consumes credits.\nPlatform signing does not establish the user\u0027s personal identity; report the certificate identity only if verified from the\noutput. No automatic retries after uncertain outcomes.","inputSchema":{"type":"object","properties":{"instructions":{"description":"Native DWS instructions. DWS owns product validation. Bind file/HTML references through the named documents.","type":"object","properties":{"flatten":{"description":"Flatten before signing to stabilize appearance; deletes annotation and form records. Defaults to false.","type":["boolean","null"]},"formFieldName":{"description":"Existing signature field name, or a new field to create at position. Do not set position if this field already exists.","type":["string","null"]},"appearance":{"description":"Visible signature appearance. Omit for an invisible signature. A visible signature requires formFieldName or position.","type":["object","null"],"properties":{"mode":{"description":"Visible signature content. Default signatureAndDescription.","type":["string","null"],"enum":["signatureOnly","signatureAndDescription","descriptionOnly"]},"contentType":{"description":"Content type of the supplied image: application/pdf, image/png or image/jpeg.","type":["string","null"]},"showSigner":{"description":"Show signer name. Default true.","type":["boolean","null"]},"showReason":{"description":"Show signing reason. Default false.","type":["boolean","null"]},"showLocation":{"description":"Show signing location. Default false.","type":["boolean","null"]},"showWatermark":{"description":"Show supplied watermark or default Nutrient logo. Default true.","type":["boolean","null"]},"showSignDate":{"description":"Show signing date. Default true.","type":["boolean","null"]},"showDateTimezone":{"description":"Show timezone with signing date. Default false.","type":["boolean","null"]}}},"position":{"type":["object","null"],"properties":{"pageIndex":{"description":"Zero-based page index.","type":"integer","minimum":0,"maximum":2147483647},"rect":{"description":"[left, top, width, height] in PDF points from the page\u0027s top left.","type":"array","items":{"type":"number"},"minItems":4,"maxItems":4}},"required":["pageIndex","rect"]},"signatureMetadata":{"type":["object","null"],"properties":{"signerName":{"description":"Name of the signing person or organization.","type":["string","null"]},"signatureReason":{"type":["string","null"]},"signatureLocation":{"type":["string","null"]}}}}},"documents":{"description":"Named local files. Keys bind native file/HTML references, e.g. document. Pass filename, content_type and path; the returned command sends the files, and MCP keeps none.","type":"object","additionalProperties":{"type":"object","properties":{"filename":{"description":"Original filename, including its extension.","type":"string","minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":"string","minLength":1,"maxLength":128},"path":{"description":"The file\u0027s path on your machine, exactly as your shell needs it. It only completes the returned command; the server never reads or stores it.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false},"minItems":1,"maxItems":16},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128}},"required":["instructions","documents"]},"outputSchema":{"type":"object","properties":{"run_id":{"type":["string","null"]},"product":{"description":"Keep this original product with run_id for later reads.","type":["string","null"]},"tenant_id":{"type":["string","null"]},"operation":{"type":["string","null"]},"idempotency_key":{"description":"Submission key, yours or derived from the request. The same request under the same key replays this run instead of processing again; a regenerated intent schema is a different request.","type":["string","null"]},"idempotency_replayed":{"description":"True only when DWS confirms this submission reused an existing retained run; no new processing was submitted.","type":["boolean","null"]},"poll_after_seconds":{"description":"For queued/running runs, wait at least this long before get_run/read_result and back off if still pending. Acceptance is not completion.","type":["integer","null"]},"retry_after_seconds":{"description":"When read_warning reports a capacity or temporary read failure, wait at least this long before reading the same retained run again. Never resubmit processing to retry a read.","type":["integer","null"]},"run_error":{"description":"Native DWS run failure, with DWS\u0027s caller-specific redaction preserved.","type":["object","null"]},"usage":{"description":"Native DWS usage for this retained run. An empty object is not proof that execution was free or that billing has settled.","type":["object","null"]},"guidance":{"type":["string","null"]},"read_warning":{"type":["string","null"]},"file_name":{"description":"The input file\u0027s name as DWS recorded it.","type":["string","null"]},"schema_fields":{"description":"Extraction only: the top-level fields of the schema this run extracts, generated or supplied. Check they cover the user\u0027s request.","type":["array","null"],"items":{"type":"string"}},"status":{"description":"queued/running: wait poll_after_seconds and use get_run until terminal; succeeded: inspect result, or use read_result when no values are included; failed: inspect run_error; canceled: ended without a result. Never automatically resubmit uncertain processing.","type":"string"},"result":{"description":"Full native product JSON for small responses. Larger responses use result_summary; download output_assets for complete evidence.","type":["object","null"]},"result_omitted":{"description":"True when result values could not be returned inline. Use download instructions or the retained run; omitted values are not empty data.","type":["boolean","null"]},"review":{"description":"Extraction review signals, not an accuracy verdict. verified=false; signals reference JSON pointers in output.data/metadata. Preserve warnings with saved results.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"fields_inspected":{"type":"integer"},"low_confidence_threshold":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"severity":{"description":"check: inspect the field in the original before relying on it. info: a limit of the evidence (a field the document lacks, low DWS groundedness, which also scores correct reformatted values such as ISO dates low, a choice, signature or barcode that cited text cannot prove), reported for completeness.","type":"string"}},"required":["code","fields","severity"]}},"truncated":{"type":"boolean"},"guidance":{"type":["string","null"]}},"required":["status","signals"]},"result_summary":{"description":"Compact alternative to result. Data is included unchanged only if it fits entirely; full native evidence remains in output_assets.","type":["object","null"],"properties":{"data":true,"data_included":{"type":"boolean"},"native_result_bytes":{"type":"integer"},"guidance":{"type":"string"}},"required":["guidance"]},"review_summary":{"description":"Compact alternative to review. Includes counts and selected signals; omitted_signals/source_truncated make limitations explicit.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"signal_counts":{"type":"object","additionalProperties":{"type":"integer"}},"signals":{"type":"array","items":{}},"omitted_signals":{"description":"Canonical signals left out of this compact summary only. They remain readable with read_result view=review; this is not the count of warnings missing upstream.","type":"integer"},"source_truncated":{"description":"The bounded MCP review is not exhaustive. Any additional missing warnings are unknown; this is independent of omitted_signals, which remain accessible.","type":"boolean"},"guidance":{"type":"string"}},"required":["status","signal_counts","signals","guidance"]},"output_assets":{"description":"Existing DWS artifacts with authenticated download requests.","type":["array","null"],"items":{"type":"object","properties":{"role":{"type":"string"},"content_type":{"type":["string","null"]},"download_url":{"description":"Native DWS asset URL; requires DWS OAuth. Use download_request for a harness without that credential.","type":"string"},"authentication":{"type":["string","null"]},"download_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]}},"required":["role","content_type","download_url","download_request"]}},"retained_until":{"type":["string","null"],"format":"date-time"},"result_access":{"description":"Suggested read_result arguments for inspecting retained JSON without new processing or shell scripts.","type":["object","null"],"properties":{"tool":{"type":"string"},"run_id":{"type":"string"},"product":{"type":"string"},"view":{"type":"string"},"pointer":{"type":"string","default":""},"tenant_id":{"type":["string","null"],"default":null}},"required":["tool","run_id","product","view"]},"result_directory":{"description":"Available views and bounded paths/counts. Use string character counts to jump to a suffix; arrays are not expanded into records.","type":["object","null"],"properties":{"available_views":{"type":"array","items":{"type":"string"}},"entries":{"type":"array","items":{"type":"object","properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"},"total_characters":{"type":["integer","null"],"default":null}},"required":["view","pointer","kind","item_count"]}},"truncated":{"description":"Some child paths were omitted by the depth/count/byte bounds; read a parent to explore further.","type":"boolean"}},"required":["available_views","entries","truncated"]}},"required":["status"]},"annotations":{"title":"Sign PDF","destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}},{"name":"redact_document","title":"Redact document","description":"Apply AI-assisted redaction for semantic criteria; for exact known text prefer process_document with createRedactions and\napplyRedactions. Bind document references to documents keys, each with filename, content_type and path, then run\ndocument_request.command and save the binary response. DWS owns validation and billing; a 403 alone does not identify its\ncause. Do not retry uncertain processing.","inputSchema":{"type":"object","properties":{"instructions":{"description":"Native DWS instructions. DWS owns product validation. Bind file/HTML references through the named documents.","type":"object","properties":{"documents":{"description":"Exactly one document to analyze.","type":"array","items":{"type":"object","properties":{"file":{"description":"Named document alias such as \u0027document\u0027. Remote URL imports and stored document IDs are unavailable.","type":["string","null"]},"pages":{"description":"Zero-based page indices as an integer array, or {start: integer, end: integer}. A negative end counts from the last page. Omit for all pages."}}},"minItems":1,"maxItems":1},"criteria":{"description":"Natural-language redaction criteria, such as \u0027Redact personal names and addresses\u0027.","type":"string"},"redaction_state":{"description":"stage marks locations (default); apply permanently removes content from the output.","type":["string","null"],"enum":["stage","apply"]},"options":{"type":["object","null"],"properties":{"confidence":{"type":["object","null"],"properties":{"threshold":{"description":"Exclude redaction candidates whose confidence is below this threshold. Scores range from 1 to 10.","type":"number"}},"required":["threshold"]}}}},"required":["documents","criteria"]},"documents":{"description":"Named local files. Keys bind native file/HTML references, e.g. document. Pass filename, content_type and path; the returned command sends the files, and MCP keeps none.","type":"object","additionalProperties":{"type":"object","properties":{"filename":{"description":"Original filename, including its extension.","type":"string","minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":"string","minLength":1,"maxLength":128},"path":{"description":"The file\u0027s path on your machine, exactly as your shell needs it. It only completes the returned command; the server never reads or stores it.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false},"minItems":1,"maxItems":16},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128}},"required":["instructions","documents"]},"outputSchema":{"type":"object","properties":{"run_id":{"type":["string","null"]},"product":{"description":"Keep this original product with run_id for later reads.","type":["string","null"]},"tenant_id":{"type":["string","null"]},"operation":{"type":["string","null"]},"idempotency_key":{"description":"Submission key, yours or derived from the request. The same request under the same key replays this run instead of processing again; a regenerated intent schema is a different request.","type":["string","null"]},"idempotency_replayed":{"description":"True only when DWS confirms this submission reused an existing retained run; no new processing was submitted.","type":["boolean","null"]},"poll_after_seconds":{"description":"For queued/running runs, wait at least this long before get_run/read_result and back off if still pending. Acceptance is not completion.","type":["integer","null"]},"retry_after_seconds":{"description":"When read_warning reports a capacity or temporary read failure, wait at least this long before reading the same retained run again. Never resubmit processing to retry a read.","type":["integer","null"]},"run_error":{"description":"Native DWS run failure, with DWS\u0027s caller-specific redaction preserved.","type":["object","null"]},"usage":{"description":"Native DWS usage for this retained run. An empty object is not proof that execution was free or that billing has settled.","type":["object","null"]},"guidance":{"type":["string","null"]},"read_warning":{"type":["string","null"]},"file_name":{"description":"The input file\u0027s name as DWS recorded it.","type":["string","null"]},"schema_fields":{"description":"Extraction only: the top-level fields of the schema this run extracts, generated or supplied. Check they cover the user\u0027s request.","type":["array","null"],"items":{"type":"string"}},"status":{"description":"queued/running: wait poll_after_seconds and use get_run until terminal; succeeded: inspect result, or use read_result when no values are included; failed: inspect run_error; canceled: ended without a result. Never automatically resubmit uncertain processing.","type":"string"},"result":{"description":"Full native product JSON for small responses. Larger responses use result_summary; download output_assets for complete evidence.","type":["object","null"]},"result_omitted":{"description":"True when result values could not be returned inline. Use download instructions or the retained run; omitted values are not empty data.","type":["boolean","null"]},"review":{"description":"Extraction review signals, not an accuracy verdict. verified=false; signals reference JSON pointers in output.data/metadata. Preserve warnings with saved results.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"fields_inspected":{"type":"integer"},"low_confidence_threshold":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"severity":{"description":"check: inspect the field in the original before relying on it. info: a limit of the evidence (a field the document lacks, low DWS groundedness, which also scores correct reformatted values such as ISO dates low, a choice, signature or barcode that cited text cannot prove), reported for completeness.","type":"string"}},"required":["code","fields","severity"]}},"truncated":{"type":"boolean"},"guidance":{"type":["string","null"]}},"required":["status","signals"]},"result_summary":{"description":"Compact alternative to result. Data is included unchanged only if it fits entirely; full native evidence remains in output_assets.","type":["object","null"],"properties":{"data":true,"data_included":{"type":"boolean"},"native_result_bytes":{"type":"integer"},"guidance":{"type":"string"}},"required":["guidance"]},"review_summary":{"description":"Compact alternative to review. Includes counts and selected signals; omitted_signals/source_truncated make limitations explicit.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"signal_counts":{"type":"object","additionalProperties":{"type":"integer"}},"signals":{"type":"array","items":{}},"omitted_signals":{"description":"Canonical signals left out of this compact summary only. They remain readable with read_result view=review; this is not the count of warnings missing upstream.","type":"integer"},"source_truncated":{"description":"The bounded MCP review is not exhaustive. Any additional missing warnings are unknown; this is independent of omitted_signals, which remain accessible.","type":"boolean"},"guidance":{"type":"string"}},"required":["status","signal_counts","signals","guidance"]},"output_assets":{"description":"Existing DWS artifacts with authenticated download requests.","type":["array","null"],"items":{"type":"object","properties":{"role":{"type":"string"},"content_type":{"type":["string","null"]},"download_url":{"description":"Native DWS asset URL; requires DWS OAuth. Use download_request for a harness without that credential.","type":"string"},"authentication":{"type":["string","null"]},"download_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]}},"required":["role","content_type","download_url","download_request"]}},"retained_until":{"type":["string","null"],"format":"date-time"},"result_access":{"description":"Suggested read_result arguments for inspecting retained JSON without new processing or shell scripts.","type":["object","null"],"properties":{"tool":{"type":"string"},"run_id":{"type":"string"},"product":{"type":"string"},"view":{"type":"string"},"pointer":{"type":"string","default":""},"tenant_id":{"type":["string","null"],"default":null}},"required":["tool","run_id","product","view"]},"result_directory":{"description":"Available views and bounded paths/counts. Use string character counts to jump to a suffix; arrays are not expanded into records.","type":["object","null"],"properties":{"available_views":{"type":"array","items":{"type":"string"}},"entries":{"type":"array","items":{"type":"object","properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"},"total_characters":{"type":["integer","null"],"default":null}},"required":["view","pointer","kind","item_count"]}},"truncated":{"description":"Some child paths were omitted by the depth/count/byte bounds; read a parent to explore further.","type":"boolean"}},"required":["available_views","entries","truncated"]}},"required":["status"]},"annotations":{"title":"Redact document","destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}},{"name":"get_processor_job","title":"Get Processor job","description":"Read an existing durable Processor Build with its complete job_handle and your current login as the same user and organization; a job ID alone is insufficient. While queued/running/cancel_requested, wait poll_after_seconds and back off before reading again. When succeeded, run download_request.command to save the native file; it is short-lived, so renew it with this tool. Reads never resubmit Build. Do not use get_run/read_result for Processor jobs. Never log or share job_handle.","inputSchema":{"type":"object","properties":{"job_handle":{"description":"Complete opaque job_handle returned by process_document\u0027s multipart submission, not job_id or a URL.","type":"string","minLength":1,"maxLength":16384}},"required":["job_handle"]},"outputSchema":{"type":"object","properties":{"status":{"description":"awaiting_document: run document_request.command; queued/running/cancel_requested: wait poll_after_seconds and use get_processor_job until terminal; succeeded: download the result; failed/canceled/expired: terminal, no automatic replacement processing.","type":"string"},"product":{"type":["string","null"]},"operation":{"type":["string","null"]},"job_id":{"type":["string","null"]},"job_handle":{"description":"Save this complete opaque credential for get_processor_job after reconnecting. Job ID alone cannot recover the job. Never log or share the handle.","type":["string","null"]},"idempotency_key":{"type":["string","null"]},"tenant_id":{"type":["string","null"]},"handle_expires_at":{"type":["string","null"],"format":"date-time"},"result_expires_at":{"type":["string","null"],"format":"date-time"},"poll_after_seconds":{"type":["integer","null"]},"result":{"description":"Native result metadata, not the file bytes. Follow download_request to save the file.","type":["object","null"],"properties":{"content_type":{"type":["string","null"]},"byte_size":{"type":["integer","null"]},"sha256":{"type":["string","null"]},"filename":{"type":["string","null"]},"expires_at":{"type":["string","null"],"format":"date-time"},"expired":{"type":["boolean","null"]}}},"job_error":{"type":["object","null"]},"document_request":{"type":["object","null"],"properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]},"download_request":{"type":["object","null"],"properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"$ref":"#/properties/document_request/properties/headers"},"fields":{"$ref":"#/properties/document_request/properties/fields"},"files":{"$ref":"#/properties/document_request/properties/files","items":{}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]},"guidance":{"type":"string"}},"required":["status","guidance"]},"annotations":{"title":"Get Processor job","destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}},{"name":"process_document","title":"Process documents","description":"Process documents with native DWS Build instructions: conversion, merging and multi-step operations. Bind file/HTML\naliases through documents, each with filename, content_type and path; append a blank page with {page:\u0027new\u0027}. Generate a\nfresh UUID yourself as idempotency_key for each new job. Run the returned document_request.command: it submits durable\nBuild and returns HTTP 202 job metadata. Save the complete job_handle (a job ID alone cannot recover it), wait\npoll_after_seconds and call get_processor_job until terminal, then download the file to finish the task. After an\nuncertain submission keep the same instructions, files, tenant and key; never invent a new key or retry automatically.\nSome Build shapes are unsupported asynchronously. For PDF-to-Markdown prefer parse_document.","inputSchema":{"type":"object","properties":{"idempotency_key":{"description":"Generate and save a fresh UUID yourself for new Build work. Required 1\u2013255 visible ASCII characters, no whitespace. For an uncertain submission preserve this same key, exact instructions/files and tenant. DWS replays its original job while metadata is retained, including an expired result; this does not guarantee exactly-once worker execution.","type":"string","pattern":"^[!-~]\u002B$","minLength":1,"maxLength":255},"instructions":{"description":"Native DWS instructions. DWS owns product validation. Bind file/HTML references through the named documents.","type":"object","properties":{"parts":{"description":"Ordered uploaded files, uploaded HTML or new blank pages.","type":"array","items":{"description":"Choose exactly one source: file or html as an document alias, or page=\u0027new\u0027. Other fields configure that source. Remote URLs and stored document IDs are unavailable.","type":"object","properties":{"file":{"description":"Named document alias such as \u0027document\u0027. Remote URL imports and stored document IDs are unavailable.","type":["string","null"]},"html":{"description":"HTML source. Named document alias such as \u0027document\u0027. Remote URL imports and stored document IDs are unavailable.","type":["string","null"]},"assets":{"description":"Document aliases for assets referenced by the HTML.","type":["array","null"],"items":{"type":"string"}},"page":{"description":"Use \u0027new\u0027 to insert blank pages.","type":["string","null"],"enum":["new"]},"pageCount":{"description":"Number of blank pages to insert. Default 1.","type":["integer","null"],"minimum":1,"maximum":2147483647},"password":{"type":["string","null"]},"pages":{"description":"Inclusive zero-based page range. Negative values count from the end; -1 is the last page. Default start=0, end=-1.","type":["object","null"],"properties":{"start":{"type":["integer","null"]},"end":{"type":["integer","null"]}}},"layout":{"description":"Layout for blank pages, HTML, email or spreadsheet conversion.","type":["object","null"],"properties":{"orientation":{"description":"Generated page orientation. Default portrait.","type":["string","null"],"enum":["portrait","landscape"]},"size":{"description":"Page size: \u0027A0\u0027 through \u0027A8\u0027, \u0027Letter\u0027 or \u0027Legal\u0027, or {width: integer, height: integer} in millimeters (each at least 1). Use named sizes where possible; fractional millimeters are rejected and named sizes may round to whole millimeters."},"margin":{"description":"Generated page margins in millimeters; each defaults to zero.","type":["object","null"],"properties":{"left":{"type":["number","null"],"minimum":0,"maximum":1.7976931348623157E+308},"top":{"type":["number","null"],"minimum":0,"maximum":1.7976931348623157E+308},"right":{"type":["number","null"],"minimum":0,"maximum":1.7976931348623157E+308},"bottom":{"type":["number","null"],"minimum":0,"maximum":1.7976931348623157E+308}}}}},"content_type":{"description":"Explicit input MIME type when automatic detection is insufficient.","type":["string","null"]},"markup_mode":{"description":"Tracked-change rendering for Word documents. Default noMarkup.","type":["string","null"],"enum":["noMarkup","original","simpleMarkup","allMarkup"]},"email_language":{"description":"Language tag for email conversion, e.g. en-US.","type":["string","null"],"pattern":"^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$","minLength":1,"maxLength":128},"email_timezone":{"description":"Timezone for email conversion, e.g. Europe/Prague.","type":["string","null"],"minLength":1,"maxLength":128},"half_transparent_header_footer":{"description":"Render Word headers and footers as half transparent. Default false.","type":["boolean","null"]},"render_only_print_area":{"description":"Render only a spreadsheet\u0027s defined print area. Default false.","type":["boolean","null"]},"actions":{"description":"Actions applied to this part before assembly.","type":["array","null"],"items":{"type":"object","required":["type"],"anyOf":[{"description":"Apply an Instant JSON document containing annotations/form fields.","properties":{"type":{"const":"applyInstantJson"},"file":{"description":"Named document alias such as \u0027document\u0027. Remote URL imports and stored document IDs are unavailable.","type":"string"}},"required":["file"]},{"description":"Apply XFDF annotations/form fields.","properties":{"type":{"const":"applyXfdf"},"file":{"description":"Named document alias such as \u0027document\u0027. Remote URL imports and stored document IDs are unavailable.","type":"string"},"ignorePageRotation":{"type":["boolean","null"]},"richTextEnabled":{"type":["boolean","null"]}},"required":["file"]},{"properties":{"type":{"const":"flatten"},"annotationIds":{"description":"Annotation identifiers: each is a string ID or integer pdfObjectId. Omit to flatten all annotations.","type":["array","null"],"items":{}}}},{"properties":{"type":{"const":"ocr"},"language":{"description":"OCR language name such as \u0027english\u0027, or an array such as [\u0027english\u0027,\u0027german\u0027]."},"skipOcrForSearchableDocuments":{"type":["boolean","null"]}},"required":["language"]},{"properties":{"type":{"const":"rotate"},"rotateBy":{"description":"Clockwise page rotation in degrees.","type":"number","enum":[90,180,270]}},"required":["rotateBy"]},{"description":"Add either text or image as a watermark. Width and height are required. Position offsets are optional.","properties":{"type":{"const":"watermark"},"width":{"description":"A number in PDF points, a percentage string such as \u002725%\u0027, or an object {value: number, unit: \u0027pt\u0027 | \u0027%\u0027}."},"height":{"description":"A number in PDF points, a percentage string such as \u002725%\u0027, or an object {value: number, unit: \u0027pt\u0027 | \u0027%\u0027}."},"top":{"description":"A number in PDF points, a percentage string such as \u002725%\u0027, or an object {value: number, unit: \u0027pt\u0027 | \u0027%\u0027}."},"right":{"description":"A number in PDF points, a percentage string such as \u002725%\u0027, or an object {value: number, unit: \u0027pt\u0027 | \u0027%\u0027}."},"bottom":{"description":"A number in PDF points, a percentage string such as \u002725%\u0027, or an object {value: number, unit: \u0027pt\u0027 | \u0027%\u0027}."},"left":{"description":"A number in PDF points, a percentage string such as \u002725%\u0027, or an object {value: number, unit: \u0027pt\u0027 | \u0027%\u0027}."},"rotation":{"description":"Counterclockwise rotation in degrees; default zero.","type":["number","null"]},"opacity":{"description":"Opacity: 0 transparent, 1 opaque.","type":["number","null"],"minimum":0,"maximum":1},"text":{"description":"Watermark text. Exclusive with image.","type":["string","null"]},"image":{"description":"Watermark image. Exclusive with text. Named document alias such as \u0027document\u0027. Remote URL imports and stored document IDs are unavailable.","type":["string","null"]},"fontFamily":{"type":["string","null"]},"fontSize":{"type":["integer","null"]},"fontColor":{"type":["string","null"],"pattern":"^#[0-9a-fA-F]{6}$"},"fontStyle":{"type":["array","null"],"items":{"type":"string","enum":["bold","italic"]}}},"required":["width","height"]},{"description":"Create redaction annotations using a search strategy. Follow with applyRedactions to remove the marked content.","properties":{"type":{"const":"createRedactions"},"strategy":{"type":"string","enum":["preset","regex","text","word_based"]},"strategyOptions":{"description":"Supply the field matching strategy (preset, regex, text or word_based). Search and limit options are optional.","type":"object","properties":{"preset":{"type":["string","null"],"enum":["credit-card-number","date","email-address","international-phone-number","ipv4","ipv6","mac-address","north-american-phone-number","social-security-number","time","url","us-zip-code","vin"]},"regex":{"type":["string","null"]},"text":{"type":["string","null"]},"word_based":{"type":["string","null"]},"includeAnnotations":{"type":["boolean","null"]},"caseSensitive":{"type":["boolean","null"]},"start":{"type":["integer","null"]},"limit":{"type":["integer","null"]}}},"content":{"description":"Optional Instant JSON redaction annotation properties, including appearance.","type":["object","null"],"properties":{"type":{"type":["string","null"],"enum":["pspdfkit/markup/redaction"]},"v":{"type":["integer","null"]},"pageIndex":{"type":["integer","null"]},"bbox":{"description":"[left, top, width, height] in PDF points.","type":["array","null"],"items":{"type":"number"},"minItems":4,"maxItems":4},"rects":{"description":"Bounding boxes of marked text, each [left, top, width, height].","type":["array","null"],"items":{"type":"array","items":{"type":"number"}}},"outlineColor":{"type":["string","null"]},"fillColor":{"type":["string","null"]},"overlayText":{"type":["string","null"]},"repeatOverlayText":{"type":["boolean","null"]},"color":{"type":["string","null"]},"rotation":{"type":["integer","null"]},"note":{"type":["string","null"]},"opacity":{"type":["number","null"]},"pdfObjectId":{"type":["integer","null"]},"id":{"type":["string","null"]},"flags":{"type":["array","null"],"items":{"type":"string"}},"createdAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]},"name":{"type":["string","null"]},"creatorName":{"type":["string","null"]},"customData":{"type":["object","null"]},"action":{"description":"Instant JSON annotation action. Supply fields matching type; subAction chains another action.","type":["object","null"],"properties":{"type":{"type":"string","enum":["goTo","goToRemote","goToEmbedded","launch","uri","hide","javascript","submitForm","resetForm","named"]},"subAction":{"description":"Instant JSON annotation action. Supply fields matching type; subAction chains another action.","type":["object","null"],"properties":{"type":{"type":"string","enum":["goTo","goToRemote","goToEmbedded","launch","uri","hide","javascript","submitForm","resetForm","named"]},"subAction":{"description":"Instant JSON annotation action. Supply fields matching type; subAction chains another action.","$ref":"#/properties/instructions/properties/parts/items/properties/actions/items/anyOf/6/properties/content/properties/action/properties/subAction"},"pageIndex":{"type":["integer","null"]},"relativePath":{"type":["string","null"]},"namedDestination":{"type":["string","null"]},"newWindow":{"type":["boolean","null"]},"targetType":{"type":["string","null"],"enum":["parent","child"]},"filePath":{"type":["string","null"]},"uri":{"type":["string","null"]},"hide":{"type":["boolean","null"]},"annotationReferences":{"type":["array","null"],"items":{"type":"object","properties":{"fieldName":{"type":["string","null"]},"pdfObjectId":{"type":["integer","null"]}}}},"script":{"type":["string","null"]},"flags":{"description":"submitForm: array of flag strings; resetForm: the string \u0027includeExclude\u0027."},"fields":{"type":["array","null"],"items":{"$ref":"#/properties/instructions/properties/parts/items/properties/actions/items/anyOf/6/properties/content/properties/action/properties/subAction/properties/annotationReferences/items"}},"action":{"description":"Named PDF action such as nextPage, prevPage, firstPage, lastPage, goBack, goForward, goToPage, find, print or saveAs.","type":["string","null"]}},"required":["type"]},"pageIndex":{"type":["integer","null"]},"relativePath":{"type":["string","null"]},"namedDestination":{"type":["string","null"]},"newWindow":{"type":["boolean","null"]},"targetType":{"type":["string","null"],"enum":["parent","child"]},"filePath":{"type":["string","null"]},"uri":{"type":["string","null"]},"hide":{"type":["boolean","null"]},"annotationReferences":{"$ref":"#/properties/instructions/properties/parts/items/properties/actions/items/anyOf/6/properties/content/properties/action/properties/subAction/properties/annotationReferences","items":{}},"script":{"type":["string","null"]},"flags":{"description":"submitForm: array of flag strings; resetForm: the string \u0027includeExclude\u0027."},"fields":{"$ref":"#/properties/instructions/properties/parts/items/properties/actions/items/anyOf/6/properties/content/properties/action/properties/subAction/properties/fields","items":{}},"action":{"description":"Named PDF action such as nextPage, prevPage, firstPage, lastPage, goBack, goForward, goToPage, find, print or saveAs.","type":["string","null"]}},"required":["type"]}}}},"required":["strategy","strategyOptions"]},{"description":"Permanently remove content marked by redaction annotations from the output.","properties":{"type":{"const":"applyRedactions"}}}]}}}}},"actions":{"description":"Actions on the assembled document, in order.","type":["array","null"],"items":{"$ref":"#/properties/instructions/properties/parts/items/properties/actions/items"}},"output":{"description":"Output format and options. Omit for PDF.","type":["object","null"],"properties":{"type":{"description":"Output format; default pdf.","type":["string","null"],"enum":["pdf","pdfa","pdfua","image","json-content","docx","xlsx","pptx","html","markdown"]},"metadata":{"type":["object","null"],"properties":{"title":{"type":["string","null"]},"author":{"type":["string","null"]}}},"labels":{"type":["array","null"],"items":{"type":"object","properties":{"pages":{"description":"Zero-based page indices receiving this label.","type":"array","items":{"type":"integer"}},"label":{"type":"string"}},"required":["pages","label"]}},"user_password":{"type":["string","null"]},"owner_password":{"type":["string","null"]},"user_permissions":{"description":"PDF permissions: printing, modification, extract, annotations_and_forms, fill_forms, extract_accessibility, assemble, print_high_quality.","type":["array","null"],"items":{"type":"string"}},"optimize":{"type":["object","null"],"properties":{"grayscaleText":{"type":["boolean","null"]},"grayscaleGraphics":{"type":["boolean","null"]},"grayscaleImages":{"type":["boolean","null"]},"grayscaleFormFields":{"type":["boolean","null"]},"grayscaleAnnotations":{"type":["boolean","null"]},"disableImages":{"type":["boolean","null"]},"mrcCompression":{"type":["boolean","null"]},"imageOptimizationQuality":{"description":"Image optimization quality, default 2.","type":["integer","null"],"minimum":1,"maximum":4},"linearize":{"description":"Optimize PDF for progressive network loading. Requires platform linearization support.","type":["boolean","null"]}}},"conformance":{"description":"PDF/A conformance; default pdfa-1b.","type":["string","null"],"enum":["pdfa-1a","pdfa-1b","pdfa-2a","pdfa-2u","pdfa-2b","pdfa-3a","pdfa-3u"]},"vectorization":{"description":"Preserve vector graphics for PDF/A. Default true.","type":["boolean","null"]},"rasterization":{"description":"Allow raster graphics for PDF/A. Default true.","type":["boolean","null"]},"format":{"description":"Image format; default png.","type":["string","null"],"enum":["png","jpeg","jpg","webp"]},"pages":{"description":"Inclusive zero-based page range. Negative values count from the end; -1 is the last page. Default start=0, end=-1.","type":["object","null"],"properties":{"start":{"type":["integer","null"]},"end":{"type":["integer","null"]}}},"width":{"description":"Image width in pixels; provide width, height or dpi.","type":["number","null"]},"height":{"description":"Image height in pixels; provide width, height or dpi.","type":["number","null"]},"dpi":{"description":"Image resolution in dots per inch.","type":["number","null"]},"plainText":{"description":"Include OCR plain text in json-content. Default true.","type":["boolean","null"]},"structuredText":{"description":"Include structured text in json-content. Default false.","type":["boolean","null"]},"keyValuePairs":{"description":"Include detected key-value pairs in json-content. Default false.","type":["boolean","null"]},"tables":{"description":"Include tables in json-content. Default true.","type":["boolean","null"]},"language":{"description":"OCR language for json-content: a language name or an array of language names."},"layout":{"description":"HTML output layout: page preserves page boundaries, reflow produces continuous text.","type":["string","null"],"enum":["page","reflow"]}}}},"required":["parts"]},"documents":{"description":"Named local files. Keys bind native file/HTML references, e.g. document. Pass filename, content_type and path; the returned command sends the files, and MCP keeps none.","type":"object","additionalProperties":{"type":"object","properties":{"filename":{"description":"Original filename, including its extension.","type":"string","minLength":1,"maxLength":180},"content_type":{"description":"Document MIME type, such as application/pdf.","type":"string","minLength":1,"maxLength":128},"path":{"description":"The file\u0027s path on your machine, exactly as your shell needs it. It only completes the returned command; the server never reads or stores it.","type":["string","null"],"minLength":1,"maxLength":4096}},"required":["filename","content_type"],"additionalProperties":false},"minItems":1,"maxItems":16},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128}},"required":["idempotency_key","instructions","documents"]},"outputSchema":{"type":"object","properties":{"status":{"description":"awaiting_document: run document_request.command; queued/running/cancel_requested: wait poll_after_seconds and use get_processor_job until terminal; succeeded: download the result; failed/canceled/expired: terminal, no automatic replacement processing.","type":"string"},"product":{"type":["string","null"]},"operation":{"type":["string","null"]},"job_id":{"type":["string","null"]},"job_handle":{"description":"Save this complete opaque credential for get_processor_job after reconnecting. Job ID alone cannot recover the job. Never log or share the handle.","type":["string","null"]},"idempotency_key":{"type":["string","null"]},"tenant_id":{"type":["string","null"]},"handle_expires_at":{"type":["string","null"],"format":"date-time"},"result_expires_at":{"type":["string","null"],"format":"date-time"},"poll_after_seconds":{"type":["integer","null"]},"result":{"description":"Native result metadata, not the file bytes. Follow download_request to save the file.","type":["object","null"],"properties":{"content_type":{"type":["string","null"]},"byte_size":{"type":["integer","null"]},"sha256":{"type":["string","null"]},"filename":{"type":["string","null"]},"expires_at":{"type":["string","null"],"format":"date-time"},"expired":{"type":["boolean","null"]}}},"job_error":{"type":["object","null"]},"document_request":{"type":["object","null"],"properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]},"download_request":{"type":["object","null"],"properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"$ref":"#/properties/document_request/properties/headers"},"fields":{"$ref":"#/properties/document_request/properties/fields"},"files":{"$ref":"#/properties/document_request/properties/files","items":{}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]},"guidance":{"type":"string"}},"required":["status","guidance"]},"annotations":{"title":"Process documents","destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://nutrient/workbench-08956a8c0531.html"}}},{"name":"get_run","title":"Get run","description":"Read an existing DWS Data Extraction run and its retained results. Reads do not restart\nprocessing. Prefer this tool for status polling. For queued/running, wait at least poll_after_seconds and back off on repeated pending\nreads; continue until terminal and inspect results to finish the user request. Use read_result for bounded selected values and evidence. output_assets includes\ndownload_request for saving native results without exposing an OAuth token. Retention follows\nexisting DWS storage policy. If read_warning=rate_limited, keep the run ID, wait retry_after_seconds\nand retry only the read or use the returned download request. No new execution database or cancellation API is used.","inputSchema":{"type":"object","properties":{"run_id":{"description":"Existing DWS run identifier.","type":"string","pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"product":{"description":"Authorized product. Stored-run tools support data_extraction only; use get_processor_job with job_handle for durable Build; signing/redaction return binary output directly.","type":"string","enum":["data_extraction"]},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128}},"required":["run_id","product"]},"outputSchema":{"type":"object","properties":{"run_id":{"type":["string","null"]},"product":{"description":"Keep this original product with run_id for later reads.","type":["string","null"]},"tenant_id":{"type":["string","null"]},"operation":{"type":["string","null"]},"idempotency_key":{"description":"Submission key, yours or derived from the request. The same request under the same key replays this run instead of processing again; a regenerated intent schema is a different request.","type":["string","null"]},"idempotency_replayed":{"description":"True only when DWS confirms this submission reused an existing retained run; no new processing was submitted.","type":["boolean","null"]},"poll_after_seconds":{"description":"For queued/running runs, wait at least this long before get_run/read_result and back off if still pending. Acceptance is not completion.","type":["integer","null"]},"retry_after_seconds":{"description":"When read_warning reports a capacity or temporary read failure, wait at least this long before reading the same retained run again. Never resubmit processing to retry a read.","type":["integer","null"]},"run_error":{"description":"Native DWS run failure, with DWS\u0027s caller-specific redaction preserved.","type":["object","null"]},"usage":{"description":"Native DWS usage for this retained run. An empty object is not proof that execution was free or that billing has settled.","type":["object","null"]},"guidance":{"type":["string","null"]},"read_warning":{"type":["string","null"]},"file_name":{"description":"The input file\u0027s name as DWS recorded it.","type":["string","null"]},"schema_fields":{"description":"Extraction only: the top-level fields of the schema this run extracts, generated or supplied. Check they cover the user\u0027s request.","type":["array","null"],"items":{"type":"string"}},"status":{"description":"queued/running: wait poll_after_seconds and use get_run until terminal; succeeded: inspect result, or use read_result when no values are included; failed: inspect run_error; canceled: ended without a result. Never automatically resubmit uncertain processing.","type":"string"},"result":{"description":"Full native product JSON for small responses. Larger responses use result_summary; download output_assets for complete evidence.","type":["object","null"]},"result_omitted":{"description":"True when result values could not be returned inline. Use download instructions or the retained run; omitted values are not empty data.","type":["boolean","null"]},"review":{"description":"Extraction review signals, not an accuracy verdict. verified=false; signals reference JSON pointers in output.data/metadata. Preserve warnings with saved results.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"fields_inspected":{"type":"integer"},"low_confidence_threshold":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"severity":{"description":"check: inspect the field in the original before relying on it. info: a limit of the evidence (a field the document lacks, low DWS groundedness, which also scores correct reformatted values such as ISO dates low, a choice, signature or barcode that cited text cannot prove), reported for completeness.","type":"string"}},"required":["code","fields","severity"]}},"truncated":{"type":"boolean"},"guidance":{"type":["string","null"]}},"required":["status","signals"]},"result_summary":{"description":"Compact alternative to result. Data is included unchanged only if it fits entirely; full native evidence remains in output_assets.","type":["object","null"],"properties":{"data":true,"data_included":{"type":"boolean"},"native_result_bytes":{"type":"integer"},"guidance":{"type":"string"}},"required":["guidance"]},"review_summary":{"description":"Compact alternative to review. Includes counts and selected signals; omitted_signals/source_truncated make limitations explicit.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"signal_counts":{"type":"object","additionalProperties":{"type":"integer"}},"signals":{"type":"array","items":{}},"omitted_signals":{"description":"Canonical signals left out of this compact summary only. They remain readable with read_result view=review; this is not the count of warnings missing upstream.","type":"integer"},"source_truncated":{"description":"The bounded MCP review is not exhaustive. Any additional missing warnings are unknown; this is independent of omitted_signals, which remain accessible.","type":"boolean"},"guidance":{"type":"string"}},"required":["status","signal_counts","signals","guidance"]},"output_assets":{"description":"Existing DWS artifacts with authenticated download requests.","type":["array","null"],"items":{"type":"object","properties":{"role":{"type":"string"},"content_type":{"type":["string","null"]},"download_url":{"description":"Native DWS asset URL; requires DWS OAuth. Use download_request for a harness without that credential.","type":"string"},"authentication":{"type":["string","null"]},"download_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]}},"required":["role","content_type","download_url","download_request"]}},"retained_until":{"type":["string","null"],"format":"date-time"},"result_access":{"description":"Suggested read_result arguments for inspecting retained JSON without new processing or shell scripts.","type":["object","null"],"properties":{"tool":{"type":"string"},"run_id":{"type":"string"},"product":{"type":"string"},"view":{"type":"string"},"pointer":{"type":"string","default":""},"tenant_id":{"type":["string","null"],"default":null}},"required":["tool","run_id","product","view"]},"result_directory":{"description":"Available views and bounded paths/counts. Use string character counts to jump to a suffix; arrays are not expanded into records.","type":["object","null"],"properties":{"available_views":{"type":"array","items":{"type":"string"}},"entries":{"type":"array","items":{"type":"object","properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"},"total_characters":{"type":["integer","null"],"default":null}},"required":["view","pointer","kind","item_count"]}},"truncated":{"description":"Some child paths were omitted by the depth/count/byte bounds; read a parent to explore further.","type":"boolean"}},"required":["available_views","entries","truncated"]}},"required":["status"]},"annotations":{"title":"Get run","destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}},{"name":"read_result","title":"Read run result","description":"Read selected values from an existing completed JSON result without downloading it through a\nshell. It checks run status itself: no preparatory get_run is needed. No processing or upload\noccurs. If queued/running, wait at least poll_after_seconds and use get_run for further status polls;\ncontinue until terminal rather than answering with a queued acknowledgement. Start with view=data for extraction, review for warnings,\nschema for field definitions, metadata for citations, or native for other product JSON.\nFollow result_access directly when available; result_directory lists actual views, child paths,\narray counts and string character counts. For parsed Markdown use native /output/markdown;\nuse total_characters to choose a suffix offset without reading the beginning first.\npointer is a JSON pointer within that view; empty selects its root. Array elements and object\nproperties are paged using offset/limit, with a byte budget that may return fewer items.\nFollow result_view.next_offset; entries give child pointers when a whole item cannot fit.\nTo inspect data and supporting evidence together, prefer selections with up to four views\n(for example data, metadata and review) in one call and one download. Omit the top-level\nselection arguments when using selections. Each result_views entry reports its own outcome;\nmissing paths do not discard other selections. The global review_summary remains authoritative\nabout available warnings and source truncation; a selected subset cannot establish accuracy.\nString values support text_offset/text_limit and return text_range. Follow its next_offset\nto read long text without shell downloads; offsets count Unicode code points, not bytes.\nEach selection returns at most 8 KiB of values, at most 32 KiB across four selections.\nNever interpret omitted values as empty data. Full original evidence stays in DWS: download\nthe native result using output_assets.download_request when saving results; save MCP review separately. This tool does not write files.","inputSchema":{"type":"object","properties":{"run_id":{"description":"Existing DWS run identifier.","type":"string","pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"product":{"description":"Authorized product. Stored-run tools support data_extraction only; use get_processor_job with job_handle for durable Build; signing/redaction return binary output directly.","type":"string","enum":["data_extraction"]},"view":{"description":"Which part of the canonical JSON to inspect.","type":"string","default":"data","enum":["data","review","schema","metadata","native"]},"pointer":{"description":"JSON pointer within the chosen view, e.g. /records or /records/0. Empty selects the root. Escape ~ as ~0 and / inside property names as ~1.","type":"string","default":"","maxLength":2048},"offset":{"description":"Zero-based array-element or object-property offset within the selected container.","type":"integer","default":0,"minimum":0,"maximum":2147483647},"limit":{"description":"Maximum complete elements or properties; the response byte budget may reduce this. Follow next_offset.","type":"integer","default":25,"minimum":1,"maximum":100},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"selections":{"description":"Read up to four selections together from one canonical download; prefer this for data plus metadata/citations and review. Omit top-level view/pointer/offset/limit/text_offset/text_limit when using this.","type":["array","null"],"items":{"type":["object","null"],"properties":{"view":{"description":"data for extracted values, metadata for citations, review for warnings, schema for field definitions, native for other product JSON.","type":["string","null"],"enum":["data","review","schema","metadata","native"]},"pointer":{"description":"JSON pointer within this view; empty selects its root. Escape ~ as ~0 and / within a property name as ~1.","type":["string","null"],"maxLength":2048},"offset":{"description":"Zero-based array-element or object-property offset, not a document record number.","type":"integer","minimum":0,"maximum":2147483647},"limit":{"description":"Maximum complete elements/properties; the 8 KiB value budget may reduce this.","type":"integer","minimum":1,"maximum":100},"text_offset":{"description":"For a string only: zero-based Unicode code-point offset. Follow text_range.next_offset. Omit to read a whole short string or automatically start a long string at zero.","type":["integer","null"],"minimum":0,"maximum":2147483647},"text_limit":{"description":"Maximum Unicode code points per text chunk; JSON byte limits can reduce this. Only applies to strings.","type":"integer","minimum":1,"maximum":8192}},"additionalProperties":false},"default":null,"minItems":1,"maxItems":4},"text_offset":{"description":"For string values: Unicode code-point offset; continue with text_range.next_offset. Omit to start at zero.","type":["integer","null"],"default":null,"minimum":0,"maximum":2147483647},"text_limit":{"description":"Maximum Unicode code points per string chunk, additionally bounded by 8 KiB of JSON.","type":"integer","default":4000,"minimum":1,"maximum":8192}},"required":["run_id","product"]},"outputSchema":{"type":"object","properties":{"result_view":{"description":"One bounded selection; not the complete evidence file.","type":["object","null"],"properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"value_included":{"type":"boolean"},"value":true,"offset":{"type":"integer"},"total_items":{"type":"integer"},"returned_items":{"type":"integer"},"next_offset":{"type":["integer","null"]},"entries":{"type":["array","null"],"items":{"type":"object","properties":{"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"}},"required":["pointer","kind","item_count"]}},"text_range":{"description":"Present for string values. Offsets/counts are Unicode code points, not bytes or UTF-16 units. complete=true means this chunk reaches the end of the string (the whole string when offset is 0); complete=false means more text follows at next_offset.","type":["object","null"],"properties":{"offset":{"type":"integer"},"returned_characters":{"type":"integer"},"total_characters":{"type":"integer"},"complete":{"type":"boolean"},"next_offset":{"type":["integer","null"],"default":null}},"required":["offset","returned_characters","total_characters","complete"]},"guidance":{"type":"string"}},"required":["view","pointer","kind","guidance"]},"result_views":{"description":"Ordered batch outcomes. Check each error; successful siblings remain available.","type":["array","null"],"items":{"type":"object","properties":{"selection_index":{"type":"integer"},"selection":{"type":"object","properties":{"view":{"description":"data for extracted values, metadata for citations, review for warnings, schema for field definitions, native for other product JSON.","type":"string","enum":["data","review","schema","metadata","native"]},"pointer":{"description":"JSON pointer within this view; empty selects its root. Escape ~ as ~0 and / within a property name as ~1.","type":"string","maxLength":2048},"offset":{"description":"Zero-based array-element or object-property offset, not a document record number.","type":"integer","minimum":0,"maximum":2147483647},"limit":{"description":"Maximum complete elements/properties; the 8 KiB value budget may reduce this.","type":"integer","minimum":1,"maximum":100},"text_offset":{"description":"For a string only: zero-based Unicode code-point offset. Follow text_range.next_offset. Omit to read a whole short string or automatically start a long string at zero.","type":["integer","null"],"minimum":0,"maximum":2147483647},"text_limit":{"description":"Maximum Unicode code points per text chunk; JSON byte limits can reduce this. Only applies to strings.","type":"integer","minimum":1,"maximum":8192}},"additionalProperties":false},"result_view":{"type":["object","null"],"properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"value_included":{"type":"boolean"},"value":true,"offset":{"type":"integer"},"total_items":{"type":"integer"},"returned_items":{"type":"integer"},"next_offset":{"type":["integer","null"]},"entries":{"$ref":"#/properties/result_view/properties/entries","items":{}},"text_range":{"description":"Present for string values. Offsets/counts are Unicode code points, not bytes or UTF-16 units. complete=true means this chunk reaches the end of the string (the whole string when offset is 0); complete=false means more text follows at next_offset.","$ref":"#/properties/result_view/properties/text_range"},"guidance":{"type":"string"}},"required":["view","pointer","kind","guidance"],"default":null},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"guidance":{"type":"string"},"argument_path":{"type":["string","null"],"default":null}},"required":["code","guidance"],"default":null}},"required":["selection_index","selection"]}},"run_id":{"type":["string","null"]},"product":{"description":"Keep this original product with run_id for later reads.","type":["string","null"]},"tenant_id":{"type":["string","null"]},"operation":{"type":["string","null"]},"idempotency_key":{"description":"Submission key, yours or derived from the request. The same request under the same key replays this run instead of processing again; a regenerated intent schema is a different request.","type":["string","null"]},"idempotency_replayed":{"description":"True only when DWS confirms this submission reused an existing retained run; no new processing was submitted.","type":["boolean","null"]},"poll_after_seconds":{"description":"For queued/running runs, wait at least this long before get_run/read_result and back off if still pending. Acceptance is not completion.","type":["integer","null"]},"retry_after_seconds":{"description":"When read_warning reports a capacity or temporary read failure, wait at least this long before reading the same retained run again. Never resubmit processing to retry a read.","type":["integer","null"]},"run_error":{"description":"Native DWS run failure, with DWS\u0027s caller-specific redaction preserved.","type":["object","null"]},"usage":{"description":"Native DWS usage for this retained run. An empty object is not proof that execution was free or that billing has settled.","type":["object","null"]},"guidance":{"type":["string","null"]},"read_warning":{"type":["string","null"]},"file_name":{"description":"The input file\u0027s name as DWS recorded it.","type":["string","null"]},"schema_fields":{"description":"Extraction only: the top-level fields of the schema this run extracts, generated or supplied. Check they cover the user\u0027s request.","type":["array","null"],"items":{"type":"string"}},"status":{"description":"queued/running: wait poll_after_seconds and use get_run until terminal; succeeded: inspect result, or use read_result when no values are included; failed: inspect run_error; canceled: ended without a result. Never automatically resubmit uncertain processing.","type":"string"},"result":{"description":"Full native product JSON for small responses. Larger responses use result_summary; download output_assets for complete evidence.","type":["object","null"]},"result_omitted":{"description":"True when result values could not be returned inline. Use download instructions or the retained run; omitted values are not empty data.","type":["boolean","null"]},"review":{"description":"Extraction review signals, not an accuracy verdict. verified=false; signals reference JSON pointers in output.data/metadata. Preserve warnings with saved results.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"fields_inspected":{"type":"integer"},"low_confidence_threshold":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"severity":{"description":"check: inspect the field in the original before relying on it. info: a limit of the evidence (a field the document lacks, low DWS groundedness, which also scores correct reformatted values such as ISO dates low, a choice, signature or barcode that cited text cannot prove), reported for completeness.","type":"string"}},"required":["code","fields","severity"]}},"truncated":{"type":"boolean"},"guidance":{"type":["string","null"]}},"required":["status","signals"]},"result_summary":{"description":"Compact alternative to result. Data is included unchanged only if it fits entirely; full native evidence remains in output_assets.","type":["object","null"],"properties":{"data":true,"data_included":{"type":"boolean"},"native_result_bytes":{"type":"integer"},"guidance":{"type":"string"}},"required":["guidance"]},"review_summary":{"description":"Compact alternative to review. Includes counts and selected signals; omitted_signals/source_truncated make limitations explicit.","type":["object","null"],"properties":{"status":{"type":"string"},"verified":{"type":"boolean"},"signal_counts":{"type":"object","additionalProperties":{"type":"integer"}},"signals":{"type":"array","items":{}},"omitted_signals":{"description":"Canonical signals left out of this compact summary only. They remain readable with read_result view=review; this is not the count of warnings missing upstream.","type":"integer"},"source_truncated":{"description":"The bounded MCP review is not exhaustive. Any additional missing warnings are unknown; this is independent of omitted_signals, which remain accessible.","type":"boolean"},"guidance":{"type":"string"}},"required":["status","signal_counts","signals","guidance"]},"output_assets":{"description":"Existing DWS artifacts with authenticated download requests.","type":["array","null"],"items":{"type":"object","properties":{"role":{"type":"string"},"content_type":{"type":["string","null"]},"download_url":{"description":"Native DWS asset URL; requires DWS OAuth. Use download_request for a harness without that credential.","type":"string"},"authentication":{"type":["string","null"]},"download_request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"guidance":{"type":"string"},"command":{"description":"This request as a curl command with the credential and url filled in. Run it as returned once no \u003C...\u003E placeholder remains.","type":["string","null"],"default":null}},"required":["url","method","headers","fields","files","expires_at","guidance"]}},"required":["role","content_type","download_url","download_request"]}},"retained_until":{"type":["string","null"],"format":"date-time"},"result_access":{"description":"Suggested read_result arguments for inspecting retained JSON without new processing or shell scripts.","type":["object","null"],"properties":{"tool":{"type":"string"},"run_id":{"type":"string"},"product":{"type":"string"},"view":{"type":"string"},"pointer":{"type":"string","default":""},"tenant_id":{"type":["string","null"],"default":null}},"required":["tool","run_id","product","view"]},"result_directory":{"description":"Available views and bounded paths/counts. Use string character counts to jump to a suffix; arrays are not expanded into records.","type":["object","null"],"properties":{"available_views":{"type":"array","items":{"type":"string"}},"entries":{"type":"array","items":{"type":"object","properties":{"view":{"type":"string"},"pointer":{"type":"string"},"kind":{"type":"string"},"item_count":{"type":"integer"},"total_characters":{"type":["integer","null"],"default":null}},"required":["view","pointer","kind","item_count"]}},"truncated":{"description":"Some child paths were omitted by the depth/count/byte bounds; read a parent to explore further.","type":"boolean"}},"required":["available_views","entries","truncated"]}},"required":["status"]},"annotations":{"title":"Read run result","destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}},{"name":"get_account_usage","title":"Get account usage","description":"Read account usage and credits for an authorized product. A balance is not a reservation, price quote or permission to execute. Recent asynchronous deductions may not have settled; do not claim a workflow was free from an unchanged balance.","inputSchema":{"type":"object","properties":{"product":{"description":"Product whose usage and credits to read; the account must have access to it.","type":"string","enum":["data_extraction","processor","viewer","accessibility"]}},"required":["product"]},"outputSchema":{"description":"The product\u0027s usage and credit balance, as DWS reports it for the account.","type":"object"},"annotations":{"title":"Get account usage","destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}},{"name":"studio_run_link","title":"Open run in DWS Studio","description":"For the Nutrient document panel only. Returns the private DWS Studio link to a Data Extraction run; it opens\nfor a signed-in member of the run\u0027s organization, in the organization\u0027s default Data Extraction workspace.","inputSchema":{"type":"object","properties":{"run_id":{"description":"Data Extraction run to open.","type":"string","pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128},"tenant_id":{"description":"Optional tenant selector within the authorized product; DWS verifies ownership. Use the same one for upload_documents, the processing call and later reads.","type":["string","null"],"default":null,"pattern":"^[A-Za-z0-9_-]\u002B$","minLength":1,"maxLength":128}},"required":["run_id"]},"outputSchema":{"type":"object","properties":{"url":{"description":"Private DWS Studio link; it requires signing in to the run\u0027s organization.","type":"string"}},"required":["url"]},"annotations":{"title":"Open run in DWS Studio","destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"_meta":{"ui":{"visibility":["app"]}}}]