Server definition
- Hash
- sha256:52e767f2f184f2a8d5a882eb55ed6fc09979d2d7a2d414dcb960614fd69b9952
- What it is
- What a remote MCP server returned when asked what it offers: 29 tools
The blob, as servednamed by its sha256
{
"instructions": "PreteWorks API — one metered key for the whole document-to-web pipeline; no install, nothing to host. Web: turn any public URL into clean Markdown (read_url), structured JSON via AI (extract_data), a PDF (url_to_pdf), or a screenshot (url_to_screenshot). PDF: create (from HTML, Markdown, images, .docx, or invoice/receipt/report templates), edit (merge, split, select/rotate/watermark/number pages, read/set metadata), and read (extract text, read/fill forms). Tools chain: most return a `file_id` you can pass as the input to another tool (e.g. url_to_pdf → watermark_pdf → extract_pdf_text) with no re-upload. Free tier: 500 units/month, no card; then pay per call. Every fetch is SSRF-guarded (private/internal hosts blocked).",
"tools": [
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"description": "A base64-encoded .docx, .xlsx or .csv file.",
"type": "string"
},
"pdf": {
"description": "A file_id from a prior tool, or a base64-encoded PDF.",
"type": "string"
},
"question": {
"description": "The question to answer from the document.",
"type": "string"
},
"text": {
"description": "Raw text to answer from directly.",
"type": "string"
},
"url": {
"description": "A public http/https URL to read.",
"type": "string"
}
},
"required": [
"question"
],
"type": "object"
},
"name": "answer_from_document",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"urls": {
"description": "1–10 http/https URLs.",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
}
},
"required": [
"urls"
],
"type": "object"
},
"name": "batch_scrape",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"description": "Max pages incl. root (default 5, max 8).",
"maximum": 8,
"minimum": 1,
"type": "integer"
},
"url": {
"description": "The root http/https URL.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "crawl_site",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"description": "Output format (default xlsx).",
"enum": [
"xlsx",
"csv"
],
"type": "string"
},
"rows": {
"description": "Array of objects (keys→columns) or array of arrays (first row = header).",
"items": {},
"minItems": 1,
"type": "array"
},
"sheet_name": {
"description": "Worksheet name (default 'Sheet1').",
"type": "string"
}
},
"required": [
"rows"
],
"type": "object"
},
"name": "data_to_spreadsheet",
"outputSchema": null
},
{
"description": "Convert a .docx document (base64) to a PDF. Returns a file_id and a ~1h URL.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"docx": {
"description": "Base64-encoded .docx file.",
"type": "string"
}
},
"required": [
"docx"
],
"type": "object"
},
"name": "docx_to_pdf",
"outputSchema": null
},
{
"description": "Extract the text of a .docx document (base64). Returns the text inline.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"docx": {
"description": "Base64-encoded .docx file.",
"type": "string"
}
},
"required": [
"docx"
],
"type": "object"
},
"name": "docx_to_text",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"fields": {
"description": "Field names to extract, e.g. ['invoice total','due date'].",
"items": {
"type": "string"
},
"type": "array"
},
"file": {
"description": "A base64-encoded .docx, .xlsx or .csv file (converted to text first).",
"type": "string"
},
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
},
"url": {
"description": "A public http/https URL to read.",
"type": "string"
}
},
"required": [
"fields"
],
"type": "object"
},
"name": "extract_data",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
}
},
"required": [
"pdf"
],
"type": "object"
},
"name": "extract_pdf_text",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"description": "Base64-encoded .docx, .xlsx or .csv file.",
"type": "string"
},
"format": {
"description": "Optional format hint; auto-detected if omitted.",
"enum": [
"docx",
"xlsx",
"csv"
],
"type": "string"
}
},
"required": [
"file"
],
"type": "object"
},
"name": "file_to_markdown",
"outputSchema": null
},
{
"description": "Fill a PDF's form fields from a map of field -> value; optionally flatten. Returns a file_id and a ~1h URL.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"fields": {
"additionalProperties": {},
"description": "Map of field name to value.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"flatten": {
"description": "Flatten the form after filling (default false).",
"type": "boolean"
},
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
}
},
"required": [
"pdf",
"fields"
],
"type": "object"
},
"name": "fill_pdf_form",
"outputSchema": null
},
{
"description": "Combine PNG/JPEG images (base64) into a PDF, one image per page. Returns a file_id and a ~1h URL.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"images": {
"description": "Base64-encoded PNG/JPEG images, one per page (max 20).",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"images"
],
"type": "object"
},
"name": "images_to_pdf",
"outputSchema": null
},
{
"description": "Discover the same-origin URLs linked from a page — the site map, with no page content fetched. Private/internal hosts are blocked.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"description": "The http/https URL to map.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "map_site",
"outputSchema": null
},
{
"description": "Render Markdown to a clean, print-styled PDF. Returns a file_id and a ~1h URL.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"markdown": {
"description": "The Markdown to render.",
"type": "string"
},
"title": {
"description": "Document title.",
"type": "string"
}
},
"required": [
"markdown"
],
"type": "object"
},
"name": "markdown_to_pdf",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pdfs": {
"description": "2+ PDF sources. Each: A file_id from a prior tool result, or a base64-encoded PDF.",
"items": {
"type": "string"
},
"minItems": 2,
"type": "array"
}
},
"required": [
"pdfs"
],
"type": "object"
},
"name": "merge_pdfs",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"description": "e.g. '{n}' or '{n} / {total}' (default '{n}').",
"type": "string"
},
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
},
"position": {
"description": "Where to place it (default bottom-center).",
"type": "string"
},
"start": {
"description": "First page's number (default 1).",
"type": "number"
}
},
"required": [
"pdf"
],
"type": "object"
},
"name": "number_pdf",
"outputSchema": null
},
{
"description": "Read a PDF's metadata (title, author, subject, keywords, creator, producer, dates) plus page count and page size, as JSON.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
}
},
"required": [
"pdf"
],
"type": "object"
},
"name": "pdf_info",
"outputSchema": null
},
{
"description": "List a PDF's form fields (name, type, value, options) as JSON.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
}
},
"required": [
"pdf"
],
"type": "object"
},
"name": "read_pdf_form",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"description": "The http/https URL to read.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "read_url",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"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.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"template": {
"description": "Document template.",
"enum": [
"invoice",
"receipt",
"report"
],
"type": "string"
}
},
"required": [
"template",
"data"
],
"type": "object"
},
"name": "render_document",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"html": {
"description": "The complete HTML document to render.",
"type": "string"
}
},
"required": [
"html"
],
"type": "object"
},
"name": "render_html_to_pdf",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"degrees": {
"description": "90, 180, or 270.",
"type": "number"
},
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
}
},
"required": [
"pdf",
"degrees"
],
"type": "object"
},
"name": "rotate_pdf",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"formats": {
"description": "Which representations to return (default: all three).",
"items": {
"enum": [
"html",
"links",
"metadata"
],
"type": "string"
},
"type": "array"
},
"url": {
"description": "The http/https URL to scrape.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "scrape_page",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pages": {
"description": "Pages to keep, e.g. '1,3,5-7'.",
"type": "string"
},
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
}
},
"required": [
"pdf",
"pages"
],
"type": "object"
},
"name": "select_pages",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"author": {
"type": "string"
},
"creator": {
"type": "string"
},
"keywords": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
},
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
},
"subject": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"pdf"
],
"type": "object"
},
"name": "set_pdf_metadata",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
},
"ranges": {
"description": "e.g. '1-3;4-6'. Omit to split every page.",
"type": "string"
}
},
"required": [
"pdf"
],
"type": "object"
},
"name": "split_pdf",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"description": "A base64-encoded .docx, .xlsx or .csv file.",
"type": "string"
},
"max_words": {
"description": "Approximate target length in words.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"pdf": {
"description": "A file_id from a prior tool, or a base64-encoded PDF.",
"type": "string"
},
"text": {
"description": "Raw text to summarize directly.",
"type": "string"
},
"url": {
"description": "A public http/https URL to read.",
"type": "string"
}
},
"type": "object"
},
"name": "summarize_document",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"description": "The http/https URL to snapshot.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "url_to_pdf",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"full_page": {
"description": "Capture the full scroll height (default: viewport).",
"type": "boolean"
},
"url": {
"description": "The http/https URL to capture.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "url_to_screenshot",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pdf": {
"description": "A file_id from a prior tool result, or a base64-encoded PDF.",
"type": "string"
},
"text": {
"description": "The watermark text.",
"type": "string"
}
},
"required": [
"pdf",
"text"
],
"type": "object"
},
"name": "watermark_pdf",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:52e767f2f184f2a8d5a882eb55ed6fc09979d2d7a2d414dcb960614fd69b9952 | sha256sum