Convert PDF, DOCX, XLSX and 25 other formats to clean Markdown for LLMs and RAG. No key or account.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Per-page verdict for a PDF: text, scan (a picture with no text), empty, encrypted or broken, plus the exact command to fix it (ocrmypdf --skip-text for a mixed file, --redo-ocr for a full scan, qpdf --decrypt for a password). Use it when a PDF conversion returned no text. Free — this check does not use the quota.
PDF file name, e.g. paper.pdf
The PDF, base64-encoded.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://llmfiles.com/mcp
Per-page verdict for a PDF: text, scan (a picture with no text), empty, encrypted or broken, plus the exact command to fix it (ocrmypdf --skip-text for a mixed file, --redo-ocr for a full scan, qpdf --decrypt for a password). Use it when a PDF conversion returned no text. Free — this check does not use the quota.
| Argument | Type | Description |
|---|---|---|
| filename* | string | PDF file name, e.g. paper.pdf |
| content_base64* | string | The PDF, base64-encoded. |
{
"type": "object",
"required": [
"filename",
"content_base64"
],
"properties": {
"filename": {
"type": "string",
"description": "PDF file name, e.g. paper.pdf"
},
"content_base64": {
"type": "string",
"description": "The PDF, base64-encoded."
}
},
"additionalProperties": false
}Convert one file to Markdown, locally on LlmFiles (nothing is kept). Pass the file contents base64-encoded together with its name: the extension picks the converter, so `report.docx` and `report.pdf` take different paths. HTML pages are stripped of navigation, sidebars and ¶ permalinks by default. Returns the Markdown as text; documents without a text layer (scanned PDF, binary junk) come back as an error with the reason, and no quota is charged.
| Argument | Type | Description |
|---|---|---|
| filename* | string | File name with extension, e.g. report.docx or notes.json — the extension decides which converter runs. |
| strip_nav | boolean | HTML only: true drops menus, sidebars, footers and ¶ permalinks and keeps article text; false converts the page as it is. |
| content_base64* | string | The file itself, base64-encoded (a data: URL prefix is accepted). |
{
"type": "object",
"required": [
"filename",
"content_base64"
],
"properties": {
"filename": {
"type": "string",
"description": "File name with extension, e.g. report.docx or notes.json — the extension decides which converter runs."
},
"strip_nav": {
"type": "boolean",
"default": true,
"description": "HTML only: true drops menus, sidebars, footers and ¶ permalinks and keeps article text; false converts the page as it is."
},
"content_base64": {
"type": "string",
"description": "The file itself, base64-encoded (a data: URL prefix is accepted)."
}
},
"additionalProperties": false
}Every extension LlmFiles accepts and what it becomes in Markdown. Call it when unsure whether a format is supported before asking a user for a file.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 6, 2026.