chematic for AI agents
chematic-mcp exposes 20 chemistry tools to AI agents over the Model Context Protocol — parsing and canonicalizing structures, computing physicochemical properties, checking drug-likeness rules, generating fingerprints and similarity scores, matching SMARTS patterns, generating 3D coordinates, and sketching retrosynthetic disconnections. Each tool takes structured JSON in and returns structured JSON out, so an agent doesn't have to parse chemistry out of prose.
What it is — and isn't
This is a local process, not a hosted service. It speaks stdio only: there is no remote HTTP endpoint, no authentication, and no public SLA. If you need chemistry tools available to an agent, you run the process yourself, on your own machine.
name_to_smiles is the only tool of the 20 that makes a network call (PubChem, name → SMILES lookup). The other 19 are pure local computation.
Not supported today:
- Remote HTTP / Streamable HTTP
- Authentication / OAuth
- Tasks extension
- MCP Apps
- Resources, Prompts, Sampling, Roots, Logging, Subscriptions
Install
Not published to crates.io — run it from a repository checkout. Clone the repository, then run it from a workspace checkout — there is no cargo install chematic-mcp shortcut yet.
git clone https://github.com/kent-tokyo/chematic
cd chematic
cargo run -p chematic-mcp --releaseAdd it to an MCP client
For Claude Desktop or Claude Code, point the client at the same command:
{
"mcpServers": {
"chematic": {
"command": "cargo",
"args": ["run", "-p", "chematic-mcp", "--release", "--quiet"]
}
}
}Available tools (20)
name_to_smiles | parse_smiles |
canonical_smiles | calc_properties |
lipinski_check | sa_score |
pains_check | brenk_check |
admet_profile | boiled_egg |
ecfp4 | tanimoto |
smarts_match | find_mcs |
generate_3d | retrosynthesis |
smiles_to_moljson | moljson_to_smiles |
representation_router | molecule_context_pack |
Caching
The tool registry is static for the lifetime of one running process — tools/listresults carry a 24-hour cache hint. If the registry ever changes, it changes as part of a newchematic-mcp release; restarting the server always returns the current registry regardless of a client's cached TTL.
See the full protocol details, including the dual legacy/modern dialect support, in thecrate README.