Founder, NovoMCP.
The open computational
chemistry engine
for drug discovery and materials.

Open-sourced July 2026 under Apache-2.0. MCP + REST, 68 tools, self-hostable or cloud-deployed — clone it and it boots with zero external services: no auth, no account, no API key. The system between foundation models and high-stakes decisions, under real constraints. Previously: reinforcement learning agents for autonomous discovery in manufacturing. The domain changed; the systems thinking didn't.

68tools in the engine
Apache-2.0license
11autonomous funnel stages
5SOTA wins on TDC ADMET
3accelerators backing
↓ Scroll
Now
Building
NovoMCP: the open computational chemistry engine. MCP + REST, 68 tools, self-hostable under Apache-2.0 or run as a per-org cloud deployment. Solo founder.
Recently
  • Open-sourced NovoMCP (July 2026, v1.0.0) — engine + open-compute wrappers + surfaces + trained models under Apache-2.0; orchestration core under BSL 1.1 → Apache 2029-07-12. Boots with zero external services: no auth, no account, no API key
  • Shipped through v1.4.0 — ALCHEMI-accelerated engine axis across geometry, energy, and conformer search (asealchemi, crestalchemi; same tool call, open reference path or GPU path chosen per call), plus a pluggable auth / metering / audit spine so the same code runs standalone or hosted
  • Consolidated ~30 services Azure → AWS with zero customer-visible downtime, then trimmed the hosted footprint down to api.novomcp.com for the OSS launch
  • Five SOTA wins on TDC ADMET (NovoExpert: CYP2D6, CYP3A4, CYP3A4 Substrate, Clearance Hepatocyte, DILI); preprint on ChemRxiv
  • Shipped FAVES V4 certified compliance API for regulated pharma pipelines; preprint on ChemRxiv
  • Published Chrome Web Store extension; sideload Word add-in in private beta
  • Published the engine's GPU compute services as standalone open repos — gromacs-md (GROMACS MD), novomcp-nnp (neural-network potentials), novomcp-qm (quantum chemistry)
  • Shipped novomcp-lite — a lightweight, standalone version of the engine's cheminformatics (Apache-2.0, pip install novomcp-lite): eight zero-config tools, library or MCP server; same code as the full engine, minus the rest of the platform
  • Open-sourced NovoMD, local-first molecular descriptors, MIT-licensed, shipping as library + CLI + Hugging Face MCP + Docker REST
Backed by
NVIDIA Inception · AWS Activate · Microsoft Founders Hub
Open to
Product, AI, and 0-to-1 leadership conversations. San Francisco / Bay Area or remote. Particularly interested in production AI systems, MCP-shaped infrastructure, and applied AI at companies where correctness matters. Reach me ↓
About

The interesting problem isn't getting a model to say something. It's building the system around the model so its output can be acted on: safely, correctly, repeatedly, with a record of what happened. That's the work.

NovoMCP is what I built. One computational chemistry engine, 68 in-silico tools across ADMET, docking, molecular dynamics, quantum chemistry, structure prediction, and compliance, that speaks both MCP (reachable from Claude Desktop, Cursor, Codex, Zed, and any MCP-compatible assistant) and REST (any pipeline that posts JSON). Two paths to run it: self-host it under Apache-2.0 on your own hardware, or run it as a per-org cloud deployment with the certified FAVES compliance API wrapped around it. Same engine either way.

The engine, never the platform (positioning call). Scale-to-zero by default (unit economics call). Human-in-the-loop via MCP elicitation, not autonomous-agent-on-someone-else's-molecules (trust call). Open-sourced as an engine, not as a hosted product (moat call — the moat is FAVES-cert + operated cloud, not the code). See the full product portfolio →

Before NovoMCP: reinforcement learning agents for autonomous discovery in high-stakes manufacturing. The systems ran continuously, diagnosed their own failures, and improved without intervention. Different domain, same problem shape — the agent isn't the product; the system that makes the agent safe to deploy is the product. That's the throughline.

