{"name":"com.preteworks/preteworks-api","slug":"preteworks-api","title":"PreteWorks API","description":"One key for the document-to-web pipeline: scrape, AI-extract, build & edit PDFs, fill forms.","url":"https://mcp.market/server/preteworks-api","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"scraping","tags":["scraping"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":2,"ok":2,"last_checked_at":"2026-09-19T21:46:12.024Z","last_ok_at":"2026-09-19T21:46:12.024Z","latency_ms":1534},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://api.preteworks.com","version":"1.0.2","remotes":[{"type":"streamable-http","url":"https://api.preteworks.com/mcp","headers":[{"description":"Bearer <API key> from https://api.preteworks.com/signup (free tier: 500 units/mo, no card).","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"answer_from_document","description":"Answer a question grounded ONLY in a source document — a web page, PDF, Office file, or raw text. Provide 'question' plus ONE source: 'url', 'pdf', 'file' (base64), or 'text'. Says so when the answer isn't in the document.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"question":{"type":"string","description":"The question to answer from the document."},"url":{"description":"A public http/https URL to read.","type":"string"},"pdf":{"description":"A file_id from a prior tool, or a base64-encoded PDF.","type":"string"},"file":{"description":"A base64-encoded .docx, .xlsx or .csv file.","type":"string"},"text":{"description":"Raw text to answer from directly.","type":"string"}},"required":["question"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"batch_scrape","description":"Fetch up to 10 public URLs and return each as clean Markdown, in one call — for research/RAG over several pages at once. Private/internal hosts are blocked.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"urls":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string"},"description":"1–10 http/https URLs."}},"required":["urls"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"crawl_site","description":"Fetch a URL plus up to 7 more same-origin pages it links to (≤8 total), each as clean Markdown. Bounded and synchronous. Private/internal hosts are blocked.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"The root http/https URL."},"limit":{"description":"Max pages incl. root (default 5, max 8).","type":"integer","minimum":1,"maximum":8}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"data_to_spreadsheet","description":"Turn rows of data into a downloadable XLSX (default) or CSV. 'rows' is an array of objects (keys → header row) or an array of arrays (first row is the header). Returns a file_id (for chaining) and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"rows":{"minItems":1,"type":"array","items":{},"description":"Array of objects (keys→columns) or array of arrays (first row = header)."},"format":{"description":"Output format (default xlsx).","type":"string","enum":["xlsx","csv"]},"sheet_name":{"description":"Worksheet name (default 'Sheet1').","type":"string"}},"required":["rows"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"docx_to_pdf","description":"Convert a .docx document (base64) to a PDF. Returns a file_id and a ~1h URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"docx":{"type":"string","description":"Base64-encoded .docx file."}},"required":["docx"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"docx_to_text","description":"Extract the text of a .docx document (base64). Returns the text inline.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"docx":{"type":"string","description":"Base64-encoded .docx file."}},"required":["docx"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"extract_data","description":"Extract specified fields from a web page, PDF, or Office file as JSON, using AI. Provide 'fields' plus ONE source: a 'url', a 'pdf' (file_id or base64), or a 'file' (base64 .docx/.xlsx/.csv). Returns a JSON object mapping each field to its value, or null when absent.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string"},"description":"Field names to extract, e.g. ['invoice total','due date']."},"url":{"description":"A public http/https URL to read.","type":"string"},"pdf":{"description":"A file_id from a prior tool result, or a base64-encoded PDF.","type":"string"},"file":{"description":"A base64-encoded .docx, .xlsx or .csv file (converted to text first).","type":"string"}},"required":["fields"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"extract_pdf_text","description":"Extract the text content of a PDF — for RAG, summarization, or search. Accepts a file_id (from a prior tool) or a base64-encoded PDF, and returns the text inline. Not OCR: a scanned/image-only PDF returns little or no text.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."}},"required":["pdf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"file_to_markdown","description":"Convert a Word (.docx), Excel (.xlsx) or CSV file (base64) into clean Markdown — for RAG, agents and pipelines. DOCX keeps headings/lists/tables; spreadsheets become Markdown tables (one per sheet). Returns Markdown inline. Optional 'format' (docx|xlsx|csv) overrides auto-detection.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"type":"string","description":"Base64-encoded .docx, .xlsx or .csv file."},"format":{"description":"Optional format hint; auto-detected if omitted.","type":"string","enum":["docx","xlsx","csv"]}},"required":["file"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"fill_pdf_form","description":"Fill a PDF's form fields from a map of field -> value; optionally flatten. Returns a file_id and a ~1h URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."},"fields":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Map of field name to value."},"flatten":{"description":"Flatten the form after filling (default false).","type":"boolean"}},"required":["pdf","fields"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"images_to_pdf","description":"Combine PNG/JPEG images (base64) into a PDF, one image per page. Returns a file_id and a ~1h URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"images":{"type":"array","items":{"type":"string"},"description":"Base64-encoded PNG/JPEG images, one per page (max 20)."}},"required":["images"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"map_site","description":"Discover the same-origin URLs linked from a page — the site map, with no page content fetched. Private/internal hosts are blocked.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"The http/https URL to map."}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"markdown_to_pdf","description":"Render Markdown to a clean, print-styled PDF. Returns a file_id and a ~1h URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"markdown":{"type":"string","description":"The Markdown to render."},"title":{"description":"Document title.","type":"string"}},"required":["markdown"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"merge_pdfs","description":"Combine 2+ PDFs into a single PDF, in the order given. Inputs are file_ids (from prior tools) or base64 PDFs. Returns a file_id (for chaining) and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdfs":{"minItems":2,"type":"array","items":{"type":"string"},"description":"2+ PDF sources. Each: A file_id from a prior tool result, or a base64-encoded PDF."}},"required":["pdfs"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"number_pdf","description":"Stamp a page number on every page. position: bottom-center (default) | bottom-left | bottom-right | top-center | top-left | top-right. format supports {n} and {total}. Returns a file_id + ~1h URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."},"position":{"description":"Where to place it (default bottom-center).","type":"string"},"start":{"description":"First page's number (default 1).","type":"number"},"format":{"description":"e.g. '{n}' or '{n} / {total}' (default '{n}').","type":"string"}},"required":["pdf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"pdf_info","description":"Read a PDF's metadata (title, author, subject, keywords, creator, producer, dates) plus page count and page size, as JSON.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."}},"required":["pdf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"read_pdf_form","description":"List a PDF's form fields (name, type, value, options) as JSON.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."}},"required":["pdf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"read_url","description":"Fetch a public http/https URL and return its main content as clean Markdown — ideal for giving an agent readable web content for research or RAG. Private/internal hosts are blocked.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"The http/https URL to read."}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"render_document","description":"Render a structured document to a PDF from a named template (invoice, receipt, report). Money/totals are computed for you. Returns a file_id (for chaining) and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"template":{"type":"string","enum":["invoice","receipt","report"],"description":"Document template."},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Template data. invoice/receipt: {seller:{name,address?,email?,logo_url?(data: URI)}, buyer?:{name,address?,email?}, number?, issued?/date?, due?, currency?, items:[{description,qty,unit_price}], tax_rate?, notes?, terms?}; receipt also takes amount_paid?, payment_method?. report: {title, subtitle?, author?, date?, sections:[{heading?,body?}]}. Money is computed server-side."}},"required":["template","data"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"render_html_to_pdf","description":"Render a full HTML document to a PDF. External subresources are blocked for safety — inline images/fonts as data: URIs. Returns a file_id (for chaining) and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"html":{"type":"string","description":"The complete HTML document to render."}},"required":["html"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"rotate_pdf","description":"Rotate every page of a PDF by 90, 180, or 270 degrees (clockwise). Returns a file_id (for chaining) and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."},"degrees":{"type":"number","description":"90, 180, or 270."}},"required":["pdf","degrees"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"scrape_page","description":"Fetch a public http/https URL and return its rendered HTML, the links on the page, and page metadata (title/description/OpenGraph/canonical/favicon) — in one render. For clean Markdown use read_url instead. Private/internal hosts are blocked.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"The http/https URL to scrape."},"formats":{"description":"Which representations to return (default: all three).","type":"array","items":{"type":"string","enum":["html","links","metadata"]}}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"select_pages","description":"Keep only the specified pages of a PDF (e.g. [1,3,5]) and drop the rest, preserving order. Returns a file_id (for chaining) and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."},"pages":{"type":"string","description":"Pages to keep, e.g. '1,3,5-7'."}},"required":["pdf","pages"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"set_pdf_metadata","description":"Set a PDF's title, author, subject, keywords (array or comma string) and/or creator. Only the fields you provide change. Returns a file_id + ~1h URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."},"title":{"type":"string"},"author":{"type":"string"},"subject":{"type":"string"},"keywords":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"creator":{"type":"string"}},"required":["pdf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"split_pdf","description":"Split a PDF into multiple PDFs — one per page by default, or by page ranges like '1-3;4-6'. Returns a file_id + URL per part.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."},"ranges":{"description":"e.g. '1-3;4-6'. Omit to split every page.","type":"string"}},"required":["pdf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"summarize_document","description":"Summarize a web page, PDF, Office file (.docx/.xlsx/.csv), or raw text using AI. Provide ONE source: 'url', 'pdf' (file_id or base64), 'file' (base64), or 'text'. Optional 'max_words'. Returns the summary.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"description":"A public http/https URL to read.","type":"string"},"pdf":{"description":"A file_id from a prior tool, or a base64-encoded PDF.","type":"string"},"file":{"description":"A base64-encoded .docx, .xlsx or .csv file.","type":"string"},"text":{"description":"Raw text to summarize directly.","type":"string"},"max_words":{"description":"Approximate target length in words.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"url_to_pdf","description":"Fetch a public http/https URL and render the live page to a PDF. Returns a file_id (chainable into the PDF tools) and a ~1h download URL. Private/internal hosts are blocked.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"The http/https URL to snapshot."}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"url_to_screenshot","description":"Fetch a public http/https URL and capture a PNG screenshot. Set full_page for the entire scroll height. Returns a file_id and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"The http/https URL to capture."},"full_page":{"description":"Capture the full scroll height (default: viewport).","type":"boolean"}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"watermark_pdf","description":"Stamp a diagonal grey text watermark (e.g. \"DRAFT\", \"CONFIDENTIAL\") across every page of a PDF. Returns a file_id (for chaining) and a ~1h download URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf":{"type":"string","description":"A file_id from a prior tool result, or a base64-encoded PDF."},"text":{"type":"string","description":"The watermark text."}},"required":["pdf","text"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-20T00:25:37.748Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:25:37.699Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 3451ms"]},"poisoning":{"score":15,"max":15,"notes":["29 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.preteworks.com/mcp","reachable":true,"authRequired":false,"latencyMs":3451,"serverInfo":{"name":"preteworks","version":"1.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect width='16' height='16' fill='%23101418'/%3E%3Ctext x='8' y='12.5' font-family='Georgia,serif' font-weight='bold' font-size='12' fill='%2300E5FF' text-anchor='middle'%3EP%3C/text%3E%3C/svg%3E","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}