Docraptor Mcp

io.github.mrfentmenPublished by GitHub account mrfentmenv1.0.0Updated Nov 3, 2026

DocRaptor: render HTML to PDF and XLSX documents through the DocRaptor API.

VerifiedSTDIODesktop onlyFiles & StorageData & Analytics

Overview

AI-generated overview

DocRaptor MCP renders HTML, URLs or table data into PDF and XLSX documents through the DocRaptor API, with test mode on by default.

What you can do
  • Create PDFs from HTML content or a public URL, and XLSX spreadsheets from HTML/CSV-like content or a URL
  • Build XLSX files or styled PDF reports from headers and rows composed locally, without authoring HTML
  • Queue documents on the async API, then poll job status and fetch the finished bytes from the download URL
  • Check the setup with a tiny free test render, and validate HTML locally before spending a render
  • Probe a source URL once to confirm the renderer can reach it
When to use it
Useful when an assistant needs to turn HTML, a web page or tabular data into a downloadable PDF or spreadsheet, or to produce formatted reports without a local rendering toolchain. Test mode makes it safe to try before committing credits.
Requirements
Runs as a local npm package over stdio on a desktop machine. It calls the DocRaptor API, so a DocRaptor account and API key are needed, plus network access to reach source URLs and the API.
Before you install
Renders with test=false spend DocRaptor credits; the production tool refuses to run without confirm=true, but other create tools accept test=false directly. Source URLs are fetched by DocRaptor's servers, so anything reachable at that URL is sent to a third party. The README's claim that nothing asks a caller to pay does not hold for this vendor-backed server.

Installation

In SourceWeft

  1. Open Docraptor Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

awesome-servers

One repo for three families of servers, each subtree keeping its own layout and tooling so it can still be built, run and published on its own.

SubtreeWhat it holdsRun one
mcp/338 TypeScript MCP servers, plus 1107 published packages in published/cd mcp/servers/<slug> && npm install && npm run build
acp/79 Python ACP agentspython3 acp/agents/<name>/agent.py
a2a/37 Python A2A servers plus the shared a2a_kitpython3 a2a/servers/<name>/server.py
watchd/a threshold watcher that runs the feeds between editor sessionspython3 watchd/watchd.py --config conditions.json --loop
site/the published site: registry with search, the public-feed atlas, watchd planshttps://mrfentmen.github.io/awesome-servers/

Most servers read public data with no key of their own; the ones wrapping a vendor API take that vendor's key. Nothing in this repo asks a caller to pay. On 2026-10-17 the licence machinery was removed for good: the per-tool src/license.ts gates are gone from the MCP servers, and the A2A and ACP trees no longer carry the hosted licence-gateway half — the skills that used it now answer with an explicit not-implemented stub. Nothing here asks a caller to pay, and nothing they run is refused with a buy link.

Nothing here is generated: each subtree's README says what its servers read, and every server has its own unit tests (mcp/servers/<slug>/tests, acp/agents/<name>/tests, a2a/servers/<name>/tests) plus a live smoke check (tools/smoke*.py, a2a/tools/smoke_all.py).

Novel and original

