0
/ 100
1 month ago
github_topic

pullmd

Self-hosted URL- and file-to-Markdown service for humans and AI agents - web pages, documents, images, audio, YouTube. PWA + REST + MCP + Claude Code skill, Reddit-aware, refreshable share links.

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
🚨
Code appears obfuscated
2 files are unreadable to a human reviewer. Cannot audit what they do.
🔐
You'll be asked for 5 credentials: OAUTH_JWT_SECRET, PULLMD_LLM_API_KEY, PULLMD_PDF_OCR_API_KEY, PULLMD_STT_API_KEY, PULLMD_VISION_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
configCACHE_DB/data/cache.db
configDISABLE_PUBLIC_HISTORYno When true, hides the global recent-conversions list and archive (/api/history + /api/archive return 403, frontend hides the section). /s/:id share links keep working. Default: false.
configMARKITDOWN_URLNote: the MarkItDown sidecar is optional. Leave unset
configMARKITDOWN_YOUTUBEno Set to true to route YouTube URLs through the markitdown sidecar (returns title + description + transcript). No API key required. Default: off.
🔐 secretOAUTH_JWT_SECRET2. Set to a 32+ character random string (openssl rand -hex 32).
configPLAYWRIGHT_URLbase image). It's optional — leave unset and the
configPORT"${:-3000}:3000"
configPUBLIC_URL${PUBLIC_URL:-http://localhost:${PORT:-3000}}
configPULLMD_AUTH_MODEno disabled (default) / single-admin / multi-user. See "Authentication" below.
configPULLMD_FRONTMATTER_FIELDSno Comma-separated allowlist of frontmatter fields to emit (e.g. title,url,source,llm_tokens). Unset = all fields. Trims tokens. Unknown names are ignored with a startup warning.
🔐 secretPULLMD_LLM_API_KEY/ …_BASE_URL no Shared fallback credentials for vision + STT when the per-modality vars are unset.
configPULLMD_LLM_BASE_URLShared fallback PULLMD_LLM_API_KEY, (used when per-modality key is unset)
🔐 secretPULLMD_PDF_OCR_API_KEY1. Set to your OCR provider key (reference provider: Mistral OCR, ~$0.002/page).
configPULLMD_PDF_OCR_BASE_URL
configPULLMD_PDF_OCR_MODEL
configPULLMD_SITE_RECIPES
configPULLMD_SOURCE_HEADER
🔐 secretPULLMD_STT_API_KEY/ …_BASE_URL / …_MODEL no Audio transcription via an OpenAI-compatible /audio/transcriptions endpoint. Enabled when the key is set. _MODEL defaults to whisper-1.
configPULLMD_STT_BASE_URLSTT PULLMD_STT_API_KEY, , PULLMD_STT_MODEL (default whisper-1)
configPULLMD_STT_MODELSTT PULLMD_STT_API_KEY, PULLMD_STT_BASE_URL, (default whisper-1)
configPULLMD_UA_FEED_URLPULLMD_USER_AGENT to pin a single UA, or to point
configPULLMD_USER_AGENTno Pin a single outbound User-Agent for every web fetch. Disables rotation. Useful for CI or when one specific UA is known to work.
🔐 secretPULLMD_VISION_API_KEY/ …_BASE_URL / …_MODEL no Image captioning via an OpenAI-compatible vision endpoint. Enabled when the key is set. _MODEL defaults to gpt-4o-mini.
configPULLMD_VISION_BASE_URLVision PULLMD_VISION_API_KEY, , PULLMD_VISION_MODEL (default gpt-4o-mini)
configPULLMD_VISION_MODELVision PULLMD_VISION_API_KEY, PULLMD_VISION_BASE_URL, (default gpt-4o-mini)
configRUN_INTEGRATION
configTRAFILATURA_URLno URL of the Trafilatura sidecar's /extract endpoint. Unset → skip Trafilatura, Readability only.
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/aeternalabshq-pullmd-1wj6u5)](https://m8ven.ai/mcp/aeternalabshq-pullmd-1wj6u5)
commit: 1427550ce5e5943ea977370b18fae17e8afe1d71
code hash: 835343973e39037cca677188b038a41b6ebc740b9a22503c9a4104ffb4735428
verified: 6/11/2026, 11:01:40 AM
view raw JSON →