Hydroxyl MCP server
io.github.trebeljahr/hydroxyl·v0.1.0Local stdio MCP server: publication figures, structure checks and conversions for AI assistants
0 stars397 downloads/wk
Reviews
Write oneNobody has reviewed Hydroxyl yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Hydroxyl tools (5)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
check_structureReport every valence and drawing problem the editor would flag (over-valent atoms, misplaced wedges), each with the obvious one-click fixes as corrected molfiles, plus RDKit's refusal if it would refuse it. Atoms are numbered 1-based in molfile order.
convertConvert a structure to a molfile (as the editor saves it) or to RDKit's canonical SMILES. By default a SMILES becomes a molfile and anything else becomes a SMILES.
describeSum formula (Hill order), average molecular weight, monoisotopic exact mass, net charge, and the CIP label of every stereocentre and stereogenic double bond. Atoms are numbered 1-based in molfile order.
editor_linkA link that opens the structure in the Hydroxyl editor as a new, unsaved sketch. The structure travels in the URL fragment, which the browser does not send to the server.
render_figureDraw a structure as a journal figure: one bond prints at the style's standard length (5.08 mm for ACS-style Publication), and the width is a maximum the figure is scaled down to fit. Returns the figure (PNG or SVG), its printed size, its label size, and a warning for any text that prints below the style's minimum (8 pt for Publication).
Public scan report
scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it
- Code scan2 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Hydroxyl compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Tools
- 5
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 397
- more than 85% of 12,191 servers with a package
What its tools let an agent do: 4 read · 1 change
Install Hydroxyl in Claude Code, Cursor or VS Code
Runs npx -y hydroxyl-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add hydroxyl -- npx -y hydroxyl-mcp
What the publisher says
From the Hydroxyl repository's README, as published. We do not edit it. Read it on GitHub
Hydroxyl
A chemical structure editor for figures in papers. Draw a molecule once, then export it in each representation the figure needs.
The repository keeps its working name, chemistry-sketcher.
Status: early. The chemistry core, the renderer and the editor canvas are built and tested: /editor draws, edits, and renders every 2D representation listed below.
What it is for
Most structure editors optimise for entering a molecule and exporting one picture. This one treats the representation as a view over a single model, so the same structure can be shown as:
- skeletal (implicit carbons and hydrogens, aromatic rings as one circle)
- Kekulé (localised alternating double bonds, carbons still bare)
- fully explicit, every atom labelled and every hydrogen drawn
- Lewis dot structures, with lone pairs and formal charges
- condensed formula — CH3CH2OH, walked from the graph
- sum formula, molecular weight, exact mass
…and rendered under a chosen style preset (ACS bond lengths, line widths and fonts), including a panel mode that lays several representations side by side as one labelled figure.
Layout
packages/
chem-core/ pure TypeScript chemistry model — graph, valence, formula.
No React, no DOM, no dependencies. Fully unit-tested.
client/ Next.js app (App Router, Tailwind v4, shadcn/ui).
mcp/ Local MCP server for AI assistants (npm: hydroxyl-mcp).
shared/ zod schemas shared across packages.chem-core is deliberately framework-free so the chemistry can be tested without a browser and reused headlessly. There is no server package — the editor runs entirely in the browser.
3D is post-v1, and the reason is settled
Wireframe, ball-and-stick and space-filling views are not in v1, and neither are the projections that need real geometry (chair, Newman, sawhorse). This is a decision, not a backlog item that slipped.
RDKit-WASM is this project's import/export oracle, and the MinimalLib build it ships contains no conformer generation at all — no DistGeom, no ETKDG, no EmbedMolecule, no force field. It does 2D depiction (RDDepict + CoordGen) and nothing else. has_coords() can report 3 for a conformer read out of a file, but nothing in this build can generate or minimise one.
So a 3D view is not a rendering feature bolted onto what is here; it needs a different component entirely — a full RDKit build, OpenBabel-wasm, or hand-rolled geometry — with its own size, licence and correctness questions. Anything drawn from 2D coordinates alone would be a picture of a guess.
Design decisions worth knowing
stored as atoms in the graph.
- Hydrogens are implicit. They are derived from valence when queried, not
divalent in a thiol and hexavalent in a sulfone; one number cannot express that. The lists follow RDKit's default valence table so SMILES round-trips do not drift.
- Elements carry valence lists, not a single max-bond count. Sulfur is
through ids on bonds, which is what makes snapshots, undo and serialization possible.
- The molecule graph is flat and acyclic. Atoms reference each other only
figures, so the rendered DOM is the export.
- Rendering targets SVG, not canvas. The output goal is publication
Development
pnpm install
pnpm dev # client at http://localhost:6337
pnpm test # chem-core, chem-render, shared, client and mcp unit tests
pnpm typecheck
pnpm build
# End-to-end (Playwright). Browsers are NOT downloaded by `pnpm install`
# — pnpm-workspace.yaml's allowBuilds allowlist omits playwright on
# purpose. Install them once:
pnpm exec playwright install chromium
pnpm test:e2eMCP server for AI assistants
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Hydroxyl: common questions
- Is Hydroxyl MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Hydroxyl safety report
- How do I install Hydroxyl?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Hydroxyl need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is Hydroxyl maintained?
- The last commit was 23 days ago (2026-10-12). The latest release is v0.1.0.
- How does Hydroxyl compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); tools 5 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.