Skip to content

Releases: cyanheads/docgen-mcp-server

v0.2.2: MCP SDK v2 adoption and portable packaging

Choose a tag to compare

@cyanheads cyanheads released this 21 Aug 23:23
v0.2.2
0a53be8

MCP SDK v2 adoption and portable packaging

  • @cyanheads/mcp-ts-core ^0.10.9 → ^0.12.3 moves docgen onto MCP SDK v2 without changing its four-tool, one-resource surface.
  • Smoke, integration, fuzz, and edge-case coverage exercise every definition and declared error envelope.
  • Bun 1.4, TypeScript 7, portable MCPB cleanup, Docker build caching, and repository policy metadata refresh the release toolchain.
  • deps: @cyanheads/mcp-ts-core ^0.10.9 → ^0.12.3; typescript ^6.0.3 → ^7.0.2

CHANGELOG v0.2.2

v0.2.1: writer-tool input validation

Choose a tag to compare

@cyanheads cyanheads released this 28 Jun 13:46
v0.2.1
81dbc27

writer-tool input validation

Three input-validation fixes across the writer tools, plus a design-doc correction.

Fixed:

  • docgen_export_spreadsheet validates worksheet names against Excel's constraints before render — typed invalid_sheet_name instead of a raw ExcelJS throw or silent over-31-character truncation (#4)
  • docgen_fill_form accepts line-wrapped base64 PDFs (ASCII whitespace stripped before decode); malformed base64 still rejected (#5)
  • docgen_render_pdf rejects data supplied without a template via the declared invalid_source reason, no longer dropping it silently (#6)
  • docs/design.md reframes downloadUrl as a reserved field not emitted in v1 (#7)

152 tests pass; bun run devcheck clean.

v0.2.0: Remove the unserved downloadUrl; validate document ids

Choose a tag to compare

@cyanheads cyanheads released this 28 Jun 05:04
c5154d4

Remove the unserved downloadUrl; validate document ids

Breaking: the downloadUrl envelope field is no longer emitted; document ids are now validated at the schema boundary.

Removed:

  • downloadUrl is no longer emitted — no HTTP route served the advertised /documents/{id} path, so a GET 404'd. The field stays reserved in the schema but is always absent; bytes deliver via the docgen://document/{id} resource URI and inline base64. Breaking: read resourceUri or inlineBase64 instead. (#2)

Fixed:

  • template_render_failed now carries its declared recovery.hint on the wire, alongside the existing missingKey. (#1)

Security:

  • documentId is validated against ^doc_[A-Za-z0-9_-]{24}$ at the schema boundary, and the store resolves a non-conforming id as not-found before any storage read — a malformed id no longer bypasses document_expired or leaks the internal doc/meta/ storage key. (#3)

142 tests pass; bun run devcheck clean.

v0.1.1: first published release — render agent content into downloadable documents

Choose a tag to compare

@cyanheads cyanheads released this 26 Jun 02:43
v0.1.1
08f4a18

first published release — render agent content into downloadable documents

docgen renders the structured content an agent composes into the PDF, xlsx, or filled AcroForm a human downloads. Bundled pdf-lib / exceljs / marked stack, no external API.

Added:

  • docgen_render_pdf — HTML / markdown / {{template}}+data to PDF (pdf-lib); flags degraded when it drops unsupported styling
  • docgen_export_spreadsheet — named row sheets to .xlsx (exceljs) with an optional per-column spec
  • docgen_fill_form — fill/flatten AcroForm PDFs from base64 or an SSRF-guarded URL; misses return in unmatchedFields[]
  • docgen_get_document — re-fetch a rendered document by id within its TTL
  • docgen://document/{documentId} resource — bytes-as-blob + JSON metadata delivery surface
  • Shared DocumentEnvelope and tenant-scoped, TTL-bounded store with a byte ceiling and render timeout (DOCGEN_* config)

Changed:

  • Published under the @cyanheads/docgen-mcp-server npm scope across install, badge, and plugin surfaces

140 tests pass; bun run devcheck clean.