Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Carbone MCP

REMOTE · MCP.CARBONE.IO · 2 COMPONENTS · SCANNED SEP 20

Generate PDF/DOCX/XLSX/PPTX from templates+JSON. Convert Office/HTML/MD to PDF. Universal templating

0 this week 78 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7407 tokens (~493/item across 15 items; 11 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (45% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Carbone MCP server?

Carbone MCP is a hosted endpoint at https://mcp.carbone.io/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.carbone.io

# add to Claude Code
claude mcp add --transport http io-carbone-carbone-mcp 'https://mcp.carbone.io/'
// .cursor/mcp.json
{
  "mcpServers": {
    "io-carbone-carbone-mcp": {
      "url": "https://mcp.carbone.io/"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "io-carbone-carbone-mcp": {
      "type": "http",
      "url": "https://mcp.carbone.io/"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.io-carbone-carbone-mcp]
url = "https://mcp.carbone.io/"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-carbone-carbone-mcp": {
      "type": "remote",
      "url": "https://mcp.carbone.io/",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-carbone-carbone-mcp --url 'https://mcp.carbone.io/' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-carbone-carbone-mcp:
    url: "https://mcp.carbone.io/"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "io-carbone-carbone-mcp": {
      "Transport": "http",
      "Url": "https://mcp.carbone.io/"
    }
  }
}
# add to Vellum
assistant mcp add io-carbone-carbone-mcp -t streamable-http -u 'https://mcp.carbone.io/'
// mcp.json
{
  "mcpServers": {
    "io-carbone-carbone-mcp": {
      "type": "http",
      "url": "https://mcp.carbone.io/"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 +1
    • Stability: 0.97 → pass security
  • 23 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Aug 26 0
    • Tool “download_template” rewrote its description, which is the text the model reads security
    • Tool “convert_document” rewrote its description, which is the text the model reads security
    • Schema quality: 401 → 493 functional
    • Server version: 1.5.0 → 1.6.0 functional
    • “download_template” added an optional parameter “sample” cosmetic
    • “convert_document” added an optional parameter “hardRefresh” cosmetic
    • “convert_document” added an optional parameter “reportName” cosmetic
    • “update_template_metadata” added an optional parameter “id” cosmetic
    • “render_document” added an optional parameter “keepTags” cosmetic
    • “render_document” reworded the description of “currencyRates” cosmetic
    • “render_document” reworded the description of “converter” cosmetic
    • “render_document” reworded the description of “complement” cosmetic
    • “render_document” reworded the description of “batchSplitBy” cosmetic
    • “render_document” reworded the description of “batchReportName” cosmetic
    • “render_document” reworded the description of “batchOutput” cosmetic
    • “list_templates” reworded the description of “origin” cosmetic
    • “list_templates” reworded the description of “limit” cosmetic
    • “download_template” reworded the description of “outputPath” cosmetic
    • “convert_document” reworded the description of “file” cosmetic
    • “upload_template” reworded the description of “template” cosmetic
    • “render_document” reworded the description of “translations” cosmetic
    • “render_document” reworded the description of “template” cosmetic
    • “render_document” reworded the description of “outputPath” cosmetic
    • “render_document” reworded the description of “enum” cosmetic
    • “render_document” reworded the description of “data” cosmetic
    • “convert_document” reworded the description of “convertTo” cosmetic
    • “convert_document” reworded the description of “converter” cosmetic
    • “convert_document” reworded the description of “outputPath” cosmetic
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 0

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://mcp.carbone.io

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.carbone.io CN=YR2,O=Let's Encrypt,C=US 6 Aug 2026 4 Nov 2026 RSA 2048 SHA256-RSA 514e3c298c433cfa8ad1a5fb8dcc18b99a8
SANs: mcp.carbone.io
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.carbone.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
carbone.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
x-content-type-options nosniff

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.carbone.io Verified 200
http (plaintext) http://mcp.carbone.io HTTPS enforced 301 https://mcp.carbone.io/
MCP tools · 11 exposed · ~6,902 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
convert_document ~1,576

Convert any document to another format without storing a template. Supports 100+ input/output format combinations: Office documents, PDFs, images, web pages, spreadsheets, and more. The source file can be a local path, a URL, or a base64 string. Carbone tags are PRESERVED, not resolved: converting a template keeps every {d.field} intact, so this is also how you proof a template in another format (DOCX template → PDF, or DOCX → ODT while it stays a template). Use render_document instead when you need data injection ({d.field} tags resolved), translations, or batch generation. Common conversions: DOCX → PDF (file: "report.docx", convertTo: "pdf"; add converter: "I" for the fastest DOCX→PDF path), XLSX → PDF (file: "data.xlsx", convertTo: "pdf"), PPTX → PDF (file: "slides.pptx", convertTo: "pdf", converter: "O" for best fidelity), HTML → PDF (file: "page.html", convertTo: "pdf", converter: "C" for full CSS/JS rendering), DOCX → HTML (file: "doc.docx", convertTo: "html"), XLSX → CSV (file: "sheet.xlsx", convertTo: "csv"), PDF → PNG (file: "doc.pdf", convertTo: "png"), PPTX → PNG (first slide as image), MD → PDF (file: "readme.md", convertTo: "pdf").

NameTypeReqDescription
asAttachmentbooleanIf true, return the document as a downloadable file attachment (a base64 EmbeddedResource), for any format. Default delivery: text and png/jpg/gif/webp are returned inline; other binary outputs (PDF,…
convertToyesTarget output format. Documents : "pdf", "docx", "xlsx", "pptx", "odt", "ods", "odp", "odg", "rtf", "epub", plus the legacy "doc", "xls", "ppt" (output only — Carbone writes them but cannot read them…
converterstringConverter engine. Only relevant when convertTo is "pdf" (or an image format rasterised from a document). "L" — LibreOffice (default): best all-round engine for DOCX, XLSX, PPTX, ODT, ODS, ODP. "O" —…
egressAuthorizationstringValue for the Authorization header Carbone adds to its OUTBOUND (egress) requests during conversion — e.g. when a Chromium HTML→PDF conversion fetches a protected external image or stylesheet. For ex…
filestringyesThe document to convert. Two input forms are accepted: (1) HTTPS URL — the file is downloaded automatically, e.g. "https://example.com/file.pptx". (2) Base64-encoded string — the raw file content enc…
hardRefreshbooleanForces Carbone to run the converter even when the output format already matches the input format. Only useful for PDF: converting PDF → PDF to APPLY formatOptions (watermark, password, PDF/A, page ra…
outputPathstringNOT AVAILABLE on this server, which is reached over HTTP: the converted document would be written to the server's disk instead of yours, so passing outputPath is rejected. Use asAttachment to receive…
reportNamestringFilename (WITHOUT extension) for the converted document, returned in the Content-Disposition header. Carbone appends the extension matching convertTo, so do not include one — "report.pdf" yields "rep…
returnLinkbooleanIf true, generate the document and return a public download URL instead of the file contents. The link is SHORT-LIVED and ONE-TIME — Carbone deletes the file after the first download — so it is meant…

No output schema declared.

No examples provided.

delete_template ~152

Delete a stored Carbone template. This is a soft delete: the template is marked for garbage collection and removed after a delay (default 24 hours). You can delete by Template ID (removes all versions) or by Version ID (removes only that specific version). For immediate or scheduled deletion, use update_template_metadata with expireAt = 42000000000 (NOW) or a future Unix timestamp.

NameTypeReqDescription
templateIdstringyesTemplate ID (64-bit) or Version ID (SHA-256) to delete. Template ID — deletes the template record and all its versions. Version ID — deletes only that specific version, leaving other versions intact.…

No output schema declared.

No examples provided.

download_template ~359

Download the original source file of a stored Carbone template (e.g. the DOCX, XLSX, PPTX, or HTML file that was uploaded). Use this to inspect, edit, or back up a template. Pass a Template ID to download the currently deployed version, or a Version ID to download a specific version. Set sample:true to fetch the JSON sample dataset stored with the template instead of the template file itself.

NameTypeReqDescription
asAttachmentbooleanIf true, return the template as a downloadable file attachment (base64 resource) instead of inline text/image. Useful in HTTP mode where outputPath is unavailable. Default: false. Ignored when output…
outputPathstringNOT AVAILABLE on this server, which is reached over HTTP: the template file would be written to the server's disk instead of yours, so passing outputPath is rejected. Use asAttachment to receive the…
samplebooleanIf true, download the JSON SAMPLE DATASET saved with the template (the "sample" array passed to upload_template) instead of the template file. Returns JSON of the form [{ "data": {...}, "complement":…
templateIdstringyesTemplate ID (64-bit) or Version ID (SHA-256) to download. Template ID — downloads the currently deployed version of the template. Version ID — downloads that exact version regardless of deployment st…

No output schema declared.

No examples provided.

get_api_status ~40

Check Carbone API health and version. Returns the current API version and a status message. Useful for verifying connectivity and confirming which Carbone version is active.

Input schema present but exposes no named parameters.

NameTypeReqDescription
messagestringyesStatus message returned by the API.
versionstringyesThe running Carbone API version.

No examples provided.

get_capabilities ~46

Returns a summary of all Carbone capabilities: supported formats, features, tool usage examples, and links to full documentation. Call this first if you are unsure what Carbone can do.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_categories ~57

List all template categories currently in use in your Carbone account. Categories act like folders for organising templates (e.g. "invoices", "legal", "hr"). Use the returned names as the category filter in list_templates or upload_template.

Input schema present but exposes no named parameters.

NameTypeReqDescription
categoriesarrayyesTemplate category names in use.

No examples provided.

list_tags ~76

List all tags currently used across templates in your Carbone account. Tags are free-form labels attached to templates (e.g. "sales", "billing", "v2"). Note: the Carbone API does not support filtering list_templates by tag — use this tool to discover available tags, then call list_templates and filter the results manually.

Input schema present but exposes no named parameters.

NameTypeReqDescription
tagsarrayyesTemplate tag names in use.

No examples provided.

list_templates ~335

List stored Carbone templates with filtering, search, and pagination. Filter by Template ID, Version ID, category, or upload origin. Use includeVersions to see the full version history of each template. Supports cursor-based pagination for large collections. Note: filtering by tags is not supported by the Carbone API — use list_tags to discover tags, then filter results manually. Note: templates uploaded with versioning disabled appear with id = null and are identified only by their versionId — pass that versionId where a Template ID is expected (e.g. delete_template, download_template).

NameTypeReqDescription
categorystringFilter by category (e.g. "invoices", "legal").
cursorstringPagination cursor from the previous response nextCursor field. Use to fetch the next page.
idstringFilter by Template ID (64-bit format). Cannot be a Version ID.
includeVersionsbooleanIf true, returns all versions for each template. Default: false (only deployed version).
limitintegerMaximum number of results to return, between 1 and 100. Default: 100. Use cursor to page beyond that.
originintegerFilter by upload origin. 0 = API, 1 = Carbone Studio, 2 = Salesforce, 3 = Odoo, 4 = HubSpot. Templates created through this MCP are origin 0.
searchstringFuzzy search in template names, or exact match on Template ID / Version ID.
versionIdstringFilter by Version ID (SHA-256 format).
NameTypeReqDescription
hasMorebooleanyesWhether more results are available via the cursor.
nextCursorstringCursor to pass to the next list_templates call.
templatesarrayyesThe matching templates (all fields).

No examples provided.

render_document ~3,384

Generate a document by merging a Carbone template with JSON data. Two modes: (1) pass templateId to use a previously uploaded template; (2) pass template (file path, URL, or base64) to upload and render in a single request without storing a template. Supports output format conversion, multilingual rendering, currency conversion, batch generation, and advanced PDF options (watermark, password, PDF/A). Async mode: pass webhookUrl to render asynchronously — Carbone will POST the renderId to your URL when the document is ready. Async mode is required when using batch generation (batchSplitBy).

NameTypeReqDescription
asAttachmentbooleanIf true, return the document as a downloadable file attachment (a base64 EmbeddedResource), for any format. Default delivery: text and png/jpg/gif/webp are returned inline; other binary outputs (PDF,…
batchOutputstringHow the batch result is packaged. Defaults to "zip". "zip" — every generated document is bundled into a single ZIP archive (use batchReportName to name each entry). "pdf" — all documents are CONCATEN…
batchReportNamestringFilename pattern for each individual document inside the batch ZIP. Supports Carbone tags. Tags are resolved against the item's data (relative path) or the full dataset (absolute path). Examples: "in…
batchSplitBystringJSON path to the array in your data that drives batch generation. One document is generated per element of the array. Two forms: "d" when data itself IS the array (one report per top-level element),…
complementExtra data object accessible in templates with {c.field} tags (as opposed to {d.field} for main data). Useful for static or shared values that should not be mixed into the main dataset: company info,…
convertToOutput format. If omitted, the output matches the template format. Documents : "pdf", "docx", "xlsx", "pptx", "odt", "ods", "odp", "odg", "rtf", "epub". Web/text : "html", "xhtml", "txt", "csv", "md…
converterstringConverter engine. Only relevant when convertTo is "pdf" (or an image rasterised from a document). "L" — LibreOffice (default): best all-round engine for DOCX, XLSX, PPTX, ODT, ODS, ODP. "O" — OnlyOff…
currencyRatesExchange rate table used by :formatC for currency conversion. Keys are ISO 4217 currency codes; values are rates relative to a common base. The base currency should have rate 1. Example: { "EUR": 1,…
currencySourcestringISO 4217 currency code of the monetary amounts in the JSON data. Used by the :formatC formatter as the conversion source. Must be set together with currencyTarget and currencyRates. Example: "EUR" if…
currencyTargetstringISO 4217 currency code of the output document. The :formatC formatter converts amounts from currencySource to this currency using currencyRates. Must be set together with currencySource and currencyR…
dataJSON data merged into the template — an object, or a top-level array (accessed with {d[i].field}). Access fields with {d.fieldName} tags. Nested objects: {d.customer.name}. Array loops: {d.items[i].d…
egressAuthorizationstringValue for the Authorization header Carbone adds to its OUTBOUND (egress) requests while rendering — fetching external images ({d.imageUrl}), external PDFs (:appendFile / :attachFile), and calling web…
enumEnumeration map used with the :convEnum(TYPE) formatter to translate code values into human-readable labels. Define one key per enum type; each value is an object mapping code → label. Example: { "ST…
hardRefreshbooleanIf true, Carbone recomputes pagination and refreshes the table of contents after rendering. Requires convertTo to be defined. Use this for DOCX/ODT templates that contain a TOC field or cross-referen…
keepTagsbooleanIf true, SKIP templating entirely and leave every Carbone tag in the document exactly as written — {d.customer} comes out as the literal text "{d.customer}", formatters included. Use it to proof a st…
langstringLocale of the generated document. Affects three things: (1) {t(key)} translation tags — selects the matching translation from the translations map. (2) :formatN number formatter — applies locale-spec…
outputPathstringNOT AVAILABLE on this server, which is reached over HTTP: the generated document would be written to the server's disk instead of yours, so passing outputPath is rejected. Use asAttachment to receive…
reportNamestringFilename (WITHOUT extension) for the generated document, returned in the Content-Disposition header. Carbone automatically appends the extension that matches convertTo, so do not include one — passin…
returnLinkbooleanIf true, generate the document and return a public download URL instead of the file contents. The link is SHORT-LIVED and ONE-TIME — Carbone deletes the file after the first download — so it is meant…
templatestringInline template for one-shot render without storing a template first. Two input forms are accepted: (1) HTTPS URL — the file is downloaded automatically, e.g. "https://example.com/file.pptx". (2) Bas…
templateIdstringThe ID of a previously uploaded template to render. Two ID formats are accepted: (1) Template ID (64-bit) — stable identifier shared across versions; Carbone automatically uses the deployed version.…
timezonestringIANA timezone used to convert dates in the rendered document. Default: "Europe/Paris". Applied when templates use the :formatD formatter, e.g. {d.date:formatD(YYYY-MM-DD HH:mm)}. Common values: "UTC"…
translationsTranslation map for multilingual documents. Requires "lang" to be set to select the active locale. Top-level keys are BCP-47 locale codes; values are key → translated-string maps. Template usage: {t(…
variableStrstringCarbone alias expressions evaluated once before rendering, available everywhere in the template. Used to pre-compute reusable values or shorten repetitive paths. Syntax: "{#aliasName = expression}".…
webhookHeadersobjectCustom headers Carbone will include when POSTing to your webhookUrl. Pass plain header names as keys — the prefix "carbone-webhook-header-" is added automatically before sending to Carbone, and Carbo…
webhookUrlstringWebhook URL to enable asynchronous rendering. When provided, Carbone returns immediately and POSTs { "success": true, "data": { "renderId": "..." } } to this URL when the document is ready. The defau…

No output schema declared.

No examples provided.

update_template_metadata ~284

Update the metadata of a stored template: name, comment, category, tags, deployment timestamp, or expiration. Use deployedAt to activate a specific version for rendering. Use expireAt to schedule or trigger immediate deletion.

NameTypeReqDescription
categorystringNew category.
commentstringNew free-text comment.
deployedAtintegerUnix timestamp (seconds) to set as the deployment time for this version. Carbone picks the version with the most recent deployedAt when rendering. Use 42000000000 to deploy immediately (special "NOW"…
expireAtintegerUnix timestamp (seconds) at which this template will be automatically deleted. Use 42000000000 to delete immediately.
idstringMove this version under a DIFFERENT Template ID, re-parenting it so both share a version history. Pass the destination Template ID (64-bit). Leave unset to keep the version where it is — this does no…
namestringNew display name.
tagsarrayNew list of tags — replaces existing tags entirely.
templateIdstringyesTemplate ID (64-bit) or Version ID (SHA-256) to update. Using a Template ID updates the metadata shared by all versions. Using a Version ID updates only that specific version.

No output schema declared.

No examples provided.

upload_template ~593

Upload and store a reusable Carbone template. Once uploaded, use render_document with the returned Template ID to generate documents from it. Supports versioning: multiple versions can live under a single stable Template ID, with deployedAt controlling which version is active. Accepted formats: DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG, HTML, XHTML, IDML, XML, Markdown, PDF, and more.

NameTypeReqDescription
categorystringGroup templates into folders/categories (e.g. "invoices", "legal", "hr").
commentstringFree-text comment to describe the template version or its purpose.
deployedAtintegerUTC Unix timestamp (seconds) to set as the deployment time for this version. Carbone uses the version with the most recent deployedAt when rendering via Template ID. Use 42000000000 to deploy immedia…
expireAtintegerUTC Unix timestamp (seconds) at which this template will be automatically deleted. Use 42000000000 to delete immediately (special "NOW" sentinel value).
idstringExisting Template ID (64-bit format) to add this upload to its version history. If omitted, a new Template ID is generated. Providing a Version ID (SHA-256) is not allowed and will cause an error.
namestringyesDisplay name for the template (e.g. "Invoice Template", "NDA Contract").
samplearraySample input data attached to the template for testing in Carbone Studio. Each item must include data, complement, translations, and enum objects.
tagsarrayTags for searchability and filtering (e.g. ["sales", "billing", "v2"]).
templatestringyesThe template file. Two input forms are accepted: (1) HTTPS URL — the file is downloaded automatically, e.g. "https://example.com/file.pptx". (2) Base64-encoded string — the raw file content encoded a…
versioningbooleanEnable template versioning (default: true). When true, a stable Template ID is generated and multiple versions can be managed under it. When false, behaves as legacy mode and returns only a templateI…
NameTypeReqDescription
idstringStable Template ID (when versioning is enabled).
namestringyesTemplate display name.
sizenumberTemplate size in bytes.
templateIdstringTemplate ID returned in legacy/non-versioned mode.
typestringDetected template file type.
versionIdstringVersion ID (SHA-256) of this uploaded version.

No examples provided.

Common questions

What is the Carbone MCP server?

Carbone MCP is listed in the public MCP registry as io.carbone/carbone-mcp. Generate PDF/DOCX/XLSX/PPTX from templates+JSON. Convert Office/HTML/MD to PDF. Universal templating. This page covers its hosted endpoint (https://mcp.carbone.io).

Is the Carbone MCP server safe to use?

Carbone MCP scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Carbone MCP server expose?

Carbone MCP exposes 11 tools: list_templates, convert_document, render_document, list_categories, list_tags, and 6 more. Their descriptions and schemas cost roughly 6,902 tokens of context every time the server is loaded.

Does the Carbone MCP server require authentication?

No. We connected to Carbone MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Carbone MCP server still maintained?

Carbone MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.