Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PreteWorks API

REMOTE · API.PRETEWORKS.COM · SCANNED SEP 26

One key for the document-to-web pipeline: scrape, AI-extract, build & edit PDFs, fill forms.

+3 this week 74 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability81
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 2770 tokens (~95/item across 29 items; 29 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management63
  • Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 92% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the PreteWorks API MCP server?

PreteWorks API is a hosted endpoint at https://api.preteworks.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.preteworks.com

# add to Claude Code
claude mcp add --transport http com-preteworks-preteworks-api 'https://api.preteworks.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-preteworks-preteworks-api": {
      "url": "https://api.preteworks.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-preteworks-preteworks-api": {
      "type": "http",
      "url": "https://api.preteworks.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-preteworks-preteworks-api]
url = "https://api.preteworks.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-preteworks-preteworks-api": {
      "type": "remote",
      "url": "https://api.preteworks.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-preteworks-preteworks-api --url 'https://api.preteworks.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-preteworks-preteworks-api:
    url: "https://api.preteworks.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-preteworks-preteworks-api": {
      "Transport": "http",
      "Url": "https://api.preteworks.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-preteworks-preteworks-api -t streamable-http -u 'https://api.preteworks.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-preteworks-preteworks-api": {
      "type": "http",
      "url": "https://api.preteworks.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 25 Sept 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 23 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 26 Sept 2026 · Probed https://api.preteworks.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=preteworks.com CN=WE1,O=Google Trust Services,C=US 2 Sept 2026 1 Dec 2026 ECDSA 256 ECDSA-SHA256 54ee69ff255555ee136c6f8a5b686c7c
SANs: preteworks.com, api.preteworks.com, *.api.preteworks.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.preteworks.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
preteworks.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.preteworks.com/mcp Verified 200
http (plaintext) http://api.preteworks.com/mcp HTTPS enforced 301 https://api.preteworks.com/mcp
MCP tools · 29 exposed · ~2,584 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
answer_from_document ~153

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.

NameTypeReqDescription
filestring–A base64-encoded .docx, .xlsx or .csv file.
pdfstring–A file_id from a prior tool, or a base64-encoded PDF.
questionstringyesThe question to answer from the document.
textstring–Raw text to answer from directly.
urlstring–A public http/https URL to read.

No output schema declared.

No examples provided.

batch_scrape ~58

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.

NameTypeReqDescription
urlsarrayyes1–10 http/https URLs.

No output schema declared.

No examples provided.

crawl_site ~77

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.

NameTypeReqDescription
limitinteger–Max pages incl. root (default 5, max 8).
urlstringyesThe root http/https URL.

No output schema declared.

No examples provided.

data_to_spreadsheet ~120

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.

NameTypeReqDescription
formatstring–Output format (default xlsx).
rowsarrayyesArray of objects (keys→columns) or array of arrays (first row = header).
sheet_namestring–Worksheet name (default 'Sheet1').

No output schema declared.

No examples provided.

docx_to_pdf ~51

Convert a .docx document (base64) to a PDF. Returns a file_id and a ~1h URL.

NameTypeReqDescription
docxstringyesBase64-encoded .docx file.

No output schema declared.

No examples provided.

docx_to_text ~44

Extract the text of a .docx document (base64). Returns the text inline.

NameTypeReqDescription
docxstringyesBase64-encoded .docx file.

No output schema declared.

No examples provided.

extract_data ~169

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.

NameTypeReqDescription
fieldsarrayyesField names to extract, e.g. ['invoice total','due date'].
filestring–A base64-encoded .docx, .xlsx or .csv file (converted to text first).
pdfstring–A file_id from a prior tool result, or a base64-encoded PDF.
urlstring–A public http/https URL to read.

No output schema declared.

No examples provided.

extract_pdf_text ~89

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.

NameTypeReqDescription
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.

No output schema declared.

No examples provided.

file_to_markdown ~116

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.

NameTypeReqDescription
filestringyesBase64-encoded .docx, .xlsx or .csv file.
formatstring–Optional format hint; auto-detected if omitted.

No output schema declared.

No examples provided.

fill_pdf_form ~88

Fill a PDF's form fields from a map of field -> value; optionally flatten. Returns a file_id and a ~1h URL.

NameTypeReqDescription
fieldsobjectyesMap of field name to value.
flattenboolean–Flatten the form after filling (default false).
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.

No output schema declared.

No examples provided.

images_to_pdf ~61

Combine PNG/JPEG images (base64) into a PDF, one image per page. Returns a file_id and a ~1h URL.

NameTypeReqDescription
imagesarrayyesBase64-encoded PNG/JPEG images, one per page (max 20).

No output schema declared.

No examples provided.

map_site ~48

Discover the same-origin URLs linked from a page — the site map, with no page content fetched. Private/internal hosts are blocked.

NameTypeReqDescription
urlstringyesThe http/https URL to map.

No output schema declared.

No examples provided.

markdown_to_pdf ~51

Render Markdown to a clean, print-styled PDF. Returns a file_id and a ~1h URL.

NameTypeReqDescription
markdownstringyesThe Markdown to render.
titlestring–Document title.

No output schema declared.

No examples provided.

merge_pdfs ~86

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.

NameTypeReqDescription
pdfsarrayyes2+ PDF sources. Each: A file_id from a prior tool result, or a base64-encoded PDF.

No output schema declared.

No examples provided.

number_pdf ~137

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.

NameTypeReqDescription
formatstring–e.g. '{n}' or '{n} / {total}' (default '{n}').
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.
positionstring–Where to place it (default bottom-center).
startnumber–First page's number (default 1).

No output schema declared.

No examples provided.

pdf_info ~61

Read a PDF's metadata (title, author, subject, keywords, creator, producer, dates) plus page count and page size, as JSON.

NameTypeReqDescription
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.

No output schema declared.

No examples provided.

read_pdf_form ~50

List a PDF's form fields (name, type, value, options) as JSON.

NameTypeReqDescription
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.

No output schema declared.

No examples provided.

read_url ~58

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.

NameTypeReqDescription
urlstringyesThe http/https URL to read.

No output schema declared.

No examples provided.

render_document ~160

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.

NameTypeReqDescription
dataobjectyesTemplate 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_…
templatestringyesDocument template.

No output schema declared.

No examples provided.

render_html_to_pdf ~65

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.

NameTypeReqDescription
htmlstringyesThe complete HTML document to render.

No output schema declared.

No examples provided.

rotate_pdf ~84

Rotate every page of a PDF by 90, 180, or 270 degrees (clockwise). Returns a file_id (for chaining) and a ~1h download URL.

NameTypeReqDescription
degreesnumberyes90, 180, or 270.
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.

No output schema declared.

No examples provided.

scrape_page ~89

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.

NameTypeReqDescription
formatsarray–Which representations to return (default: all three).
urlstringyesThe http/https URL to scrape.

No output schema declared.

No examples provided.

select_pages ~96

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.

NameTypeReqDescription
pagesstringyesPages to keep, e.g. '1,3,5-7'.
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.

No output schema declared.

No examples provided.

set_pdf_metadata ~103

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.

NameTypeReqDescription
authorstring––
creatorstring––
keywords–––
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.
subjectstring––
titlestring––

No output schema declared.

No examples provided.

split_pdf ~92

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.

NameTypeReqDescription
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.
rangesstring–e.g. '1-3;4-6'. Omit to split every page.

No output schema declared.

No examples provided.

summarize_document ~155

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.

NameTypeReqDescription
filestring–A base64-encoded .docx, .xlsx or .csv file.
max_wordsinteger–Approximate target length in words.
pdfstring–A file_id from a prior tool, or a base64-encoded PDF.
textstring–Raw text to summarize directly.
urlstring–A public http/https URL to read.

No output schema declared.

No examples provided.

url_to_pdf ~65

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.

NameTypeReqDescription
urlstringyesThe http/https URL to snapshot.

No output schema declared.

No examples provided.

url_to_screenshot ~75

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.

NameTypeReqDescription
full_pageboolean–Capture the full scroll height (default: viewport).
urlstringyesThe http/https URL to capture.

No output schema declared.

No examples provided.

watermark_pdf ~83

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.

NameTypeReqDescription
pdfstringyesA file_id from a prior tool result, or a base64-encoded PDF.
textstringyesThe watermark text.

No output schema declared.

No examples provided.

Common questions

What is the PreteWorks API MCP server?

PreteWorks API is an MCP server listed in the public MCP registry as com.preteworks/preteworks-api. One key for the document-to-web pipeline: scrape, AI-extract, build & edit PDFs, fill forms. This page covers its hosted endpoint (https://api.preteworks.com/mcp).

Is the PreteWorks API MCP server safe to use?

PreteWorks API scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PreteWorks API MCP server expose?

PreteWorks API exposes 29 tools: render_html_to_pdf, number_pdf, pdf_info, set_pdf_metadata, render_document, and 24 more. Their descriptions and schemas cost roughly 2,584 tokens of context every time the server is loaded.

Does the PreteWorks API MCP server require authentication?

No. We connected to PreteWorks API without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the PreteWorks API MCP server still maintained?

PreteWorks API is still listed as active in the MCP registry. We last reached this channel on 26 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.