Nearly all of this is first-of-its-kind work, not a port of an existing catalogue. Before each server or agent was built, it was checked against the official tool lists (the MCP registries, agentclientprotocol.com's agent list and registry) and a live GitHub search for the same domain, and the research logs record what was found and why it still counted as missing — see mcp/MISSING.md, acp/MISSING.md and a2a/docs/. Highlights:

  • The MCP side holds TypeScript servers, one npm package each, and 1039 published packages under published/; mcp/MISSING.md documents the check that preceded every build: what was searched, what was skipped and why the domain still counted as uncovered.
  • On the ACP side there were zero domain agents before this repo — every agent on the official list was a coding agent. These 79 Python agents are the first non-coding ACP agents, and several use protocol surfaces no other agent uses in production (session/request_permission for dataset reads, fs/write_text_file for a briefing file, session/cancel for a conditional watch, image content blocks, a live SSE push feed), each proved-unused in the wild by search at build time. Two more firsts carry their own proof: the orchestrator is an agent whose feeds are agents — it spawns sibling repo agents as real ACP child processes and merges their answers — and the nyc pack is the first multi-agency city surface.
  • acp/MISSING.md doubles as the public-feed atlas: every keyless feed probed live, with its date, what it answered and whether it still works. The published site renders that table at https://mrfentmen.github.io/awesome-servers/atlas.html.
  • The pattern across all three subtrees is the same thesis: wrap one real, keyless public dataset, answer honestly about what the feed did and did not say, and keep the whole thing small, tested and self-contained.

Publishing

  • MCP servers publish from mcp/servers/<slug> (its own package.json, version and README).
  • ACP and A2A servers are repo-run today (Python, no packaging step).

Built on top of it

Creatures that use this corpus as their world live in the sibling repo mrfentmen/superagents (public, with its own claim-check in MISSING.md):

  • polymath — routes your question to the most fitting agents of this repo, spawns each as a real ACP child process, and merges the answers into one brief with per-row citations; a sibling that fails appears as a named row, never silence. Its registry is a data file and its ranking is deterministic word-scoring, not a model opinion.
  • sentry — one plain sentence ("watch air quality in Denver over 150") becomes a tracked watch: a permission-asked protocol write produces the conditions file this repo's watchd/ obeys unchanged, plus the activation lines. Checks it can author today: air thresholds, quake magnitudes within a radius, river gauges at flood stage.
  • fedora hat guy — the persona agent in his own repo mrfentmen/fedora-hat: says "never miss" and means it — one sentence installs the full crown of watches (air + quakes, gauge-named flood) in one permissioned write, and your other questions are forwarded to the siblings above with every row cited.
  • instink — the instinct agent in his own repo mrfentmen/instink: compiles a skill into a reflex — a matcher plus the answer it fires, with hit/miss counters and honest promotion/demotion. The skill doc stays one step away, never deleted.
  • contextink — the context agent in his own repo mrfentmen/contextink: you say "do this" and it acquires the context from the repo, git, and recent files so you don't have to explain it; asks only the minimal high-information-gain questions when acquisition fails.
  • rewind — the replay agent in his own repo mrfentmen/rewind: replays agent runs and mutates one variable to see what would have happened. Replay + mutate + diff for agent traces.
  • scopink — the scope agent in his own repo mrfentmen/scopink: checks if an action is within the scope of what was asked. Detects scope creep in agent plans.
  • curious — the curiosity agent in his own repo mrfentmen/curious: proactively seeks information it doesn't have. Scans for knowledge gaps, seeks answers, learns facts.
  • bored — the idle agent in his own repo mrfentmen/bored: uses idle time productively. Consolidates memories, explores areas, prepares for tasks.

Point the polymath at a checkout of this repo with AWESOME_SERVERS_HOME=$PWD/awesome-servers and it federates across the two repos live.

Published snapshot (published/)

published/ holds one directory per npm package, byte-for-byte what the registry serves: 1039 packages, every version matching npm latest.

  • published/INDEX.md is generated from the tree by python3 scripts/index-published.py.
  • scripts/sync-published-snapshot.py re-downloads every package from npm; run it only when every local fix has been published, because it overwrites dist/ from the tarballs.
  • One package carries a licence gate (MCP_LICENSE_KEY): @mrfentmen/vg-resource-mcp. Another 495 still ship tools that answer Not yet implemented; published/INDEX.md lists every one of them.
  • Every package links to this repo (mrfentmen/awesome-servers) as its source.

servers/ holds the older per-server source that predates the snapshot. Where the two disagree, published/ is what users actually install.

Source: README.md at commit ee04f93

Tools

11

docraptor_create_pdf

Generate ONE PDF from HTML (document_content) or a public URL (document_url). Defaults to test=true (free, watermarked); set test=false only when you mean to spend credits.

Parametersnamerequiredtesttypebase_urlinsecuresave_pathjavascriptdocument_urlhttp_timeoutdocument_content

docraptor_create_xlsx

Generate ONE XLSX spreadsheet from HTML/CSV-ish content or a URL. Test mode by default.

Parametersnamerequiredtesttypebase_urlinsecuresave_pathjavascriptdocument_urlhttp_timeoutdocument_content

docraptor_create_xlsx_from_rows

Build a table from headers + rows locally, then render it as an XLSX. No HTML authoring needed.

Parametersnamerequiredrowsrequiredtestheaderssave_path

docraptor_create_report

Render a styled PDF report from a title, an optional meta line, and a table (headers + rows). The HTML is composed locally, the PDF by DocRaptor. Test mode by default.

Parametersmetarowsrequiredtesttitlerequiredheaderssave_path

docraptor_create_async

Queue a document on the async API instead of waiting for bytes: returns a download_url and status_url. Same arguments as create_pdf/create_xlsx; pick type explicitly.

Parametersnamerequiredtesttyperequiredbase_urlinsecuresave_pathjavascriptdocument_urlhttp_timeoutdocument_content

docraptor_async_status

Read the status_url returned by an async create (JSON with the job state).

Parametersstatus_urlrequired

docraptor_async_fetch

Fetch the document bytes from a finished async job (its presigned download_url); save or inline.

Parameterssave_pathdownload_urlrequired

docraptor_create_production

A real (test=false) render that spends credits. Refuses to run unless confirm=true is passed, so a caller cannot bill you by accident.

Parametersnamerequiredtesttyperequiredconfirmrequiredbase_urlinsecuresave_pathjavascriptdocument_urlhttp_timeoutdocument_content

docraptor_test_ping

Render a tiny free test PDF - a health check that the API key and account work.

Takes no parameters.

docraptor_validate_html

Local sanity checks on HTML before spending a render: required elements, tag balance for common block tags, insecure http:// asset URLs. No API call.

Parametershtmlrequired

docraptor_check_source_url

GET a document_url once to check the renderer will be able to reach it (status + content type). Cheaper than a failed render.

Parametersurlrequired

Version history

1
  1. v1.0.0LatestOct 29, 2026

Score

80% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.