Skip to main content
Glama

docmark

docmark is a local stdio front end for a hosted document-to-Markdown conversion service. Give it a public URL, the base64 contents of a file, or a small batch of either, and it asks the hosted service to do the conversion and hands the Markdown back.

docmark does not convert anything itself. Each tool call is forwarded as a JSON POST to the hosted file2markdown API, and the upstream payload is returned as-is — including the service's truncated flag when output reaches its 200,000-character cap. Conversion quality, supported-format coverage, availability, and tier limits are the hosted service's.

Documented input kinds include PDF, DOCX, PPTX, XLSX, CSV, JSON, XML, HTML, EPUB, images (with OCR), audio, and ZIP archives. Call list_supported_formats for the live list, per-tier limits, and which features need Pro.

FILE2MARKDOWN_API_KEY is optional: the free tier works keyless. When a key is set it is sent as Authorization: Bearer <key>; when it is absent no Authorization header is sent. DOCMARK_API_URL overrides the API base (default https://api.file2markdown.ai, a labelled reconstruction of the wire shape).

Batch conversions take 2–10 items per call, enforced locally before anything is sent. Each item is either {url} or {content_base64, filename}.

Install

npx @reneturcios/docmark convert_url --url https://example.com/report.pdf
docker run -i ghcr.io/cloudcorprecords/docmark

Related MCP server: MarkItDown MCP

CLI

docmark convert_url --url https://example.com/report.pdf
docmark convert_base64 --content-base64 aGVsbG8= --filename note.txt
docmark convert_base64 --file ./report.pdf
docmark convert_batch --items-json '[{"url":"https://example.com/a.pdf"},{"content_base64":"eA==","filename":"x.txt"}]'
docmark list_supported_formats
docmark usage_status
docmark --version

Exit codes: 0 success, 1 upstream or validation error, 2 usage error.

MCP server

npx -y @reneturcios/docmark mcp
{
  "mcpServers": {
    "docmark": {
      "command": "npx",
      "args": ["-y", "@reneturcios/docmark", "mcp"],
      "env": { "FILE2MARKDOWN_API_KEY": "your-key-if-you-have-one" }
    }
  }
}

The env block is optional — omit it for the keyless free tier.

Tools

Tool

Input

What it returns

convert_url

url (string, required)

The upstream conversion of the page or document at that URL.

convert_base64

content_base64 (string, required), filename (string, optional)

The upstream conversion of the supplied file contents.

convert_batch

items (array, required, 2–10 items, each {url} or {content_base64, filename})

Per-item upstream results.

list_supported_formats

—

Formats, per-tier limits, and what requires Pro, per the service.

usage_status

—

The caller's tier and remaining conversions for today.

Upstream failures — HTTP errors and unreachable hosts — are reported as tool errors with the underlying message.

Development

npm install
npm run build
npm test
npm run dev

Tests run entirely on fake-fetch fixtures; no network is used and no live call to the hosted service is made.

License

MIT — see LICENSE.

Related MCP Connectors

Related MCP Servers