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.
Available components
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 13 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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
claude mcp add --transport http com-preteworks-preteworks-api 'https://api.preteworks.com/mcp'
{
"mcpServers": {
"com-preteworks-preteworks-api": {
"url": "https://api.preteworks.com/mcp"
}
}
} {
"servers": {
"com-preteworks-preteworks-api": {
"type": "http",
"url": "https://api.preteworks.com/mcp"
}
}
} [mcp_servers.com-preteworks-preteworks-api] url = "https://api.preteworks.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-preteworks-preteworks-api": {
"type": "remote",
"url": "https://api.preteworks.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-preteworks-preteworks-api --url 'https://api.preteworks.com/mcp' --transport streamable-http
mcp_servers:
com-preteworks-preteworks-api:
url: "https://api.preteworks.com/mcp" {
"McpServers": {
"com-preteworks-preteworks-api": {
"Transport": "http",
"Url": "https://api.preteworks.com/mcp"
}
}
} assistant mcp add com-preteworks-preteworks-api -t streamable-http -u 'https://api.preteworks.com/mcp'
{
"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.
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.
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 |
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 →
answer_from_document Answer a question from a document (AI) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | A base64-encoded .docx, .xlsx or .csv file. |
| string | – | A file_id from a prior tool, or a base64-encoded PDF. | |
| question | string | yes | The question to answer from the document. |
| text | string | – | Raw text to answer from directly. |
| url | string | – | A public http/https URL to read. |
No output schema declared.
No examples provided.
batch_scrape Batch: URLs to Markdown ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| urls | array | yes | 1–10 http/https URLs. |
No output schema declared.
No examples provided.
crawl_site Crawl a site to Markdown ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max pages incl. root (default 5, max 8). |
| url | string | yes | The root http/https URL. |
No output schema declared.
No examples provided.
data_to_spreadsheet Create a spreadsheet from rows ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Output format (default xlsx). |
| rows | array | yes | Array of objects (keys→columns) or array of arrays (first row = header). |
| sheet_name | string | – | Worksheet name (default 'Sheet1'). |
No output schema declared.
No examples provided.
docx_to_pdf DOCX to PDF ~51
Convert a .docx document (base64) to a PDF. Returns a file_id and a ~1h URL.
| Name | Type | Req | Description |
|---|---|---|---|
| docx | string | yes | Base64-encoded .docx file. |
No output schema declared.
No examples provided.
docx_to_text DOCX to text ~44
Extract the text of a .docx document (base64). Returns the text inline.
| Name | Type | Req | Description |
|---|---|---|---|
| docx | string | yes | Base64-encoded .docx file. |
No output schema declared.
No examples provided.
extract_data Extract structured data (AI) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | yes | Field names to extract, e.g. ['invoice total','due date']. |
| file | string | – | A base64-encoded .docx, .xlsx or .csv file (converted to text first). |
| string | – | A file_id from a prior tool result, or a base64-encoded PDF. | |
| url | string | – | A public http/https URL to read. |
No output schema declared.
No examples provided.
extract_pdf_text Extract text from a PDF ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. |
No output schema declared.
No examples provided.
file_to_markdown 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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | Base64-encoded .docx, .xlsx or .csv file. |
| format | string | – | Optional format hint; auto-detected if omitted. |
No output schema declared.
No examples provided.
fill_pdf_form Fill a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | object | yes | Map of field name to value. |
| flatten | boolean | – | Flatten the form after filling (default false). |
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. |
No output schema declared.
No examples provided.
images_to_pdf Images to PDF ~61
Combine PNG/JPEG images (base64) into a PDF, one image per page. Returns a file_id and a ~1h URL.
| Name | Type | Req | Description |
|---|---|---|---|
| images | array | yes | Base64-encoded PNG/JPEG images, one per page (max 20). |
No output schema declared.
No examples provided.
map_site Map a site's URLs ~48
Discover the same-origin URLs linked from a page — the site map, with no page content fetched. Private/internal hosts are blocked.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The http/https URL to map. |
No output schema declared.
No examples provided.
markdown_to_pdf Render Markdown to PDF ~51
Render Markdown to a clean, print-styled PDF. Returns a file_id and a ~1h URL.
| Name | Type | Req | Description |
|---|---|---|---|
| markdown | string | yes | The Markdown to render. |
| title | string | – | Document title. |
No output schema declared.
No examples provided.
merge_pdfs 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pdfs | array | yes | 2+ 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 Number PDF pages ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | e.g. '{n}' or '{n} / {total}' (default '{n}'). |
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. | |
| position | string | – | Where to place it (default bottom-center). |
| start | number | – | First page's number (default 1). |
No output schema declared.
No examples provided.
pdf_info Read PDF info ~61
Read a PDF's metadata (title, author, subject, keywords, creator, producer, dates) plus page count and page size, as JSON.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. |
No output schema declared.
No examples provided.
read_pdf_form Read a PDF form ~50
List a PDF's form fields (name, type, value, options) as JSON.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. |
No output schema declared.
No examples provided.
read_url Read a web page as Markdown ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The http/https URL to read. |
No output schema declared.
No examples provided.
render_document Generate a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | 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_… |
| template | string | yes | Document template. |
No output schema declared.
No examples provided.
render_html_to_pdf 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.
| Name | Type | Req | Description |
|---|---|---|---|
| html | string | yes | The complete HTML document to render. |
No output schema declared.
No examples provided.
rotate_pdf 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.
| Name | Type | Req | Description |
|---|---|---|---|
| degrees | number | yes | 90, 180, or 270. |
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. |
No output schema declared.
No examples provided.
scrape_page Scrape a web page (HTML + links + metadata) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| formats | array | – | Which representations to return (default: all three). |
| url | string | yes | The http/https URL to scrape. |
No output schema declared.
No examples provided.
select_pages Select PDF 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | string | yes | Pages to keep, e.g. '1,3,5-7'. |
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. |
No output schema declared.
No examples provided.
set_pdf_metadata 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.
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | – |
| creator | string | – | – |
| keywords | – | – | – |
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. | |
| subject | string | – | – |
| title | string | – | – |
No output schema declared.
No examples provided.
split_pdf Split a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. | |
| ranges | string | – | e.g. '1-3;4-6'. Omit to split every page. |
No output schema declared.
No examples provided.
summarize_document Summarize a document (AI) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | A base64-encoded .docx, .xlsx or .csv file. |
| max_words | integer | – | Approximate target length in words. |
| string | – | A file_id from a prior tool, or a base64-encoded PDF. | |
| text | string | – | Raw text to summarize directly. |
| url | string | – | A public http/https URL to read. |
No output schema declared.
No examples provided.
url_to_pdf Snapshot a web page as 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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The http/https URL to snapshot. |
No output schema declared.
No examples provided.
url_to_screenshot Screenshot a web page ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| full_page | boolean | – | Capture the full scroll height (default: viewport). |
| url | string | yes | The http/https URL to capture. |
No output schema declared.
No examples provided.
watermark_pdf 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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | A file_id from a prior tool result, or a base64-encoded PDF. | |
| text | string | yes | The watermark text. |
No output schema declared.
No examples provided.
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.