The Stack

  • The EngineMCP + REST, 68 tools, ~14 always-available on a fresh clone (now v1.4.0)
  • Runs LocalBoots with zero external services — no auth, no account, no API key; audit to ~/.novo/audit.jsonl
  • Pluggable SpineAuth · metering · audit swap local ↔ hosted ↔ custom via env flags — same code standalone or operated
  • Wraps Open ComputeRDKit · GROMACS · AutoDock-GPU · OpenFold · Boltz · Gnina · xTB · ANI-2x · AIMNet2 · MACE
  • LicenseApache-2.0 (orchestration core BSL 1.1 → Apache 2029-07-12)
  • ComplianceFAVES V4 (hosted) — 8 jurisdictions, 1,585 structural alerts
  • SurfacesMCP · REST · Workbench (v1.5.x) · Chrome ext · Word add-in · bundled dashboard
  • VerticalsDrug discovery + materials science
  • EcosystemNVIDIA Inception · AWS Activate · Microsoft Founders Hub
Leadership

A short selection of product, infra, and positioning calls made shipping NovoMCP. What I'd want a hiring manager to know is not what I built (that's the portfolio), but how I decide what to build, what to cut, and what to delay.

Distribution · Moat
Open the engine at v1.0.

The straightforward call would have been to keep the engine closed and sell it as a hosted platform. I open-sourced it instead — Apache-2.0 top level, BSL 1.1 → Apache 2029-07-12 for the orchestration core. The moat is FAVES certification + operated cloud + trained models, not the code that calls RDKit and orchestrates docking.

Distribution flips from "sign up for our platform" to "clone the repo." Adoption compounds where the platform pitch couldn't reach — researchers, students, engineers wiring the engine into their own agents. The regulated buyers still need certified compliance; that's what they buy.

Unit economics · Infra
Scale-to-zero by default.

Every compute service ships with min_replicas = 0. Only the public-path surfaces (the gateway, the dashboard, the frontend) keep a warm replica. Pre-warm is an opt-in tier capability, not a default cost.

Carried the Azure cold-start posture forward to AWS rather than retrofitting it later. Unit economics stay honest from day one; the bill doesn't grow with idle.

Positioning · Copy
Engine, never platform.

"Platform," "OS," "infrastructure," "operating layer," "orchestration", every competitor in the category uses those nouns. They collide. I locked the public language to computational chemistry engine, with a diagnostic test on every public sentence: could a competitor put this on their homepage unchanged? If yes, replace the noun.

One word does the work of a positioning deck. Sales script, marketing copy, the assistant's own elicitation prompts, same word everywhere.

Discipline · Cut
Killed the campaign system.

The original product had a campaign / iteration / quality-gate database schema for autonomous research runs. I cut it. Human-in-the-loop via MCP elicitation at every funnel stage replaced it. The user's AI assistant prompts the user at each gate.

Less code, clearer trust model, and the funnel runs inside the assistant the user already trusts, not as a standalone autonomous agent on someone else's compounds. The audit log is the quality gate now.

Go-to-market · Pricing
Self-hosted or cloud. No middle.

The prior model had a Free Trial / Core / Scale / Enterprise credit-tier ladder. I killed all of it at the OSS launch. Two paths now: Self-hosted, free forever (Apache-2.0, run it yourself) or Cloud deployment, contact for pricing (per-org subdomain, SAML SSO, GPU pool, certified FAVES). No self-serve middle tier.

The tier ladder was noise between the two real buyers — someone who wants to run the engine, and someone who wants us to operate it under an SLA with certified compliance. Removing the middle removes decision friction on both ends and cuts a bunch of billing complexity from the roadmap.

Infra · Security
Private-endpoint everything.

EKS API, Aurora, Redis, internal ALBs: all private. The catch: GitHub-hosted CI runners can't reach any of it, so every kubectl apply times out. Rather than poke holes, I committed to build on GH runners, deploy via OIDC → SSM → bastion and applied the pattern uniformly across every NovoServices repo.

Pattern doesn't re-litigate per port. Bastion comes pre-wired with kubectl, psql, EKS / Aurora / Secrets perms; new services pick it up for free. Security posture is a default, not an exception.

Publications

Research on how domain structure shapes reasoning - and how reasoning systems adapt under different objective and constraint regimes.

