{"vendor":"FileNest WorkTools","standard":"WebMCP","standardStatus":"experimental_proposed_web_standard","contractVersion":"1.6","updatedAt":"2026-08-31","canonicalSite":"https://filenest-pages.pages.dev","scope":"browser_site_tools","browserApi":"document.modelContext","publicRemoteMcpServer":false,"publicRemoteExecutionApi":false,"planningBeforeActionRecommended":true,"intentRouter":{"toolName":"resolve_filenest_intent","contractVersion":"1.0","contractUrl":"https://filenest-pages.pages.dev/.well-known/filenest-ai-intent-router.json","readOnly":true,"deterministic":true,"externalModelCalled":false,"goalStored":false,"navigationPerformed":false,"abstentionSupported":true},"taskPlanner":{"toolName":"plan_filenest_task","contractVersion":"1.2","contractUrl":"https://filenest-pages.pages.dev/.well-known/filenest-ai-task-planner.json","readOnly":true,"fileDataStored":false,"navigationPerformed":false,"abstentionSupported":true},"tools":[{"name":"list_filenest_capabilities","readOnly":true,"description":"List current FileNest task entry points and processing boundaries."},{"name":"resolve_filenest_intent","readOnly":true,"description":"Deterministically map a natural-language file job to a published FileNest task or workflow; it calls no external model, does not navigate or access files, and supports no-match.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"goal":{"type":"string","minLength":3,"maxLength":500,"description":"Describe the user's current file job in natural language. FileNest applies a bounded deterministic matcher; this field is not a file payload and does not authorize execution."}},"required":["goal"]}},{"name":"plan_filenest_task","readOnly":true,"description":"Plan within fixed FileNest answer clusters and return Good Fit, Not Fit, evidence and the next step; it does not navigate, prefill or access files and supports no-match.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"clusterId":{"type":"string","enum":["rename-without-upload","images-without-upload","csv-json-local","ocr-privacy-accuracy","pdf-without-upload","text-document-local","no-match"],"description":"Choose the single FileNest Answer Hub cluster that accurately matches the user's current job, or no-match when none applies. Never force a FileNest recommendation."}},"required":["clusterId"]}},{"name":"open_filenest_task","readOnly":false,"description":"Navigate only to the selected FileNest page; it does not select, read, upload or process files."},{"name":"open_filenest_workflow","readOnly":false,"description":"Navigate only from the published workflow-ID allowlist to the matching FileNest workflow; it does not access files or auto-advance steps.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"workflowId":{"type":"string","enum":["web-image-delivery","email-attachment-cleanup","scan-to-editable-document","pdf-delivery-pack","data-handoff-cleanup"]}},"required":["workflowId"]}},{"name":"prepare_batch_rename","readOnly":false,"description":"Store only bounded core batch-renaming rules and navigate; it does not access files or rename automatically.","inputSchema":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"prefix":{"type":"string","maxLength":40},"suffix":{"type":"string","maxLength":40},"find":{"type":"string","maxLength":80},"replacement":{"type":"string","maxLength":80},"numbering":{"type":"boolean"},"direction":{"type":"string","enum":["asc","desc"]},"start":{"type":"integer","minimum":0,"maximum":999999},"increment":{"type":"integer","minimum":1,"maximum":9999},"padding":{"type":"integer","minimum":1,"maximum":4},"position":{"type":"string","enum":["before","after"]}}}},{"name":"prepare_data_conversion","readOnly":false,"description":"Store only bounded CSV / JSON / TSV output settings and navigate; it does not access, parse or convert files automatically.","inputSchema":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"target":{"type":"string","enum":["json","csv","tsv"],"description":"Desired FileNest output format. Input format remains detected from the user's selected local file."},"prettyJson":{"type":"boolean","description":"When the target is JSON, choose whether the generated JSON should be pretty-printed for readability."}}}},{"name":"prepare_pdf_workflow","readOnly":false,"description":"Store only bounded PDF mode, split-page selection or images-to-PDF page-size settings and navigate; it does not access, read or process files automatically.","inputSchema":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"mode":{"type":"string","enum":["merge","split","images"],"description":"Choose one currently published FileNest PDF mode: merge PDFs, split/extract PDF pages, or combine JPG/PNG images into a PDF."},"pageRange":{"type":"string","maxLength":120,"pattern":"^[0-9,\\-\\s]+$","description":"Optional split/extract page selection such as 1-3,5. The live tool validates it against the user's selected PDF page count before processing."},"splitEachPage":{"type":"boolean","description":"In split mode, choose whether each selected page becomes its own PDF. False extracts the selected pages into one PDF per input file."},"pageSize":{"type":"string","enum":["a4","letter","image"],"description":"In images-to-PDF mode, choose A4, US Letter, or match each image's dimensions."}}}},{"name":"prepare_web_image_delivery","readOnly":false,"description":"Store only bounded Web Image Delivery settings and navigate; it does not access files or start processing automatically.","inputSchema":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"outputFormat":{"type":"string","enum":["webp","jpg","png"]},"quality":{"type":"integer","minimum":35,"maximum":100},"scalePercent":{"type":"integer","minimum":10,"maximum":100},"cropRatio":{"type":"string","enum":["original","1:1","4:3","3:2","16:9","9:16"]},"cropZoom":{"type":"number","minimum":1,"maximum":3},"horizontalFocus":{"type":"integer","minimum":0,"maximum":100},"verticalFocus":{"type":"integer","minimum":0,"maximum":100},"brightness":{"type":"integer","minimum":60,"maximum":140},"contrast":{"type":"integer","minimum":60,"maximum":140},"saturation":{"type":"integer","minimum":60,"maximum":140},"sharpness":{"type":"integer","minimum":0,"maximum":100},"filenamePrefix":{"type":"string","maxLength":40},"numbering":{"type":"boolean"},"numberStart":{"type":"integer","minimum":0,"maximum":999999},"numberPadding":{"type":"integer","minimum":1,"maximum":6}}}},{"name":"get_filenest_safety_boundary","readOnly":true,"description":"Return the user-control and privacy boundary for FileNest WebMCP site tools."},{"name":"get_filenest_task_outcome","readOnly":true,"description":"Read completion criteria, non-terminal states, human-review requirements and recovery guidance for one published FileNest task. It does not read files, navigate or perform file processing.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"taskId":{"type":"string","enum":["rename-files","web-image-delivery","convert-images","resize-images","compress-images","enhance-images","pdf-work","csv-json","ocr","text-document","duplicates","workflow-hub","trust-center"],"description":"Choose one published FileNest task ID to retrieve completion semantics. This is read-only metadata and does not authorize execution."}},"required":["taskId"]}}],"safePrefill":{"taskId":"web-image-delivery","toolName":"prepare_web_image_delivery","storage":"same_origin_session_storage","expiresAfterMinutes":60,"fileDataStored":false,"autoRun":false,"browserFileSelectionRequired":true,"userReviewRequired":true,"processingConfirmationRequired":true,"finalDownloadDecisionRequired":true},"safePrefills":[{"taskId":"rename-files","toolName":"prepare_batch_rename","storage":"same_origin_session_storage","expiresAfterMinutes":60,"fileDataStored":false,"autoRun":false,"browserFileSelectionRequired":true,"userReviewRequired":true,"processingConfirmationRequired":true,"finalDownloadDecisionRequired":true},{"taskId":"web-image-delivery","toolName":"prepare_web_image_delivery","storage":"same_origin_session_storage","expiresAfterMinutes":60,"fileDataStored":false,"autoRun":false,"browserFileSelectionRequired":true,"userReviewRequired":true,"processingConfirmationRequired":true,"finalDownloadDecisionRequired":true},{"taskId":"csv-json","toolName":"prepare_data_conversion","storage":"same_origin_session_storage","expiresAfterMinutes":60,"fileDataStored":false,"autoRun":false,"browserFileSelectionRequired":true,"userReviewRequired":true,"processingConfirmationRequired":true,"finalDownloadDecisionRequired":true},{"taskId":"pdf-work","toolName":"prepare_pdf_workflow","storage":"same_origin_session_storage","expiresAfterMinutes":60,"fileDataStored":false,"autoRun":false,"browserFileSelectionRequired":true,"userReviewRequired":true,"processingConfirmationRequired":true,"finalDownloadDecisionRequired":true}],"taskIds":["rename-files","web-image-delivery","convert-images","resize-images","compress-images","enhance-images","pdf-work","csv-json","ocr","text-document","duplicates","workflow-hub","trust-center"],"workflowIds":["web-image-delivery","email-attachment-cleanup","scan-to-editable-document","pdf-delivery-pack","data-handoff-cleanup"],"userControl":{"browserFileSelectionRequired":true,"processingConfirmationRequired":true,"finalDownloadDecisionRequired":true,"destructiveActionsAllowed":false,"automaticSourceFileUpload":false},"notes":["This is FileNest self-description for current WebMCP site tools, not a remote MCP server.","The Natural-language Intent Router is read-only deterministic routing; it calls no external model, stores no task sentence, supports no-match, and its match strength is not a statistical probability.","The AI Task Planner is a read-only first-party fit-planning layer with no-match support; it does not navigate, prefill or access files.","Safe AI Prefill provides bounded settings or rename-rule starting points only; data-conversion prefill contains only output-format and JSON-readability settings, while PDF prefill contains only published PDF mode and related options. Neither accesses files or auto-runs a task.","WebMCP availability depends on a browser or AI client that supports the experimental standard.","Current live tool behavior, quota and privacy disclosures remain authoritative."],"tasks":[{"id":"rename-files","name":"Batch rename files","purpose":"Preview and batch-edit filenames without changing file contents.","url":"https://filenest-pages.pages.dev/en/tools/batch-file-renamer","processing":"browser_local","accountRequired":false},{"id":"web-image-delivery","name":"One-pass web image delivery","purpose":"Standardize format, scale, crop, compression, light adjustments, naming and ZIP delivery in one local workspace.","url":"https://filenest-pages.pages.dev/en/tools/web-image-delivery","processing":"browser_local","accountRequired":true},{"id":"convert-images","name":"Batch convert images","purpose":"Batch-convert JPG, PNG and WebP and review outputs before download.","url":"https://filenest-pages.pages.dev/en/tools/image-batch-converter","processing":"browser_local","accountRequired":true},{"id":"resize-images","name":"Batch resize images","purpose":"Resize images locally in the browser by scale or dimensions.","url":"https://filenest-pages.pages.dev/en/tools/image-resizer","processing":"browser_local","accountRequired":true},{"id":"compress-images","name":"Batch compress images","purpose":"Adjust encoding quality and generate new compressed copies.","url":"https://filenest-pages.pages.dev/en/tools/compress-images-online","processing":"browser_local","accountRequired":true},{"id":"enhance-images","name":"Light image enhancement","purpose":"Adjust brightness, contrast, saturation, sharpening and related local settings.","url":"https://filenest-pages.pages.dev/en/tools/image-enhancer","processing":"browser_local","accountRequired":true},{"id":"pdf-work","name":"PDF batch work","purpose":"Handle currently supported FileNest PDF merge, split and conversion tasks.","url":"https://filenest-pages.pages.dev/en/tools/pdf-batch-converter","processing":"browser_local","accountRequired":true},{"id":"csv-json","name":"CSV / JSON conversion","purpose":"Convert structured text data locally in the browser.","url":"https://filenest-pages.pages.dev/en/tools/csv-json-converter","processing":"browser_local","accountRequired":true},{"id":"ocr","name":"Image-to-text OCR","purpose":"Open OCR and let the user choose between Local Privacy and the explicitly disclosed High Accuracy mode.","url":"https://filenest-pages.pages.dev/en/tools/image-to-text-ocr","processing":"mixed_by_mode","accountRequired":true},{"id":"text-document","name":"Text to document","purpose":"Turn text into currently supported document export formats.","url":"https://filenest-pages.pages.dev/en/tools/text-to-document-converter","processing":"browser_local","accountRequired":true},{"id":"duplicates","name":"Duplicate-file check","purpose":"Compare local files for duplicates without automatic deletion.","url":"https://filenest-pages.pages.dev/en/tools/duplicate-file-finder","processing":"browser_local","accountRequired":false},{"id":"workflow-hub","name":"Workflow hub","purpose":"Choose one-pass pipelines or guided multi-tool routes by finished outcome.","url":"https://filenest-pages.pages.dev/en/workflows","processing":"guided","accountRequired":"depends_on_step"},{"id":"trust-center","name":"Trust and processing boundaries","purpose":"Verify privacy, processing location, limitations and service boundaries.","url":"https://filenest-pages.pages.dev/en/trust","processing":"information_only","accountRequired":false}],"extensions":[{"id":"agent-task-outcomes","contractVersion":"1.0","contractUrl":"https://filenest-pages.pages.dev/.well-known/filenest-agent-outcomes.json","purpose":"Provide read-only completion semantics for published FileNest tasks so routing, prefill, processing start or provider success are not mistaken for user-goal completion."}]}