PubChem MCP Server
About
Provides comprehensive access to PubChem's chemical information database via the PubChem PUG REST API.
Details
- Author
- cyanheads
- Categories
- Database, Other
Jump to
Setup
Install PubChem MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/cyanheads/pubchem-mcp-server
Follow the installation instructions in the repository README, then restart your MCP client.
Provides comprehensive access to PubChem's chemical information database via the PubChem PUG REST API.
Search the PubChem chemical database for compounds, properties, safety data, bioactivity, cross-references, and entity summaries via MCP. STDIO or Streamable HTTP.
Public Hosted Server:https://pubchem.caseyjhand.com/mcp
Ten tools for querying PubChem's chemical information database:
Search PubChem for chemical compounds across five search modes.
- Identifier lookup— resolve compound names, SMILES, or InChIKeys to CIDs (batch up to 25)
- Formula search— find compounds by molecular formula in Hill notation
- Substructure/superstructure— find compounds containing or contained within a query structure
- 2D similarity— find structurally similar compounds by Tanimoto similarity (configurable threshold)
- Caps at 200 CIDs per page;offsetpages further, to a ceiling of 10,000. Identifier lookups page over the set already resolved; formula and structure searches widen their bounded upstream request to reach a page, so deep pages cost more upstream
- Optionally hydrate results with properties to avoid a follow-up details call
Get detailed compound information by CID.
- Batches up to 100 CIDs in a single request
- 27 available properties: molecular weight, SMILES, InChIKey, XLogP, TPSA, complexity, stereo counts, and more
- Optionally includes textual descriptions (pharmacology, mechanism, therapeutic use) from PUG View — fetched for the first 10 CIDs of a batch, with the skipped CIDs named in the response
- Optionally includes known synonyms (trade names, systematic names, registry numbers)
- Synonyms and descriptions are paged:synonymOffsetanddescriptionOffsetwindow every compound in the batch at the same position, reaching the entries past a page
- Optionally computes drug-likeness assessment (Lipinski Rule of Five + Veber rules) from fetched properties
- Optionally fetches pharmacological classification (FDA classes, mechanisms of action, MeSH classes, ATC codes)
Get a compound's bioactivity profile from PubChem BioAssay.
- Returns assay outcomes (Active/Inactive/Inconclusive), target info (protein accessions, NCBI Gene IDs), and quantitative values (IC50, EC50, Ki)
- Filter by outcome and/or a specific molecular target (NCBI Gene ID or protein accession)
- Caps at 100 results per page;offsetreaches the rest (well-studied compounds may have thousands)
Get descriptive summaries for four PubChem entity types.
- Assays (AID), genes (Gene ID), proteins (UniProt accession), taxonomy (Tax ID)
- Up to 10 entities per call
- Type-specific field extraction for clean, structured output
Get a compound's interaction data by CID.
- Drug-drug interactions (DrugBank), drug-food interactions, and chemical-target binding/activity (BindingDB, ChEMBL, and others)
- Select which interaction kinds to fetch and cap entries per kind
- Paged per kind: each reports its source-record total and its ownnextOffset, andoffsetreaches the records past a page
- Each entry carries its originating source — coverage is richest for approved drugs
Get a compound's default 3D conformer by CID.
- format="json"returns parsed atoms (element + x/y/z) and bonds for direct reasoning;format="sdf"returns raw V2000 SDF for passthrough to docking or rendering
- maxAtoms/maxBondsbound the atom/bond preview andincludeRawSdfopts into a large raw SDF past the safe line cap;atomCount/bondCountalways report the totals and any capping is disclosed
- Optionally lists alternate conformer IDs
- Returns a typed not-found when PubChem has no computed 3D coordinates (large molecules, mixtures, some salts)
Compound and assay records are also exposed as URI-templated MCP resources, backed by the same client methods as the tools:
- Declarative tool definitions — single file per tool, framework handles registration and validation
- Unified error handling across all tools
- Pluggable auth (none,jwt,oauth)
- Swappable storage backends:in-memory,filesystem,Supabase,Cloudflare KV/R2/D1
- Structured logging with optional OpenTelemetry tracing
- Runs locally (stdio/HTTP) or containerized via Docker
- Rate-limited client for PUG REST and PUG View APIs (5 req/s with automatic queuing)
- Retry with exponential backoff on 5xx errors and network failures
- All tools are read-only and idempotent — no API keys required
A public instance is available athttps://pubchem.caseyjhand.com/mcp— no installation required. Point any MCP client at it via Streamable HTTP:
{ "mcpServers": { "pubchem-mcp-server": { "type": "streamable-http", "url": "https://pubchem.caseyjhand.com/mcp" } } }
Add to your MCP client config (e.g.,claude_desktop_config.json):
{ "mcpServers": { "pubchem-mcp-server": { "type": "stdio", "command": "bunx", "args": ["@cyanheads/pubchem-mcp-server@latest"], "env": { "MCP_TRANSPORT_TYPE": "stdio" } } } }
git clone https://github.com/cyanheads/pubchem-mcp-server.git
No API keys are required — PubChem's API is freely accessible.
bun run rebuild bun run start:stdio # or start:http
bun run devcheck # Lints, formats, type-checks bun run test # Runs test suite
docker build -t pubchem-mcp-server . docker run -p 3010:3010 pubchem-mcp-server
SeeCLAUDE.mdfor development guidelines and architectural rules. The short version:
- Handlers throw, framework catches — notry/catchin tool logic
- Usectx.logfor domain-specific logging
- Register new tools in theindex.tsbarrel file
Issues and pull requests are welcome. Run checks before submitting:
Access and interact with Allen Institute for Neural Dynamics (AIND) metadata directly within your IDE.
A high-performance JavaScript server for the Alliance of Genome Resources (AGR) MCP.
Access the AlphaFold Protein Structure Database for protein structure prediction and analysis.
Interface with Biomart, a biological data query tool, using the pybiomart Python package.
Agent-first rewrite of genomeoncology's BioMCP in TypeScript to provide next-gen biomedical data access for agents.
Perform complex queries on the DANDI Archive, a platform for neurophysiology data.
Interact with DROMA drug-omics association analysis databases using natural language.
A bridge to the Drug Gene Interaction Database (DGIdb) API, enabling AI clients to query drug-gene interaction data.
Query the Materials Project database using the mp_api client. Requires an MP_API_KEY environment variable.
Access PubMed articles through the Entrez API.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





