Fullbleed PDF Engine
Fullbleed MCP lets an agent discover the installed Fullbleed engine and create, preview, inspect, validate, and compile deterministic print-ready PDF documents from static HTML/CSS or variable data.
Read runtime capabilities and the canonical agent contract before choosing features.
Scaffold new projects or document starters such as invoices, statements, accessible documents, and reference templates.
Render static HTML/CSS/SVG to PDF, optionally with page previews, fonts, metadata, PDF profiles, output intents, and validation signals.
Verify document source with explicit failure checks for overflow, missing glyphs, and font substitution.
Inspect existing PDFs for version, page count, profile claims, warnings, and template-composition compatibility.
Manage built-in or remote font, CSS, and icon asset packages: list, inspect, install, verify, and lock.
Compile reusable templates and render them as static copies or with columnar fixed/reflow bindings.
Compile and render variable-data (VDP) jobs into a single PDF with counts, hash, and metrics.
Work within a confined workspace root; paths for user-supplied documents are restricted.
Fullbleed MCP
First-party, local MCP tools for Fullbleed PDF Engine. The server lets agents discover the installed engine and create, preview, inspect, verify, and compile deterministic print documents through a small structured tool surface.
Install and run
python -m pip install fullbleed-mcp
fullbleed-mcp --root .Fullbleed MCP 0.1.1 requires Fullbleed 2.5.1 or newer. This includes the tool schema correction needed by strict MCP clients. To update an existing install, upgrade both the engine and the adapter:
python -m pip install --upgrade fullbleed fullbleed-mcpNaming both packages matters: upgrading only fullbleed-mcp can leave an older
compatible engine installed.
The initial transport is newline-delimited JSON-RPC over stdio. User-supplied document paths are confined to --root. The server does not require credentials, network access, a browser, system fonts, or a system PDF runtime.
The adapter delegates rendering and discovery to the installed fullbleed distribution. It does not maintain a second renderer or capability database. Start with fullbleed_capabilities or fullbleed_agent_contract and trust their runtime-reported values.
Use this server for structured reports, invoices, statements, letters, forms, certificates, accessible/print-ready documents, template overlays, and VDP. Use a browser tool when the requested artifact is a screenshot or interactive state of an arbitrary live website.
Related MCP server: inclusio-mcp
Direct core entrypoint
Fullbleed also exposes the same dependency-free adapter directly. Use version 2.5.1 or newer for compatibility with strict MCP clients:
fullbleed mcp --root .The separate fullbleed-mcp distribution exists for package and MCP Registry discovery and keeps optional agent-integration installation separate from pip install fullbleed.
Run with Docker
The optional repository-root Dockerfile packages the stdio server for container
users and MCP directories. It builds the adapter from this repository and installs
the released engine pinned in container-requirements.txt from hash-checked Linux wheels. It does not add
Docker or other dependencies to the Python package.
From the repository root:
docker build -t fullbleed-mcp:local .
docker run --rm -i --network none --mount "type=bind,source=/absolute/path/to/documents,target=/workspace" fullbleed-mcp:localReplace the source path with an existing directory. The image runs as UID/GID
10001:10001, and document paths are relative to /workspace. On Linux, add
--user "$(id -u):$(id -g)" before the image name to write a directory owned by
your current user. Keep -i and omit -t when connecting an MCP client over stdio.
The MCP container workflow builds the image and exercises initialization, tool
discovery, previews, inspection, verification, and three-record VDP output. Its
smoke run disables networking, makes the image read-only, and checks that a tool
cannot read outside its document workspace. It retains the generated PDFs and
preview, independently checks their text and page counts, and rejects a blank
preview. A second check uses the official
TypeScript MCP SDK to validate tool discovery and structured results against the
running container. To run these checks locally:
python -m pip install -r requirements-test.txt
python tools/smoke_mcp_stdio.py --container-image fullbleed-mcp:local --output-dir output/mcp-smoke --json
python tools/verify_mcp_artifacts.py output/mcp-smoke
npm ci --ignore-scripts --no-audit --no-fund --prefix tools/mcp-client-smoke
node tools/mcp-client-smoke/smoke.mjs --container-image fullbleed-mcp:localChoose a new --output-dir for each run. The smoke check refuses to overwrite
an existing directory. Omitting the option uses a temporary workspace.
container-requirements.txt pins the released engine used by this distribution.
Update its version and wheel hashes when intentionally moving the container to a
new engine release. glama.json identifies the maintainer for the Glama directory;
it does not imply that a directory has approved or scored the server.
Registry metadata
server.json is generated from this package's [tool.fullbleed-mcp.registry] metadata:
python tools/generate_mcp_server_json.py --check --jsonPublish the PyPI distribution before submitting server.json; the official registry verifies the matching mcp-name marker above from the PyPI long description. Registry publication is prepared in .github/workflows/publish-mcp.yml and uses the io.github.fullbleed-engine/fullbleed-mcp namespace.
Available Tools
11 toolsfullbleed_agent_contractFullbleed agent contractARead-onlyIdempotent
Read the canonical installed contract: version, commands, schemas, capabilities, profiles, examples, limitations, and recommendation boundary.
Inputs: no named parameters. Returns: object
fullbleed_assetsManage Fullbleed assetsADestructiveIdempotent
Manage font, CSS, and icon packages with list, info, install, verify, or lock. Returns package details or operation results. Install writes workspace assets and may download supported remote packages. Use fullbleed_inspect for PDFs and fullbleed_verify for document validation.
Inputs: action (required), add, strict, package, +3 more. Returns: object
fullbleed_capabilitiesFullbleed capabilitiesARead-onlyIdempotent
Read the installed runtime's compact feature map and PDF profile requirements before choosing features. Use fullbleed_agent_contract for command schemas, workflow examples, and detailed limitations.
Inputs: no named parameters. Returns: object
fullbleed_compileCompile a document familyADestructive
Compile inline HTML/CSS and return compile_id plus template statistics for repeated calls to fullbleed_render_compiled. Handles belong to this server process; restart or eviction after 64 retained handles requires recompiling. Use fullbleed_compile_vdp for a single variable-data job without retaining a handle.
Inputs: html (required), css, font_paths, pdf_vt_job, +8 more. Returns: object
fullbleed_compile_vdpCompile and render a VDP jobADestructiveIdempotent
Compile inline HTML/CSS and render columnar variable records into one PDF, returning its path, counts, SHA-256, and compile/render metrics. Releases the temporary handle after rendering. Use fullbleed_compile plus fullbleed_render_compiled when reusing a template across calls.
Inputs: html (required), mode (required), bindings (required), output_path (required), +12 more. Returns: object
fullbleed_create_projectCreate a Fullbleed projectA
Create an agent-ready project or document scaffold in an absent or empty workspace directory; returns generated artifacts and next actions. Use this when starting a project, then render its source with fullbleed_render or fullbleed_render_preview.
Inputs: template, target_path. Returns: object
fullbleed_inspectInspect a PDFARead-onlyIdempotent
Read an existing PDF's version, page count, profile claims, warnings, and template-composition compatibility without changing it. Use fullbleed_verify to render and check HTML/CSS source, or fullbleed_assets with action='verify' to check asset package integrity.
Inputs: path (required). Returns: object
fullbleed_renderRender a print documentADestructiveIdempotent
Render static HTML/CSS to a PDF and return output paths and render diagnostics. Supply exactly one of html or html_path. Use fullbleed_render_preview for visual iteration, fullbleed_verify for delivery checks, or fullbleed_compile_vdp for variable records. Does not capture live websites.
Inputs: output_path (required), css, html, profile, +15 more. Returns: object
fullbleed_render_compiledRender a compiled documentADestructiveIdempotent
Write a PDF from compile_id returned by fullbleed_compile in this server session. Choose static copies, fixed geometry, or content reflow; returns the output path, page/record counts, and SHA-256. Use fullbleed_compile_vdp to compile and render a variable-data job in one call.
Inputs: mode (required), compile_id (required), output_path (required), copies, +2 more. Returns: object
fullbleed_render_previewRender a PDF and page previewsADestructiveIdempotent
Render a PDF plus PNG page previews for visual inspection after document changes; returns their artifact paths. Supply exactly one of html or html_path. Use fullbleed_render for PDF-only output and fullbleed_verify for explicit failure checks.
Inputs: output_dir (required), css, html, pdf_name, +14 more. Returns: object
fullbleed_verifyVerify a print documentADestructiveIdempotent
Render HTML/CSS through Fullbleed's validation path and return structured diagnostics and failures before delivery. Supply exactly one of html or html_path and select fail_on checks explicitly. Use fullbleed_inspect for an existing PDF. Internal checks do not establish independent standards conformance.
Inputs: css, html, fail_on, css_paths, +13 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Most tools have distinct purposes, but several rendering-related tools (fullbleed_render, fullbleed_render_preview, fullbleed_verify) all accept HTML/CSS and produce PDFs or diagnostics, requiring careful reading to choose correctly. Similarly, fullbleed_capabilities and fullbleed_agent_contract both provide reference metadata, though one is compact and the other detailed. Overall, descriptions mitigate confusion but some overlap remains.
All tools use the fullbleed_ prefix and snake_case, with a mostly consistent verb_noun or noun phrase pattern. Minor deviations exist: some names are noun-only (fullbleed_capabilities, fullbleed_assets, fullbleed_agent_contract) while others are verb-led. Still predictable and readable.
11 tools is well within the ideal range for a PDF engine, covering scaffolding, rendering, compilation, verification, asset management, and introspection without obvious redundancy. Each tool has a clear role, and the count feels appropriately scoped.
Core PDF rendering workflows are well-covered: project creation, static and preview rendering, verification, compiled rendering, variable data, and asset management. Minor gaps include asset removal/uninstall operations and broader PDF manipulation (e.g., merge/split/extract), but these may be outside the stated scope. Agents can complete primary tasks without dead ends.
Maintenance
Related MCP Connectors
HTML and CSS to PDF MCP server with page headers, footers and page numbers. No headless browser.
Design, publish and render PDF templates with Typst. Full template lifecycle over MCP.
Generate PDF, Word (.docx) and PowerPoint (.pptx) documents from Markdown over MCP.
HTML/URL to PDF rendering API with a remote MCP server. Send HTML or a URL, get a print-ready PDF back.
Related MCP Servers
- AlicenseAqualityBmaintenanceRust-powered PDF toolkit over MCP: create, read, and analyze PDFs; extract text and entities for RAG; convert to Markdown; split/merge/rotate/reorder pages; manage form fields and annotations; encrypt documents. Runs locally via uvx oxidize-mcp.121,289 PyPI6MIT
- AlicenseAqualityBmaintenanceAccessibility-first LaTeX publishing engine with an embedded MCP server. Tools to list registered documents, render template-driven documents, and audit built PDFs for PDF/UA-2 / WTPDF / PDF/A-4f conformance with veraPDF. MIT-licensed.4Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA local MCP server that drives PDFium and pypdf to perform comprehensive PDF operations including inspection, assembly, page editing, watermarking, rendering, extraction, form filling, encryption, compression, attachments, bookmarks, and metadata management.MIT
- AlicenseAqualityDmaintenanceWrite and read PDF documents via MCP: generate PDFs from HTML, URLs, or templates, and extract text from PDFs with OCR support.255 npmMIT