View all on Google Scholar →
Projects
Open source · Engine
NovoMCP — the open computational chemistry engine
One engine, two surfaces (MCP + REST). 68 tools across cheminformatics, ADMET, docking, MD, quantum chemistry, structure prediction, materials science, and an 11-stage autonomous discovery funnel. Clone it and it boots with zero external services — no auth, no account, no API key; ~14 tools work on a fresh clone, the rest unlock as you wire optional compute. A pluggable spine (auth / metering / audit) swaps local ↔ hosted ↔ custom by env flag. Wraps open compute — RDKit, GROMACS, AutoDock-GPU, OpenFold, Boltz, Gnina, xTB, ANI-2x, MACE — with an ALCHEMI-accelerated axis across geometry, energy, and conformer search (through v1.3.0), and sources its in-process cheminformatics from the open novomcp-lite package (v1.4.0). Apache-2.0 top-level; orchestration core BSL 1.1 → Apache 2029-07-12. Works with Claude Desktop, Cursor, Codex, Zed, ChatGPT, Gemini, and any MCP-compatible assistant, or hit it from your own code over HTTP.
Repo →    novomcp.com/engine →    Docs →
Hosted · Certified
FAVES certified compliance API
The moat around the OSS engine. Certified regulatory compliance for pharma / biotech pipelines — DEA schedules, EU REACH, PAINS filters, structural alerts, sponsor whitelists, PMDA / KFDA / TGA — plus the operational commitments a regulated submission needs (SLA, immutable audit-log retention, drift monitoring, IQ/OQ/PQ documentation, SAML SSO). Closed and paid; access on request. Not shipped with the OSS engine.
novomcp.com/faves →    FAVES V4 preprint →
Preview · Workstation
NovoWorkbench — native desktop for the engine
The molecule canvas, 3D viewers, and discovery funnel as a native desktop for macOS and Windows. Local RDKit, offline alert screening (PAINS + druglikeness rule sets), bring-your-own-LLM chat, model-agnostic. Tauri + Python sidecar; Apple Developer ID notarized (team 8N9K9B7Y69). Currently in design-partner preview; ships as OSS in v1.5.x per the product roadmap.
About NovoWorkbench →    Talk to us about early access →
Open source · Apache-2.0
novomcp-lite — NovoMCP's cheminformatics, standalone
A lightweight version for people who just want the wrappers, not the whole engine. pip install novomcp-lite — eight zero-config tools (RDKit properties, profiling, synthetic-accessibility, PAINS/BRENK alerts, library screening, plus ChEMBL / ClinicalTrials.gov / bioRxiv search), as a Python library or an MCP server. Two dependencies, no keys. It's the exact code the full engine runs on, so the numbers match — just without the rest of the platform. Prompted by a researcher who wired the engine up to his agent and asked for a lighter build.
GitHub →    PyPI →
Open source · MIT
NovoMD - Local-first molecular descriptors
SMILES in, 32+ molecular descriptors out, from a real 3D conformer. Geometry, energy, electrostatics, surface and volume - calculated on your own machine, no account, no API key. Ships as a Python library, a CLI, a Hugging Face MCP endpoint, and a Docker REST service - the same one-engine-many-surfaces pattern, applied at library scale, fully open. The design call: scope discipline. No ADMET, no pKa, no binding - documented in the README and shipped as an agent skill so AI assistants are told explicitly where the tool's authority ends.
GitHub →    Hugging Face MCP →
Systems · Autonomy
Autonomous Systems
Before NovoMCP: reinforcement learning agents in high-stakes manufacturing environments. Continuous operation. Self-diagnosing on failure. Improving without intervention. The architectural pattern is the same - agents that pursue objectives, not just answer questions. The domain changed. The systems thinking didn't.
Portfolio · Surfaces
One engine, multiple surfaces
A separate product portfolio walking through the engine and its surfaces as individual cases — the problem, the product decision, the build trade-offs, the outcome. Engine (MCP + REST) · Workbench · Chrome extension · Word add-in · bundled dashboard · FAVES certified API. Plus the cross-cutting decisions underneath — engine-first language, scale-to-zero by default, Azure→AWS migration, private-endpoint infra, opening the engine at v1.0, and human-in-the-loop over autonomy.
Open the portfolio →
Writing
View All on Substack
Contact

Open to product, AI, and 0-to-1 leadership conversations. Bay Area or remote. Particularly interested in production AI systems, MCP-shaped infrastructure, and applied AI at companies where correctness matters.

Resume: in revision, available on request.