check_consistency
Audit document for stale cross-section references and dependency violations
Have the agent answer in a real HTML page — report, dashboard, invoice, deck — then patch single elements or line ranges instead of regenerating the file.
LABSCO SUMMARY
The reason to use this over asking a model for raw HTML is the edit path: a line-range replacement sends only the replacement, and reading a page back in text mode returns roughly a thousandth-scale summary of a 106KB file rather than the file. That is what makes a build-inspect-refine loop affordable enough to run several times.
An MCP server that builds and edits HTML files, so an agent's output arrives as a page you can scan and share rather than a wall of markdown. Pages are assembled from named components against a template shell, and every later change is surgical: patch by CSS selector, set an attribute, replace a line range, or swap one rendered section. It works on strings and an AST — no headless browser is involved.
render_page, preview_htmllist_templates, list_components, get_template_schema, get_component_schemapatch_html, set_attributeedit_html_rangelist_sections, edit_section, insert_sectionread_htmlwrite_raw_html, write_html_file, format_htmlpropagate_edit, check_consistencyregister_templateNo account and no key; files are written to your own disk. Node.js 20 or newer, launched with npx -y @aimino/fast-html-mcp-server over stdio; the MCP registry entry for the same server points at @aimino/opentalk2html-notmd 0.1.2. 22 components and the template shells ship with the package, so there is nothing to fetch at render time. Output passes through DOMPurify and files are written tmp-then-rename, so an interrupted write does not corrupt the page. Licensed under the GNU General Public License v3.0.
One command — npx -y @aimino/fast-html-mcp-server
USE CASES
Assemble a report page from the data-table, stats-grid and callout components against a report template, preview it, then write it out.
Read the file to locate the element, then patch that element by selector — or replace the line range outright when the target is a large container.
Change the entity once and propagate the edit through the dependency graph, then audit the document for references that are still pointing at the old value.
List the rendered sections, replace one with a different component, and insert a new section at the index where it belongs — existing sections shift forward rather than being overwritten.
Register a custom template shell at run time and render against it immediately, instead of post-processing every page the built-in shells produce.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
check_consistencyAudit document for stale cross-section references and dependency violations
edit_html_rangeReplace a range of lines in an HTML file with new content (most token-efficient edit — send only the changed lines)
edit_sectionReplace a rendered section in an HTML file with a new component. Pages rendered with render_page embed section markers. Use list_sections to discover available indices. Provide component+props to re-render, or html for raw replacement.
format_htmlFormat/beautify an existing HTML file
get_component_schemaGet component schema with available props
get_template_schemaGet template metadata including available variables with defaults
insert_sectionInsert a new component section at a specific index, pushing existing sections forward. Uses the same section marker system as render_page. Auto-renumbers all subsequent sections.
list_componentsList available interactive components (optionally filter by category)
list_sectionsList all component sections in an HTML file that was built with render_page. Returns section indices, component types, and sizes.
list_templatesList available template shells (optionally filter by category)
patch_htmlPatch HTML element(s) by CSS selector
preview_htmlPreview rendered HTML string without writing
propagate_editPropagate an entity edit through the dependency graph, updating all transitively affected sections
read_htmlRead/analyze existing HTML file. Use mode='text' for token-efficient plain text extraction with offset/limit progressive reading.
register_templateRegister a custom template at runtime for immediate use with render_page/preview_html
render_pageAssemble page from structured components
set_attributeSet attribute on element(s) by CSS selector
write_html_fileWrite content as formatted HTML file
write_raw_htmlWrite raw HTML content directly to file
BEFORE YOU INSTALL
19 tools when we connected. The documented email tools render_email and html_to_email are not available. list_sections, edit_section, insert_section and write_html_file are available but undocumented.
Node.js 20+
All 3 documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 19 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y @aimino/fast-html-mcp-server{
"mcpServers": {
"open-talk-2-html-not-md": {
"command": "npx",
"args": [
"-y",
"@aimino/fast-html-mcp-server"
]
}
}
}{
"servers": {
"open-talk-2-html-not-md": {
"command": "npx",
"args": [
"-y",
"@aimino/fast-html-mcp-server"
]
}
}
}