Helx MCP Server
Provides full support for Markdown documents, including create, read, edit, validate, diff, render, and conversion to/from DOCX, HTML, PDF, and more.
Generates SVG diagrams from Mermaid flowchart syntax via the diagram tool.
Renders charts and diagrams to SVG images, and can also render PPTX slides to SVG for visual preview.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Helx MCP ServerConvert this sales report from XLSX to PDF and render a preview."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Helx
The universal artifact runtime for AI agents. One engine that reads, creates, edits, validates, diffs and renders the formats agents actually work with — DOCX, XLSX, PPTX, PDF, Markdown, HTML, CSV — plus charts, diagrams, templates, cross-format conversion and CSV data ops. Exposed three ways:
CLI —
helxfor humans and shell scriptsMCP server — 20 tools over stdio for AI agents (Claude, Cursor, etc.)
TypeScript SDK — a clean
Artifactfacade for your own code
one model, every file
create → read → edit → save → validate → diff → render → convertVisual gallery
Every artifact below was created and edited by Helx itself, then previewed by Helx. Click any card to open the file.
|
|
|
|
|
|
|
|
|
Charts generated with helx chart:

The gallery is produced by npx tsx scripts/make-gallery.ts — it opens every demo file through the SDK and rasterizes a styled SVG preview to PNG with @resvg/resvg-js.
Related MCP server: LibreOffice MCP Tools
Why Helx over OfficeCLI
OfficeCLI is a strong Word/Excel/PPT editor for AI agents. Helx goes further:
Capability | Helx | OfficeCLI |
Formats | DOCX, XLSX, PPTX, PDF, Markdown, HTML, CSV | Word, Excel, PPT only |
Cross-format conversion |
| no |
Charts & diagrams |
| no |
Templates |
| DOCX merge only |
CSV data ops |
| no |
create, extract text, merge, split | no | |
Renders for agent vision | DOCX/XLSX/CSV→HTML, PPTX→SVG, PDF→text, MD→HTML, charts→SVG | render → PNG |
Interfaces | CLI + MCP (20 tools) + TypeScript SDK | CLI + MCP |
Agent paths | uniform | per-format |
Validation & diff |
| no |
Helx also ships stat (document statistics) and move (reorder paragraphs/rows/slides/shapes) across every interface.
Install
npm install -g helx # CLI + MCP server
# or
npm install helx # SDK for your own TypeScript/JavaScript projectThen helx --help or add the MCP server to your AI client:
{
"mcpServers": {
"helx": { "command": "helx", "args": ["mcp"] }
}
}That's it — any AI model or agent (Claude, Cursor, Cline, LangChain, custom scripts) can create, read, edit and render real office and web documents.
Build from source
git clone https://github.com/Asno-dev/Helx.git
cd Helx
npm install
npm run build # tsc → dist/
npm test # 71 integration checks (tsx test/smoke.ts)Node >= 18 (dynamic ESM import requires >= 12.20; verified on Node 22).
Quick start (CLI)
# Create a DOCX from a JSON spec (type inferred from the extension)
helx create report.docx '{"title":"Q3 Report","paragraphs":["Revenue grew 20% to $52k."],"tables":[{"headers":["Metric","Value"],"rows":[["ARR","4.2M"]]}]}'
# Inspect the structure as a path-addressed tree
helx inspect report.docx
# Read / write a single value via an agent path
helx get report.docx "/p[1]"
helx set report.docx "/table[0]/row[1]/cell[1]" "4.5M"
# Insert / remove / move, then validate and render to HTML for a visual check
helx insert report.docx "/p[2]" '{"text":"New paragraph","style":"Heading 2"}'
helx remove report.docx "/p[4]"
helx move report.docx "/p[2]" "/p[5]" --after
helx stat report.docx
helx validate report.docx
helx render report.docx --out report-preview.html
# Cross-format conversion (any direction, any engine)
helx convert report.docx report.md
helx convert report.md report.pdf
helx convert sales.xlsx sales.csv
helx convert deck.pptx deck.md
# Spreadsheets
helx create data.xlsx '{"sheet":"Revenue","rows":[["Quarter","Amount"],["Q1","10"]]}'
helx get data.xlsx "/sheet[Revenue]/cell[B2]"
helx analyze data.csv
helx filter data.csv '{"col":"score","op":"gt","value":80}'
# Decks
helx create deck.pptx '{"title":"Investor Deck","subtitle":"Q3 2026","bullets":["Market size: $10B"]}'
helx get deck.pptx "/slide[0]/shape[1]"
# PDFs (create via model; merge/split for structure)
helx create a.pdf '{"title":"Doc A","sections":[{"heading":"Intro","text":"Hello."}]}'
helx merge merged.pdf a.pdf b.pdf
helx split page1.pdf merged.pdf --pages 1
helx extract merged.pdf
# Charts, diagrams, templates
helx chart '{"type":"bar","labels":["Q1","Q2"],"values":[10,12]}' --out chart.svg
helx diagram 'graph TD; A[Start] --> B[End];' --out diagram.svg
helx template 'Hello {{name}}' '{"name":"Ada"}'
# Run the MCP server (for AI agents)
helx mcpAgent paths
Every artifact exposes a stable, path-addressed tree so agents can read/write any value:
Format | Example paths |
DOCX |
|
XLSX |
|
PPTX |
|
| |
Markdown |
|
HTML |
|
CSV |
|
set, insert, remove and move mutate the model and save() round-trips it back to the file.
Cross-format conversion
convert walks a real content model — it is not string surgery:
From \ To | DOCX | XLSX | PPTX | MD | HTML | CSV | |
DOCX | — | ✔ | ✔ | ✔ | |||
XLSX | — | ✔ | ✔ | ✔ | |||
PPTX | ✔ | — | ✔ | ✔ | |||
✔ | — | ✔ | ✔ | ||||
MD | ✔ | ✔ | — | ✔ | |||
HTML | ✔ | ✔ | ✔ | — | |||
CSV | ✔ | ✔ | ✔ | — |
const md = await Artifact.create('markdown', { root: { children: [] } });
await md.insert('/node', { type: 'heading', depth: 1, text: 'Hello' });
const docx = await md.convertTo('docx'); // real DOCX bytes
const html = await docx.convertTo('html');MCP server
helx mcp runs a Model Context Protocol server over stdio. It exposes 20 tools:
create_artifact, inspect, get, set, insert, remove, move, convert, stat, render, validate, diff, merge_pdf, split_pdf, extract, analyze_csv, filter_csv, chart, diagram, template
Tools are filesystem-path based — the agent passes a file path and a JSON value, and the server reads, edits, saves, or renders the artifact. Register it in a client like Claude Desktop:
{
"mcpServers": {
"helx": { "command": "node", "args": ["/path/to/helx/dist/cli/index.js", "mcp"] }
}
}TypeScript SDK
import { Artifact, chartToSvg, dataFilter, renderTemplate } from 'helx';
// Create, edit, save
const doc = await Artifact.create('docx', {
title: 'Report',
paragraphs: ['Revenue grew 20% to $52k.'],
tables: [{ headers: ['Metric', 'Value'], rows: [['ARR', '4.2M']] }],
});
await doc.set('/p[0]/text', 'Updated headline');
await doc.insert('/p[1]', { text: 'Inserted paragraph' });
const bytes = await doc.save();
await fs.writeFile('report.docx', bytes);
// Open any file, regardless of format
const art = await Artifact.open('data.xlsx', buffer);
console.log(await art.get('/sheet[Revenue]/cell[B2]'));
console.log(await art.inspect());
// Convert to another format, get stats, move elements
const md = await art.convertTo('markdown');
console.log(await art.stat());
await art.move('/sheet[Revenue]/row[3]', '/sheet[Revenue]/row[1]', 'before');
// Validation and diff
console.log(await art.validate()); // { status, issues[] }
console.log(await art.diff(other)); // DiffEntry[]
// Generator utilities
const svg = chartToSvg({ type: 'pie', labels: ['A', 'B'], values: [3, 7] });
const rows = dataFilter(data, { col: 'score', op: 'gt', value: 80 });
const out = renderTemplate('Hi {{name}}', { name: 'Ada' });Also exported: convertArtifact, canConvert, mergePdfs, splitPdf, dataProfile, dataSort, dataAggregate, dataDedupe, dataClean, parseDiagram, diagramToSvg, renderDocxTemplate, detectType, engineForFile, registerEngine, engines.
Architecture
src/
core/
types.ts # shared model contracts (Engine, ArtifactModel, ValidationReport, ...)
base.ts # BaseEngine with typed dispatch for set/insert/remove/move
paths.ts # agent-path parser (/p[0], /sheet[X], css:..., /row[n]/cell[n])
utils.ts # LCS diff, diffText/diffSeqMerged, HTML document shell
convert.ts # cross-format converter (content-model based, 19 directions)
index.ts # engine registry + Artifact facade (create/open/save/...)
engines/
docx.ts # paragraphs, heading styles, tables
xlsx.ts # sheets, cells, formula read-back
pptx.ts # slides, shapes, text boxes
pdf.ts # create (pdfkit), extract text (pdfjs-dist), merge/split (pdf-lib)
markdown.ts # remark/rehype round-trip
html.ts # cheerio DOM editing + css: selectors
csv.ts # rows + data ops: profile/filter/sort/group/aggregate/clean/dedupe
chart.ts # SVG charts (bar, line, pie, donut, area, scatter, grouped bar, stacked bar)
diagram.ts # mermaid-style flowchart → SVG
template.ts # {{var}}/{{#each}}/{{#if}} + in-place DOCX placeholder merge
cli/index.ts # helx CLI (commander)
mcp/index.ts # MCP stdio server (20 tools)
sdk/index.ts # public package surface
scripts/make-gallery.ts # README gallery generator
examples/demo/ # all demo files created by Helx itselfEach file engine implements one contract: read(bytes) → model, write(model) → bytes, plus create(spec), get/set/insert/remove/move(path), inspect(), validate(), diff(other), render(). The Artifact facade keeps the original bytes so immutable formats (PDF) can still be round-tripped after edits to other formats.
Notes & design decisions
PDF is immutable by model: text extraction is read-only (
pdfjs-dist; pdf-parse was dropped because its bundled pdf.js 2.x cannot parse pdfkit output). Structure operations usepdf-lib:mergePdfsandsplitPdf.Renders to HTML for the agent's vision loop: DOCX/XLSX/CSV → HTML tables, PPTX → per-slide SVG, PDF → per-page text, Markdown → HTML, charts/diagrams → SVG.
helx chart,helx diagram,helx templateare generator utilities; they are not registered file engines.Conversion is model-based: converters read each format's real model (
DocxModel,XlsxModel, ...) and produce another engine's spec, soconvertpreserves structure rather than pasting raw text.
License
Apache-2.0 — see LICENSE.
Contributing
Bug reports, feature requests and pull requests are welcome. See CONTRIBUTING.md for the dev workflow, conventions and Code of Conduct.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to create, read, modify, and convert Word documents without Microsoft Word, supporting 18 tools for document operations, paragraph manipulation, table management, formatting, and conversion between multiple formats including PDF, HTML, and Markdown.6MIT
- AlicenseAqualityDmaintenanceEnables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, and legacy formats through LibreOffice bridge.2733MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read, edit, and create Microsoft Word documents (.docx) with support for rich text, tables, and images, deployable locally or via SSE.3MIT
- AlicenseBqualityDmaintenanceEnables complete Office document lifecycle management for AI agents, including creation, editing, conversion, and templating of DOCX, XLSX, PPTX, PDF, and EML files.40MIT
Related MCP Connectors
Make videos and docs with your AI agent — describe what you need, every output stays editable.
Generate PDF/DOCX/XLSX/PPTX from templates+JSON. Convert Office/HTML/MD to PDF. Universal templating
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Asno-dev/Helx'
If you have feedback or need assistance with the MCP directory API, please join our Discord server








