Labsco
MCP SERVER · OFFICIAL PROJECT

Carbone

by carboneio

Merge JSON into a DOCX, XLSX or HTML template and take a PDF back, or convert a file between formats without storing a template at all.

Document Conversion, PDF & TranslationOfficial source
Summary
Two things the API will not do are written into the tool descriptions rather than discovered afterwards.

Listing templates cannot filter by tag — the vendor's own note is to discover the tags first and filter the results yourself — and deleting a template is a soft delete on a delay, where immediate removal runs through the metadata tool's expiry field instead. The other thing worth settling early is which generation tool you are in: conversion is format-to-format with no data injection, while rendering is the one that takes data tags, translations and batch output, and it accepts a template inline so a one-off render need not leave anything stored behind it.

What it is

The official Carbone client: document conversion, template-based rendering with data injection, and the template store — upload with versioning, metadata, download and deletion. It runs locally over stdio, as a hosted endpoint, in Docker, or pointed at a Carbone instance you host yourself.

What you get
  • render_document merges a template with JSON data, either by template ID or by passing the template inline as a path, URL or base64 string, and covers output conversion, multilingual rendering, currency conversion, batch generation and PDF options such as watermark, password and PDF/A.
  • convert_document converts a file between formats with no data injection, accepting a local path, a URL or a base64 string, across Office documents, PDFs, images, web pages and spreadsheets.
  • upload_template stores a reusable template with versioning, where the deployment timestamp decides which version renders under a stable template ID; accepted formats include DOCX, XLSX, PPTX, the OpenDocument family, HTML, XML, Markdown and PDF.
  • list_templates filters by template ID, version ID, category and upload origin, with search, pagination and an option to include the full version history.
  • download_template returns the original source file of a stored template — the deployed version by template ID, or a specific one by version ID.
  • update_template_metadata sets name, comment, category, tags, deployment timestamp and expiry; delete_template is a soft delete that marks the template for garbage collection and removes it after a delay.
  • Organisation reads: list_categories for the folders in use and list_tags for the labels in use.
  • get_capabilities returns the supported formats, features, usage examples and documentation links, and get_api_status returns the API version and health.
  • Output is delivered by type: text and inline images come back in the reply, and everything else — PDF, Office documents, archives — is written to a temp file whose path is returned.
Requirements

A Carbone account and its API key in CARBONE_API_KEY, free to create. Not needed in two cases: pointing CARBONE_BASE_URL at your own on-premise Carbone instance, or connecting to the hosted endpoint, where each client brings its own key as a bearer token. If you self-host the server in HTTP mode, two settings deserve a look before it goes anywhere shared: without requiring a client auth header, any request that reaches the port falls back to the server's own key and spends that Carbone account, and resolving user-supplied URLs to private addresses is off by default to block SSRF.

Setup effort

One command plus a key — npx -y carbone-mcp, then supply credentials