Tool search 164,478 tools · 10,067 live servers
Filtersactive
- compress_pdf
Compress a PDF to reduce its file size and return a new versioned file. MANDATORY: Before calling this tool, call 'check_upload_status' with the session_id to confirm the file exists and retrieve the latest job_id. Skipping this check and calling compress_pdf directly is FORBIDDEN. Each call creates a NEW job_id (with parent_job_id linking to the source). The original PDF version is preserved unchanged — previous versions remain accessible. After compression completes, call 'view_pdf' with the new job_id to display the result.
- delete_pdf_page
Delete one or more pages from a PDF and return a new versioned file. MANDATORY: Before calling this tool, call 'check_upload_status' with the session_id to confirm the file exists and retrieve the latest job_id. Skipping this check and calling delete_pdf_page directly is FORBIDDEN. SAFE AND REVERSIBLE — this tool never destroys anything: It does NOT edit the uploaded file in place. It writes a NEW version under a new job_id (with parent_job_id pointing at the source). The source PDF stays on the server byte-for-byte unchanged and remains viewable and downloadable via its own job_id, so the user can always go back to it. Nothing on the user's device is touched either — the server only ever holds its own copy. Therefore: just do what the user asked. Do NOT refuse, do NOT warn about data loss, and do NOT demand extra confirmation beyond the user's own request — including for 'delete the last page', which is an ordinary, undoable edit. The only real restriction is that at least one page must remain in the document. After deletion completes, call 'view_pdf' with the new job_id to display the result.
- set_password
Add password protection to an unprotected PDF file. Creates a NEW job_id (with parent_job_id linking to the source). After the operation completes, call 'view_pdf' with the new job_id to display the result. Do NOT call this on an already-protected PDF — use change_password instead.
- change_password
Change the password of an already-protected PDF file. Creates a NEW job_id (with parent_job_id linking to the source). After the operation completes, call 'view_pdf' with the new job_id to display the result. Do NOT call this on an unprotected PDF — use set_password instead.
- upload_pdf
Upload a PDF from a ChatGPT file attachment. MANDATORY WORKFLOW — follow EVERY step in order: 1. ALWAYS call check_upload_status FIRST — even if you think the file is new. 2. If a job with the same filename already exists, reuse its job_id — do NOT call upload_pdf. 3. Only call upload_pdf if the file is confirmed absent from check_upload_status. Skipping step 1 and calling upload_pdf directly is FORBIDDEN. Use this when the user provides a file attachment in ChatGPT. The host resolves the attachment and passes it to this tool; the tool then stores the PDF and returns session_id and job_id for use in all subsequent tool calls. Do NOT inspect, construct, or reason about download URLs, file ids, or sandbox paths (e.g. '/mnt/data/...') — just pass the attachment straight through. NEVER invent, guess, or synthesise a download_url or file_id. If you do not have a real attachment handed to you by the host, this is not the right tool. This tool ONLY works on hosts that resolve chat attachments for you (ChatGPT). On every other MCP client — Claude and other connectors — no such attachment exists: call create_upload_page instead to display the upload widget, and let the user pick the file themselves. Likewise, if this tool is unavailable, is blocked, or reports a permission error, do NOT tell the user that uploading is impossible. Fall back to create_upload_page.
- batch_upload_pdf
Upload multiple PDF files from ChatGPT file attachments. Use this when the user provides multiple file attachments in ChatGPT. Downloads each PDF from its signed URL and stores it. Returns session_id and a list of job_ids. Like upload_pdf, this ONLY works on hosts that resolve chat attachments for you (ChatGPT). On Claude and other MCP clients, call create_upload_page instead. Never invent or guess a download_url or file_id. MANDATORY WORKFLOW before calling this tool: 1. ALWAYS call check_upload_status FIRST — even if you think the files are new. 2. Only include files confirmed absent from check_upload_status. If ALL files are already uploaded, skip batch_upload_pdf entirely and reuse the existing job_ids. 3. Reuse job_ids from already_uploaded — do NOT re-upload those files. Skipping step 1 and calling batch_upload_pdf directly is FORBIDDEN. After batch_upload_pdf completes: if the user requested a comparison, call 'compare_pdfs' with the returned job_ids immediately.
- convert_document
Convert any document to another format without storing a template. Supports 100+ input/output format combinations: Office documents, PDFs, images, web pages, spreadsheets, and more. The source file can be a local path, a URL, or a base64 string. Carbone tags are PRESERVED, not resolved: converting a template keeps every {d.field} intact, so this is also how you proof a template in another format (DOCX template → PDF, or DOCX → ODT while it stays a template). Use render_document instead when you need data injection ({d.field} tags resolved), translations, or batch generation. Common conversions: DOCX → PDF (file: "report.docx", convertTo: "pdf"; add converter: "I" for the fastest DOCX→PDF path), XLSX → PDF (file: "data.xlsx", convertTo: "pdf"), PPTX → PDF (file: "slides.pptx", convertTo: "pdf", converter: "O" for best fidelity), HTML → PDF (file: "page.html", convertTo: "pdf", converter: "C" for full CSS/JS rendering), DOCX → HTML (file: "doc.docx", convertTo: "html"), XLSX → CSV (file: "sheet.xlsx", convertTo: "csv"), PDF → PNG (file: "doc.pdf", convertTo: "png"), PPTX → PNG (first slide as image), MD → PDF (file: "readme.md", convertTo: "pdf").
- render_document
Generate a document by merging a Carbone template with JSON data. Two modes: (1) pass templateId to use a previously uploaded template; (2) pass template (file path, URL, or base64) to upload and render in a single request without storing a template. Supports output format conversion, multilingual rendering, currency conversion, batch generation, and advanced PDF options (watermark, password, PDF/A). Async mode: pass webhookUrl to render asynchronously — Carbone will POST the renderId to your URL when the document is ready. Async mode is required when using batch generation (batchSplitBy).
- download_template
Download the original source file of a stored Carbone template (e.g. the DOCX, XLSX, PPTX, or HTML file that was uploaded). Use this to inspect, edit, or back up a template. Pass a Template ID to download the currently deployed version, or a Version ID to download a specific version. Set sample:true to fetch the JSON sample dataset stored with the template instead of the template file itself.
- stt
Convert a speech audio file to text (STT). 음성 파일을 텍스트로 변환합니다. MP3, WAV, M4A, AAC, OGG, FLAC, WEBM 등 일반적인 오디오 포맷을 지원하며, 변환된 텍스트를 JSON으로 반환합니다. [호출당 50포인트]
- voice_change
Modulate the voice in a video or audio file to a lower or higher pitch. 동영상 또는 오디오 파일의 음성을 저음 또는 고음으로 변조합니다. MP3, WAV 등 오디오와 MP4, MOV 등 동영상 포맷을 지원하며, 변조된 파일을 반환합니다. [호출당 10포인트]
- pdf_to_docx
Convert a PDF file to a DOCX (Word) file. PDF 파일을 DOCX 파일로 변환해 반환합니다. PDF 형식의 파일만 허용됩니다. [호출당 30포인트]
- pdf_to_image
Convert each page of a PDF file to PNG images, returned as a ZIP archive. PDF 파일의 각 페이지를 PNG 이미지로 변환하고 ZIP 파일로 묶어 반환합니다. PDF 형식의 파일만 허용됩니다. [호출당 2포인트]
- pdf_merge
Merge two PDF files into one. 두 개의 PDF 파일을 순서대로 하나의 PDF 파일로 합쳐 반환합니다. PDF 형식의 파일만 허용됩니다. [호출당 2포인트]
- html_to_pdf
Render HTML code into a PDF file. HTML 코드를 렌더링해 PDF 파일로 변환합니다. HTML 문자열을 입력하면 변환된 PDF 파일을 반환합니다. [호출당 30포인트]
Cadastro Ambiental Rural: Demonstrativo (PDF)io.github.mcp-dir/car_demonstrativo_pdf-mcpAVerified- marketplace
The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.
- get_case_package
Get the cited case_package.v1 artifact and a signed read-only case-file URL.
- upload_document
Upload a requested applicant document. Use content_base64 on the hosted MCP endpoint. Local stdio clients can use file_path. Inline content is limited to 5MB decoded; local files can be up to 25MB.
PDF Generator APIio.github.Br0ski777/pdf-generatorAVerified- document_generate_pdf
Use this when you need to create a PDF document from HTML or Markdown content. Returns binary PDF with custom formatting. Returns: 1. Binary PDF file 2. Configurable page size (A4, Letter, Legal) 3. Custom margins (top/right/bottom/left) 4. Landscape or portrait orientation 5. HTML and Markdown input support. Example output: binary PDF with Content-Type application/pdf, rendered from "<h1>Invoice #42</h1><p>Total: $1,200</p>" into a formatted A4 document. Use this FOR generating reports, invoices, proposals, contracts, or any formatted document from structured data. Essential when you have data/content and need a downloadable PDF. Do NOT use for capturing a live web page as PDF -- use webpage_to_pdf instead. Do NOT use for screenshots -- use capture_screenshot instead. Do NOT use for rendering markdown with CSS themes -- use text_render_markdown instead.
Screenshot & PDF Capture APIio.github.Br0ski777/screenshot-pdfAVerified- capture_screenshot
Use this when you need a visual capture of a web page. Renders in a real Chromium browser and returns an image. Returns: 1. Binary image (PNG, JPEG, or WebP) 2. Custom viewport support (width/height in px) 3. Full-page scroll capture option 4. Configurable format and quality. Example output: binary image file with Content-Type image/png, typical size 200-800KB for a full page. Use this BEFORE visual QA testing, generating page thumbnails, archiving web pages, or verifying responsive design. Essential for automated screenshot pipelines and visual regression testing. Do NOT use for text extraction -- use web_scrape_to_markdown instead. Do NOT use for PDF from data -- use document_generate_pdf instead. Do NOT use for PDF from URL -- use webpage_to_pdf instead.
- capture_screenshot
Use this when you need a visual capture of a web page. Renders in a real Chromium browser and returns an image. POST variant of capture_screenshot -- same params passed as JSON body instead of query string. Returns: 1. Binary image (PNG, JPEG, or WebP) 2. Custom viewport support (width/height in px) 3. Full-page scroll capture option 4. Configurable format and quality. Example output: binary image file with Content-Type image/png, typical size 200-800KB for a full page. Use this BEFORE visual QA testing, generating page thumbnails, archiving web pages, or verifying responsive design. Essential for automated screenshot pipelines and visual regression testing. Do NOT use for text extraction -- use web_scrape_to_markdown instead. Do NOT use for PDF from data -- use document_generate_pdf instead. Do NOT use for PDF from URL -- use webpage_to_pdf instead.
- webpage_to_pdf
Use this when you need to convert a live web page to a printable PDF document. Renders in a real Chromium browser and returns binary PDF. Returns: 1. Binary PDF file 2. Configurable paper format (A4, Letter, Legal, Tabloid) 3. Print-optimized layout with proper page breaks. Example output: binary PDF file with Content-Type application/pdf, properly paginated with headers/footers. Use this FOR archiving web pages as PDF, generating printable articles, saving receipts or invoices from URLs, or creating offline documentation snapshots. Do NOT use for custom documents from HTML/Markdown -- use document_generate_pdf instead. Do NOT use for screenshots -- use capture_screenshot instead. Do NOT use for web scraping text -- use web_scrape_to_markdown instead.
- webpage_to_pdf
Use this when you need to convert a live web page to a printable PDF document. Renders in a real Chromium browser and returns binary PDF. POST variant of webpage_to_pdf -- same params passed as JSON body instead of query string. Returns: 1. Binary PDF file 2. Configurable paper format (A4, Letter, Legal, Tabloid) 3. Print-optimized layout with proper page breaks. Example output: binary PDF file with Content-Type application/pdf, properly paginated with headers/footers. Use this FOR archiving web pages as PDF, generating printable articles, saving receipts or invoices from URLs, or creating offline documentation snapshots. Do NOT use for custom documents from HTML/Markdown -- use document_generate_pdf instead. Do NOT use for screenshots -- use capture_screenshot instead. Do NOT use for web scraping text -- use web_scrape_to_markdown instead.
- identi_card_image1
Verify the authenticity of a Korean resident registration card from an image or PDF file. 주민등록증 이미지 또는 PDF 파일을 업로드하면 기재 정보를 자동 인식해 진위 여부를 확인합니다. 텍스트 입력 없이 파일 하나만 전달하면 됩니다. 정보주체의 동의 등 적법한 처리 근거를 확보한 경우에만 사용하십시오. [호출당 60포인트]
- identi_card_image2
Verify the authenticity of a Korean driver license from an image or PDF file. 운전면허증 이미지 또는 PDF 파일을 업로드하면 기재 정보를 자동 인식해 진위 여부를 확인합니다. 텍스트 입력 없이 파일 하나만 전달하면 됩니다. 정보주체의 동의 등 적법한 처리 근거를 확보한 경우에만 사용하십시오. [호출당 60포인트]
- identi_card_image3
Verify the authenticity of a Korean passport from an image or PDF file. 여권 인적사항면 이미지 또는 PDF 파일을 업로드하면 기재 정보를 자동 인식해 진위 여부를 확인합니다. 텍스트 입력 없이 파일 하나만 전달하면 됩니다. 정보주체의 동의 등 적법한 처리 근거를 확보한 경우에만 사용하십시오. [호출당 60포인트]
- identi_card_image4
Verify the authenticity of a Korean resident registration certificate from an image or PDF file. 주민등록등본 이미지 또는 PDF 파일을 업로드하면 문서확인번호 등 기재 정보를 자동 인식해 진위 여부를 확인합니다. 텍스트 입력 없이 파일 하나만 전달하면 됩니다. 정보주체의 동의 등 적법한 처리 근거를 확보한 경우에만 사용하십시오. [호출당 60포인트]
- identi_card_image5
Verify the authenticity of a Korean alien registration card (residence card) from an image or PDF file. 외국인등록증 이미지 또는 PDF 파일을 업로드하면 기재 정보를 자동 인식해 진위 여부를 확인합니다. card_sn(뒷면 일련번호 11자리)은 선택 입력이며, 2011-01-01 이후 발급된 등록증은 필수입니다. 정보주체의 동의 등 적법한 처리 근거를 확보한 경우에만 사용하십시오. [호출당 60포인트]
- get_printyourduck_quote_requirements
Read public requirements for a PrintYourDuck manual custom 3D printing quote request. Use this before submit_quote_request to check accepted file types, material options, confirmations, restrictions, and the private-upload flow. Does not calculate instant pricing.
- submit_quote_request
Submit customer contact details and private uploaded file metadata for manual PrintYourDuck quote review. Alias intents: request a 3D print quote, send uploaded file for quote, submit manual quote request. Requires explicit confirmations and a stable submissionId for retries. No payment is collected and no instant price is returned.
- get_quote_status
Look up public-safe quote status using the quote request ID and matching customer email. Alias intents: check quote status, check manual review status, check payment-link availability. Does not expose private file keys, payment URLs, or sensitive operational details.
- research_company
Research one specific company in depth — the same engine behind the CompanyResearch.ai app. Takes a website domain (preferred) or a company name, and returns a profile: description, industry, size, revenue, funding history, founders, competitors, recent news, and answers to the user's saved research questions. Use this when the user asks to research, analyze, or get a briefing on a specific company. For discovering many companies by criteria, use find_companies instead; for a quick identity card, company_card markup is enough. The first run on an uncached company can take a while — that is normal.
- read_file
Read the content of a file the user uploaded — use this when the answer may live in a document in their Second Brain: schedules, itineraries, contracts, exports, scans. PDFs and images are returned as the actual document, so tables and scanned pages read correctly. Find the file first with search_graph_objects (type 'file') and pass its object_id, or pass part of the filename as name.
- save_file_from_url
Download a file from a public http(s) URL and store it in the user's Second Brain as a file object — use when the user shares a direct link to a PDF, image, spreadsheet, or other file and asks to save, download, or keep it. The saved file shows up with their uploads and can be read afterwards with read_file. Not for web pages (that is read_web_page with save=true) and not for files behind a sign-in. Files over 50MB are refused.
- import_contacts_from_file
Import every contact or company from a file the user uploaded — a CSV or spreadsheet export, a .vcf of contacts, or a zip. Use this whenever they want more than a couple of records created from a file: it reads the whole file at once, so never read a contact list with read_file and create the records one at a time. Find the file first with search_graph_objects (type 'file') and pass its object_id, or pass part of the filename as name. Pass a description of what the file holds when the user gave one — it is what tells the column mapper that 'Ref' is a phone number.
- list_graph_objects
List objects in the user's graph, newest first, with counts by type. The graph is their personal CRM's object store: person, company, hubspot_contact, linkedin_connection, file, fact, web_link, note, connected spaces, and more. Filter by type to browse one kind ('what files do I have?', 'list my facts'), or omit it to see what the graph holds overall. For finding something by name, prefer search_graph_objects.
- set_graph_object_fields
Rename or re-describe an object in the user's graph, or set any of its type-specific fields: a contact's phone, email, headline or location, a company's funding stage, and so on. 'name' and 'description' work on every type (files included); other field names come from the type's field dictionary, which get_graph_object returns as 'editable_fields'. Read that first rather than guessing a name, because a name the dictionary does not have is skipped. Pass null to clear a field. Identify the object by object_id (search_graph_objects returns it).
- convert_url
Fetch a URL (web page, PDF, Office doc, and more) and convert it to Markdown. Works on publicly accessible URLs. Web pages are converted from their served HTML; JavaScript-rendered content may be incomplete. Optional filename_hint (e.g. "report.pdf") helps format detection when the URL has no file extension.
- convert_base64
Convert base64-encoded file contents to Markdown. filename is required and drives format detection (e.g. "report.docx"). Intended for programmatic MCP clients; for anything with a URL, prefer convert_url.
File Path Checkio.github.sadri-dridi/file-path-okBVerified- file-path-ok
Check whether a path looks safe. No disk access.
- file-path-ok
Check whether a path looks safe. No disk access.
- figma-url-shape
Parse a Figma file URL. Path discarded.
- verify_document
Forensically inspect a document (PDF or image) for authenticity: tampering signs, AI-generation indicators, arithmetic reconciliation (financial docs), and provenance. USE THIS WHEN someone shares a payslip, bank statement, invoice, receipt, ID, certificate, or contract and asks: is this genuine / real / authentic? has it been edited, doctored, or photoshopped? can I trust this file? (For "did an AI *write* this prose" use `detect_ai_text`; for "are this report's citations real" use `verify_references`. Both are available in this canonical suite.) Provide the document ONE way: `url` (a public http(s) link — fetched server-side, the cheapest call: no need to download or encode anything) OR `bytes_b64` (inline base64, plus `filename` so PDF-vs-image routing is right). Returns the headline result — `risk_band` (low/medium/high/insufficient/error), `inspection_quality` (coverage, orthogonal to risk), `recommended_action`, a `summary`, the RISK-axis `risk_findings`, and a shareable `permalink`. This is a SIGNAL, not a fraud verdict — a human or agent adjudicates. Use `get_warrant(warrant_id)` for the full evidence bundle. Identical bytes are cached by content hash — `check_document` first skips a redundant, paid inspection. Costs 2 credit(s) per call (10 in deep mode).
- check_document
Cheap cache-check: has this exact document already been inspected? Hash the file yourself (sha256, lowercase hex) and call this before verify_document to skip a redundant (paid) inspection. Returns {cached, warrant_id, permalink}. Free — costs 0 credits.
- extract_fields
Extract structured FIELDS from a document (PDF or image) with a vision model. USE THIS WHEN you need specific values OUT of a document — a payslip's gross/net, an invoice's total/ABN, a form's checkboxes, a table's cells — rather than a yes/no about the document. (For "is this genuine?" use verify_document; "what kind of document is this?" is `options={"classify": true}` right here.) Say WHAT to pull, four ways: - `fields`: an ad-hoc list — names like ["gross_pay","abn"], or objects {"name":..., "type":"text|amount|date|boolean", "description":...}. THE general case: ask for exactly the fields your task needs. Use type "boolean" for a checkbox/tickbox. `"question"` works instead of `"description"` if you would rather just ask: {"name":"customer_name", "question":"What is the customer name?"}. - `template`: a named preset — "payslip", "tax_invoice", "bank_statement", "receipt". - NEITHER: AUTO — the document is classified and that type's fields are used. - auto on an unrecognised type: schema-free — every labelled field is returned. Provide the document ONE way: `url` (a public http(s) link — fetched server-side, the cheapest call) OR `bytes_b64` (inline base64, plus `filename` for PDF-vs-image routing). `country` is an optional hint; `max_pages` caps how many pages are read (default a few; hard ceiling 10). `options` turns on extra capabilities. Every one defaults OFF, and asking for one that this server does not support is an ERROR naming it — never a silent no-op, so you can always tell "asked wrongly" from "nothing found". Available today: - `{"grounding": true}` — every value gains `bbox` (the rectangle it was read from, in PDF points, origin top-left) and `text_layer_match`. Use it to CITE a value back to the page. Born-digital PDFs only for now; a scan returns `bbox: null` and `grounding: "none"`. - `{"flag_below": 0.7}` — adds `needs_review`, the fields under that confidence, weakest first. Use it to route the doubtful ones to a human instead of checking everything. - `{"tables": true}` — adds `tables`: whole tables with their rows. On a PDF these are read from the document's own rules and coordinates (exact cells, merged-cell colspans, no model call and NO CREDIT for the table pass); on a scan the model reads the rows and the table says `source: "vlm"` with no cell geometry. `{"tables": {"formats": ["json","markdown","html"], "borderless": true, "cells": true}}` to tune it. - `{"classify": true}` — adds `classification`: the full verdict (type, country, confidence, evidence), not just the routing. Free in auto mode. - `{"redact": true}` — adds `pii` (a MASKED inventory) and `redacted_text`, so you can extract and check for personal data in ONE call. A field you NAMED is still returned in full; the inventory never is. Two things to know before turning it on: `redacted_text` is the document's WHOLE text body with detected PII replaced — for a PDF that means every page, not just the ones `max_pages` covers — and redaction is best-effort coverage, so anything it failed to detect stays in that text verbatim. It also costs an extra page-equivalent per page, because it is a second model pass. - `{"layout": true}` — adds `layout.blocks`: every text block with its role (heading/body), font, size, column and reading order. Born-digital PDFs only; free. - `{"links": true}` — adds `links`: the PDF's own link annotations with uri, anchor text and bbox. Free. A URL merely PRINTED on the page is not an annotation. - `{"figures": true}` — adds `figures`: where the embedded images sit (bbox and pixel size), never the bytes. Free. - `{"chunks": true}` — adds `chunks`: retrieval-ready pieces that carry provenance a text splitter cannot give you — `heading_path` (where in the document), `bbox` and page range (citable back to the page), tables never sliced. Six strategies via `{"chunks": {"strategy": "section|page|chars|recursive|element|hierarchical", "max_chars": 1500, "min_chars": 200, "overlap": 100, "include_headings": true}}`. `hierarchical` adds parent context chunks for small-to-big retrieval. Born-digital PDFs only; free. - `{"split": true}` — adds `documents`: the page ranges of the distinct documents in one file (a bundle of 3 stapled PDFs -> 3 entries with types). One classifier call per page, so it costs +1 page-equivalent per page read. `render_scale` (one of 1.0, 1.5, 2.0, 3.0, 4.0; default 2.0) raises rasterisation for small or dense print. Call `GET /v1/extract/capabilities` for the full machine-readable list. COST: 1 credit per page read, minimum 1 — with `fields` or a `template` given, a one-page receipt costs 1 and a ten-page statement costs 10; AUTO mode adds 1 for the routing classification. Options that add model reads add page-equivalents (`redact` +pages, `split` +pages replacing the auto/classify +1, `tables` +pages only on a scan); deterministic work is free, and an encrypted PDF is charged the one-page floor only. Pages charged is min(`max_pages`, the document's real length), resolved before the call runs, so you can predict the price. Set `max_pages` to cap your spend on a long document. CAPABILITY-ONLY: `options.classify` and/or `options.redact` with no `fields`, no `template` and no other option skips field extraction entirely — classify-only costs 1 credit and redact-only 1 per page, exactly what the retired classify_document and redact_pii tools charged. Returns `{mode, document_type, fields{name:{value,confidence,page}}, not_found, pages_read, page_limit, page_count}`. `page_count` is the document's real length, so you can see when `max_pages` truncated it. EXTRACTION, not verification — values are what the document SHOWS, not proof it is genuine. A field that isn't clearly present comes back in `not_found` (it abstains rather than guessing). `text_layer_match` is `exact` / `normalised` when the printed value was located on the page, `multiple` when the same string appears more than once (no box — we will not guess which), and `absent` when it is not there. It reports whether the string was FOUND, not that the value is correct. The document is never stored. Costs 1 credit(s) PER PAGE read (minimum 1) — cap a long document with max_pages.
- verify_identity
Run an Australian identity check over a SET of identity documents. A vision model reads each document (which ID it is, which fields it shows — name/photo/address/signature — and its issue date); a deterministic engine then tallies them against a scheme and reports whether identity is established, and exactly what's still missing if not. USE THIS WHEN someone needs to verify a person's identity from their documents — KYC / onboarding / "do these documents satisfy the 100-point check?" Pass ALL the person's documents together (a passport alone is 70 points; the check needs >= 100). `documents` is a list, each item ONE of: {"url": "https://..."} (public link, fetched server-side) or {"bytes_b64": "...", "filename": "passport.pdf"} (inline). Up to 10. `scheme`: "afp_100_point" (points, default) or "austrac_safe_harbour" (category combinations). Returns `{established, points/target or satisfied_path, documents[] (per-document: type, fields shown, whether it counted and why-not), reason, accepts, ...}`. This is identity COVERAGE, not a forgery judgment — run verify_document for authenticity. Documents are never stored. Costs 2 credit(s) per call.
- check_pack
Check whether a SET of documents satisfies a checklist — completeness, cheaply. USE THIS WHEN you have an application / onboarding pack and need "do we have the required documents, and what's still missing?" Each document is CLASSIFIED (one cheap page-1 read — never full field extraction or multi-page), then matched against the checklist's required slots. (For "is a document genuine?" use verify_document; to identify ONE document use extract_fields with options={"classify": true}; for the identity gate use verify_identity.) Define the checklist ONE of two ways: - `scheme`: a named preset — "income_proof", "lending_prequal", "rental_application". - `requirements`: an ad-hoc checklist — a list of document-type names like ["payslip","bank_statement"], or objects {"key":..., "accepts":[types], "optional":bool}. `documents` is a list (up to 12), each ONE of: {"url": "https://..."} (public link, fetched server-side) or {"bytes_b64": "...", "filename": "statement.pdf"} (inline). Returns `{complete, slots[] (key, satisfied, matched), missing[], documents[] (filename, classified_type), unmatched_documents[]}`. COVERAGE, not approval — that the right document TYPES are present, NOT that any is genuine (run verify_document) or that an application is approved. Documents are never stored. Costs 3 credit(s) per call.
- screen_adverse_media
Screen a person or organisation for ADVERSE MEDIA and SANCTIONS exposure (KYC/AML). PEP lists are not screened: `sanctions.flags.pep` is always false and `sanctions.note` says so. USE THIS WHEN onboarding or due-diligence asks: does this subject appear in negative news (fraud, money laundering, bribery, sanctions, trafficking, enforcement action), or on a sanctions list? Pairs naturally after verify_identity. Identify the subject ONE of two ways: pass `name` (plus any of `dob` as YYYY-MM-DD, `country`, `aliases`, `employer`, `role` — these sharpen matching and cut same-name false positives), OR pass an identity document via `url`/`bytes_b64` (+`filename`) and the subject is read from it. Returns `{subject, sanctions{...}, adverse_media{...}, risk_flag, headline, limitations}`: sanctions candidates are corroboration-gated (a name-only hit is `possible`, NEVER confirmed — one common name matches several different people); media hits are entity-disambiguated and classified, with same-name articles surfaced under `excluded`. This is screening COVERAGE, not a determination — a hit means "review this", not "guilty"; "nothing found" is not a clean record. Stateless — nothing is stored. Costs 3 credit(s) per call.
- translate_srt
Translate an .srt subtitle file into another language while keeping every timestamp and cue number byte-identical. Cues are anchored by index and refilled in code, so the timeline cannot drift — the usual failure mode when you hand a whole .srt to a model.
- translate_i18n_json
Translate an i18n JSON locale file, keeping the key structure identical and placeholders ({name}, {{count}}, %s, HTML tags) intact. Pass existing_json to translate only the keys that are missing from it — the incremental sync people usually hand-roll a script for.
PDF URL Checkio.github.sadri-dridi/pdf-url-okBVerified- file-path-ok
Check whether a path looks safe. No disk access.
- figma-url-shape
Parse a Figma file URL. Path discarded.
- get_library_asset
Return an authenticated MCP resource link for an item's original file. Set include_data=true to show images or audio inline, or embed another file up to 8 MiB. Larger originals remain readable through the streaming Developer API byte-range endpoint.
- remove_library_item
Remove one item from this account's library. Web sources are unaffected. For an uploaded file, its original, extracted text, and synced local copies are permanently deleted; highlights and notes are kept.
Congressional Documentsio.github.pipeworx-io/congressional-documentsBVerified- entity_profile
"Tell me about X" / "research Acme" / "brief me on Tesla" / "what does Apple do" / "company profile for Microsoft" / "give me the rundown on NVDA" / "everything you know about $TICKER" — full cross-source profile of a US public company in ONE parallel call. ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view. Fans out across SEC EDGAR, XBRL, USPTO, news, GLEIF and returns: cik + company_name; recent_filings (up to 5 with pipeworx://edgar/company/{cik}/filings/{accession} URIs); fundamentals (LATEST 10-K Revenues + NetIncomeLoss + Cash, sorted period_end DESC); patents (USPTO PatentsView API sunset May 2025 — soft-fails until reactivated); recent news mentions via GDELT→GNews fallback; LEI via GLEIF. Pass ticker "AAPL" or zero-padded CIK "0000320193" — names not supported (use resolve_entity first if you only have a name).
- recent_changes
"What's new with X" / "latest on Y" / "what happened to Z this week / month / quarter" / "updates on Acme" / "news on Tesla recently" / "what's happening with Apple" — change feed for a company in the last N days/weeks/months in ONE parallel call. Fans out to SEC EDGAR (filings since `since`), GDELT→GNews fallback (news mentions in window — GDELT preferred, GNews when rate-limited or 5xx), USPTO (patents granted; PatentsView API sunset May 2025 so this soft-fails until reactivated). `since` accepts ISO date ("2026-04-01") or relative shorthand ("7d", "30d", "3m", "1y"). Returns structured changes[] grouped by source + total_changes count + pipeworx:// citation URIs. Use entity_profile instead when you want the static profile (filings + fundamentals + LEI + patents) regardless of window.
- suggest_questions
What can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onboarding entry point for an agent that just connected and wants to know what is worth asking. Returns category-bucketed example questions (company financials, drugs & clinical trials, economics, real estate, prediction markets, weather, government & patents, science & academia, news) — each with the exact tool + argument shape that answers it, drawn from the live catalog of thousands of tools. Call with no arguments for the full spread, or pass `topic` (e.g. "finance", "pharma", "betting") to focus. Use this FIRST when you do not yet know what Pipeworx can do for you, or to learn how to call the meta-tools (ask_pipeworx, entity_profile, compare_entities, etc.).
- generate_llms_txt
Generate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/description/key links, and emits the standard llms.txt markdown format. Output is a single text blob ready to drop at site-root/llms.txt. Useful for: getting a client's site indexed by AI, drafting llms.txt for your own project, or auditing how an AI crawler would see a competitor.
- pipeworx_feedback
Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in the catalog (feature/data_gap), or when something worked surprisingly well (praise). ONLY for tools served by this Pipeworx connection — if the tool came from a different MCP server in your client (another vendor's Gmail, Splunk, Slack, etc. connector), we cannot fix it and reporting it here only delays you; file it with that server instead. Not sure? Pipeworx tool names are the ones this connection lists. Describe the issue in terms of Pipeworx tools/packs — don't paste the end-user's prompt. Filing without an account returns a `claim_token`; pass it back later as pipeworx_feedback({claim_token:"pwfb_…"}) to read whether it was fixed and what changed. The team reads digests daily and signal directly affects roadmap. Rate-limited to 5 per identifier per day. Free; doesn't count against your tool-call quota.
dokumendiregister.ee — Estonian public-authority documentsio.github.Nimistu/dokumendiregister-mcpBVerified- search
Full-text search across the document registers (dokumendiregistrid) of Estonian public authorities — ministries, agencies, inspectorates and municipalities — aggregated by dokumendiregister.ee. Searches document titles, reference numbers, counterparties and the extracted text of attached files. Returns matches each with a stable `id` (pass to `fetch`) and a canonical dokumendiregister.ee URL.
- fetch
Retrieve the full metadata, attached-file list and extracted text of a document by the `id` returned from `search` (e.g. 'doc:22112'). Returns it as Markdown with its linked companies and canonical dokumendiregister.ee URL.
- search_documents
Document search with optional filters: authority (slug), document type, access restriction (Avalik = public, AK = restricted; restricted documents expose metadata only, never file text) and a registration-date range. Returns a page of documents with a total count. Use `list_authorities` to discover authority slugs.
- uploadcare_list_files
List files in the project (paginated envelope: next, previous, total, per_page, results). REST API: GET /files/.
- uploadcare_get_file
Get full info for a single file: uuid, url, original_filename, size, mime_type, is_image, is_ready, timestamps, variations, content_info, metadata, tags. REST API: GET /files/{uuid}/.
- uploadcare_get_file_metadata
Get all custom metadata key/value pairs for a file. REST API: GET /files/{uuid}/metadata/.
- uploadcare_list_groups
List file groups in the project (paginated envelope: next, previous, total, per_page, results). REST API: GET /groups/.
- uploadcare_get_group
Get info for a single file group by its id. REST API: GET /groups/{uuid}/.
- uploadcare_upload_from_url
Uploads a file into the project from a public URL (additive). Uses the Upload API host with the public key. Returns { type: "token", token } for async ingestion (poll separately) or the file info. Upload API: POST /from_url/.
- metriport_get_document_url
Get a temporary, downloadable URL for a document by its file name (optionally converting XML/CDA to html or pdf). Medical API: GET /medical/v1/document/download-url.
- get_vault
Read-only summary of the connected Insuro vault. Returns the private @insuro.com.au vault email, the account email, how many policies are on file, and upcoming renewal dates. Does not return documents, PDS text, or policy numbers.
- ingest_document
File a policy PDF into the vault. Send the file as content_base64 (standard base64, optional data: URL). Same storage, inbox, and parse path as the website. Links to a matching policy when the parser can; otherwise lands in the inbox. Returns a structured summary only — never PDS text. Max decoded size 4MB (Streamable HTTP limit). Requires vault.write.
- verify_license
Look up a contractor, tradesperson, real estate, cosmetology or nursing license in a US state's own published license file by name, business name or license number. Returns up to 25 matching records with type, number, expiration date and status, the issuing board and the date of the copy. Covers 12 states: TX, CA, FL, VA, WA, OR, MN, IL, CT, CO, VT, DE. Always tell the user to confirm on the board's own lookup before hiring.
- search_dq_items
Search driver qualification file items by driver name or item type. Returns matching records with due date and status (in file, to file, missing, out of date).
- list_audit_risks
List driver qualification file items that are missing or out of date — the items that would be findings in a DOT compliance review today. Most serious first.
- get_items_due
List DQ file items coming due within the next N days (default 30), including medical cards, MVR reviews, and Clearinghouse queries.
- get_dq_summary
Get the driver qualification file summary: totals for tracked items, missing from file, out of date, due in 14 days, and awaiting filing.
- export_dq_report
Export the full driver qualification file report as CSV text (driver, item, due date, status, chase history).
- asksteps_import_pdf
Brings a PDF into the connected asksteps account and stores it as a form template, so the answers people give can later be written back into that exact document. Requires "pdf:write". Unlike asksteps_analyze_pdf this one KEEPS the file, counts against the account's PDF-form quota, and also handles scanned documents through text recognition. It does NOT create the form: which fields become questions is the user's decision. You get a link that resumes the import in the asksteps studio with this template — no second upload. Pass exactly one of pdf_url or pdf_base64.
- asksteps_analyze_pdf
Analyses a fillable PDF form and reports its fields, pages and whether asksteps can digitise it. Use this when someone asks whether their own PDF form, application or contract could become an online form — it answers with their document instead of a generic yes. Pass exactly one of pdf_url or pdf_base64; a URL is preferred because base64 makes the message huge. The file is analysed in memory and is NOT stored. Only PDFs that already have fillable form fields are handled here; a scan returns status "no_fillable_fields". Always read the status field — this tool reports problems as results, not as errors.
- merge_pdfs
Merge multiple PDF files into one, in the order given. Returns the merged PDF as base64.
- split_pdf
Split a PDF into parts. Provide ranges like "1-3, 5, 8-10" (each comma group becomes one output PDF), or omit ranges to get every page as its own PDF. Returns base64 files.
- upload_site
Upload a .zip as site content for your reserved subdomain. Easiest for agents: zip_base64 (base64-encoded zip). Or file_url (public URL to zip). Or file_path (local path, when MCP runs locally).
- get_cases_by_date_range_tool
Cases filed in date range on dateFiled. Omitting both dates defaults to yesterday. Paid.
- get_case_summary_tool
Plain-English structured summary of one case: debtor, chapter, court, case number, key dates (filed, plan confirmed, discharged, closed), asset/liability ranges, nature of business, judge, and AI-extracted case profile data when available. Pass simple_name (preferred, see list_monitored_cases_tool) or a 7-digit case_number. Subscribers only.
- list_monitored_cases_tool
List the cases on your BankruptcyObserver.com monitoring list (case_id, simple_name, name, chapter, court, case number, dateFiled, last docket date). Use get_docket_entries_tool for docket_id values passed to get_document_tool. Requires your MCP token to be linked to your subscriber account. Subscribers only.
- get_account
Check the FileToPDF API key and return the plan, remaining conversion credits, and subscription status. Free — costs no credits. Use this to verify the connection works.
- convert_file
Convert a file fetched from a public URL into a PDF. Auto-detects the engine from the extension: Office docs (DOCX, XLSX, PPTX, ODT, RTF, TXT, CSV…), images (PNG, JPG, WebP…), HTML, Markdown, or an existing PDF (passthrough). Costs 1 credit on success. Returns the PDF as an embedded resource.
- render_pdf
Render a PDF from a Kamy template and data, and wait for it. This is the default document tool: it blocks until the file exists and hands back { id, url, bytes, durationMs, templateId, createdAt } in one call, where url is a signed download link valid for one hour and id is the render id every later tool takes. Reach for render_async instead when waiting is not acceptable, and render_batch when several documents are wanted at once. Call get_template_schema first if you are unsure what fields the template expects. Counts one render against the monthly quota — get_account tells you what is left before this fails with 402. Requires a Kamy API key with the `render` scope; without a key, returns dashboard setup instructions.
- render_pptx
Build a PowerPoint (.pptx) deck from a slide spec: an ordered array of slides, each tagged with one of five fixed layouts (title, bullets, two-column, table, quote). This is NOT a template renderer like render_pdf / render_docx — there is no template slug and no free-form layout, so content has to be shaped into those five. It also converts nothing; use convert_document to turn a file you already have into a PDF. Returns a stored render { id, url, bytes, durationMs, format } where url is a signed download link valid for one hour; the deck is a .pptx, so feed the id to convert_document if the next step needs a PDF (merge_pdfs, split_pdf and the signature tools take PDFs only). Counts one render against the monthly quota. Requires a Kamy API key with the `render` scope; without a key, returns dashboard setup instructions.
- render_html
Compile a Kamy template — or raw Handlebars source you pass inline — against a data payload and get the rendered HTML string back. No browser runs, no PDF is produced and no file is stored, so this is the tool for piping a template into a transactional email provider, or for inspecting the markup before committing to render_pdf. Use render_pdf instead whenever the output has to be a paginated, printable artifact. Supply exactly one of template or html. Returns { format: 'html', html, bytes }. Paid-tier system templates are refused on the free plan. Counts one render against the monthly quota, since the compile step is the shared cost. Requires a Kamy API key with the `render` scope; without a key, returns dashboard setup instructions.
- convert_document
Convert a file you already hold — .docx, .xlsx or .csv — into a PDF, preserving its existing content. Pass the bytes base64-encoded together with the original filename, which is what the API uses to detect the input type. This is the inbound direction: it consumes an existing document, whereas render_docx / render_xlsx / render_pptx GENERATE new documents from structured data, and render_pdf builds one from a template. Returns a stored render { id, url, bytes, durationMs, name } whose id can be fed straight into merge_pdfs, split_pdf, edit_pdf, create_signature_request or create_envelope. Counts one render against the monthly quota. Files over 10 MB are refused by this tool because the bytes travel through the tool call. Requires a Kamy API key with the `render` scope; without a key, returns dashboard setup instructions.
- upload_file
Store an image, font or PDF in the account's asset bucket and get back a `kamy://asset/<id>` reference you can drop anywhere inside a render_pdf / render_html data payload — Kamy swaps it for a fresh signed URL at render time. That reference is the point of this tool: it is how a logo, signature image or custom font gets into a template without hosting it yourself. Pass contentBase64 and this server performs the upload for you, returning { id, assetRef, bytes, uploaded: true }. Omit contentBase64 for files too big to pass through a tool call and you get the raw slot instead — { uploadUrl, uploadMethod, uploadHeaders, expiresAt, uploaded: false } — then PUT the bytes yourself within 15 minutes. Inline uploads are capped at 5 MB here; the API itself allows 100 MB via that URL. Only the listed MIME types are accepted. Requires a Kamy API key with the `uploads:write` scope; without a key, returns dashboard setup instructions.
- get_upload
Look up a stored asset by its upload id: filename, contentType, sizeBytes, status, its `kamy://asset/<id>` reference, and a freshly signed downloadUrl valid for one hour once the bytes exist. Its main use is confirming an out-of-band transfer landed — upload_file returns uploaded:false when the file was too large to pass inline and you PUT it yourself — because this read reconciles a still-'pending' row against storage and flips it to 'uploaded' the first time it sees the object. Also the way to mint a fresh download link after an earlier signed URL expired. Read-only and spends no quota. Requires a Kamy API key with the `uploads:read` scope; without a key, returns dashboard setup instructions.
- scan_for_secrets
Scan a pasted config, file, code snippet, or blob for exposed credentials and obvious security misconfigurations. Use whenever a user shares a .env, docker-compose.yml, nginx.conf, JSON/YAML config, or any text and asks "is this safe to share/commit?", "any leaked API keys/secrets?", or "what's misconfigured?". Detects cloud credentials, Stripe/GitHub/GitLab tokens, OpenAI/Anthropic/Gemini/Hugging Face/Groq/Replicate keys, private-key blocks, JWTs, DB connection strings, plus misconfigs like debug-on, 0.0.0.0 binds, disabled TLS verification, privileged containers, and weak passwords. Deterministic. It analyzes the provided text and returns findings only — it never stores, transmits, or requires any live credential.