
Pubchem Mcp Server
Wraps the PubChem REST APIs to let Claude search chemical compounds, pull properties, safety data, bioactivity profiles, and cross-references without leaving the conversation. You get 10 tools covering identifier lookup (name, SMILES, InChIKey), substructure and similarity searches, GHS hazard classification, drug interaction data, and BioAssay queries. Results include molecular descriptors, 2D/3D structures, pharmacological classifications, and links to external databases like DrugBank and ChEMBL. Ships with both stdio and a public HTTP endpoint at pubchem.caseyjhand.com, so you can skip the local install. Built on the author's mcp-ts-core framework with rate limiting and retry logic baked in. Useful for chemistry research, drug discovery workflows, or any task that needs programmatic access to one of the largest open chemical databases.
- GitHub stars
- 13
- tools
- 10
- transport
- STDIO, HTTP
- env vars
- 7
- last updated
- Nov 11, 2026
Install
From registry metadata$ npx add-mcp https://pubchem.caseyjhand.com/mcp --name pubchemRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http pubchem https://pubchem.caseyjhand.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 10 toolsVerified live against the running server on Nov 6, 2026.
pubchem_search_compoundsSearch PubChem for chemical compounds by identifier (name, SMILES, InChI, or InChIKey, up to 25 per call), molecular formula in Hill notation, substructure or superstructure containment, 2D Tanimoto similarity, or the compounds a bioassay (AID) found active or tested. Returns...13 params
Search PubChem for chemical compounds by identifier (name, SMILES, InChI, or InChIKey, up to 25 per call), molecular formula in Hill notation, substructure or superstructure containment, 2D Tanimoto similarity, or the compounds a bioassay (AID) found active or tested. Returns...
activeOnlybooleanaidintegerallowOtherElementsbooleanformulastringidentifierTypestringname · smiles · inchi · inchikeyidentifiersarraymaxResultsintegeroffsetintegerpropertiesarrayquerystringqueryTypestringsmiles · cidsearchType*stringidentifier · formula · substructure · superstructure · similarity · assaythresholdnumberpubchem_get_compound_detailsGet detailed compound information by CID. Returns physicochemical properties (molecular weight, SMILES, InChIKey, XLogP, TPSA, etc.), optionally with a textual description (pharmacology, mechanism, therapeutic use), known synonyms, drug-likeness assessment (Lipinski/Veber rule...10 params
Get detailed compound information by CID. Returns physicochemical properties (molecular weight, SMILES, InChIKey, XLogP, TPSA, etc.), optionally with a textual description (pharmacology, mechanism, therapeutic use), known synonyms, drug-likeness assessment (Lipinski/Veber rule...
cids*arraydescriptionOffsetintegerincludeClassificationbooleanincludeDescriptionbooleanincludeDrugLikenessbooleanincludeSynonymsbooleanmaxDescriptionsintegermaxSynonymsintegerpropertiesarraysynonymOffsetintegerpubchem_get_compound_imageFetch a 2D structure diagram (PNG image) for a compound by CID.2 params
Fetch a 2D structure diagram (PNG image) for a compound by CID.
cid*integersizestringsmall · largedefault: largepubchem_get_compound_3d_structureGet a compound's default 3D conformer — atomic coordinates and bonds — for one CID. format="json" (default) returns atoms and bonds parsed into structured fields; format="sdf" returns the raw V2000 SDF text for passthrough to docking, rendering, or conformer tools. Optionally...6 params
Get a compound's default 3D conformer — atomic coordinates and bonds — for one CID. format="json" (default) returns atoms and bonds parsed into structured fields; format="sdf" returns the raw V2000 SDF text for passthrough to docking, rendering, or conformer tools. Optionally...
cid*integerformatstringsdf · jsondefault: jsonincludeAlternateConformerIdsbooleanincludeRawSdfbooleanmaxAtomsintegermaxBondsintegerpubchem_get_compound_xrefsGet external database cross-references for a compound: PubMed citations, patent IDs, gene associations, CAS and EC numbers with the number of source records that deposited each, other registry numbers, and taxonomy IDs. Results are paged per type — capped at maxPerType with th...4 params
Get external database cross-references for a compound: PubMed citations, patent IDs, gene associations, CAS and EC numbers with the number of source records that deposited each, other registry numbers, and taxonomy IDs. Results are paged per type — capped at maxPerType with th...
cid*integermaxPerTypeintegeroffsetintegerxrefTypes*arraypubchem_get_compound_safetyGet GHS (Globally Harmonized System) hazard classification and safety data for one or more compounds by CID. Returns signal word, pictograms, hazard statements (H-codes), and precautionary statements (P-codes) per compound, merged across sources, plus each source's own classif...1 params
Get GHS (Globally Harmonized System) hazard classification and safety data for one or more compounds by CID. Returns signal word, pictograms, hazard statements (H-codes), and precautionary statements (P-codes) per compound, merged across sources, plus each source's own classif...
cids*arraypubchem_get_bioactivityGet a compound's bioactivity profile: which assays tested it, activity outcomes (Active/Inactive/Inconclusive), target identifiers (NCBI Gene ID, UniProt/GenBank accession), quantitative values (IC50, EC50, Ki, etc.), each assay's type (confirmatory, screening, summary, other)...7 params
Get a compound's bioactivity profile: which assays tested it, activity outcomes (Active/Inactive/Inconclusive), target identifiers (NCBI Gene ID, UniProt/GenBank accession), quantitative values (IC50, EC50, Ki, etc.), each assay's type (confirmatory, screening, summary, other)...
assayTypearraycid*integermaxResultsintegeroffsetintegeroutcomeFilterstringactive · inactive · alldefault: alltargetAccessionstringtargetGeneIdintegerpubchem_get_compound_interactionsGet a compound's interaction data: drug-food interactions, and the molecular targets its bioassays name — one entry per target as kinds defines it, with its assay counts by outcome and most potent active value, Active targets first, most potent first. Each entry carries its or...4 params
Get a compound's interaction data: drug-food interactions, and the molecular targets its bioassays name — one entry per target as kinds defines it, with its assay counts by outcome and most potent active value, Active targets first, most potent first. Each entry carries its or...
cid*integerkindsarraymaxEntriesintegeroffsetintegerpubchem_search_assaysFind PubChem bioassays associated with a biological target. Search by gene symbol (e.g. "EGFR"), protein name, NCBI Gene ID, or UniProt accession. Returns a page of assay IDs (AIDs) — page past maxResults with offset — which can be explored further with pubchem_get_summary.4 params
Find PubChem bioassays associated with a biological target. Search by gene symbol (e.g. "EGFR"), protein name, NCBI Gene ID, or UniProt accession. Returns a page of assay IDs (AIDs) — page past maxResults with offset — which can be explored further with pubchem_get_summary.
maxResultsintegeroffsetintegertargetQuery*stringtargetType*stringgenesymbol · proteinname · geneid · proteinaccessionpubchem_get_summaryGet descriptive summaries for PubChem entities by ID. Supports assays (AID), genes (Gene ID), proteins (UniProt accession), and taxonomy (Tax ID). Up to 10 per call; identifiers past that are returned in unprocessed for a follow-up call.2 params
Get descriptive summaries for PubChem entities by ID. Supports assays (AID), genes (Gene ID), proteins (UniProt accession), and taxonomy (Tax ID). Up to 10 per call; identifiers past that are returned in unprocessed for a follow-up call.
entityType*stringassay · gene · protein · taxonomyidentifiers*arraySponsors
Configuration
MCP_LOG_LEVELdefault: infoSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
MCP_TRANSPORT_TYPEdefault: httpSelects the HTTP transport.
MCP_SESSION_MODEdefault: statelessHTTP session mode: stateless, stateful, or auto. Stateless is sufficient for PubChem; auto resolves to stateful.
MCP_HTTP_HOSTdefault: 127.0.0.1The hostname for the HTTP server.
MCP_HTTP_PORTdefault: 3010The port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHdefault: /mcpThe endpoint path for the MCP server.
MCP_AUTH_MODEdefault: noneAuthentication mode to use: 'none', 'jwt', or 'oauth'.
Readme
@cyanheads/pubchem-mcp-server
Search the PubChem chemical database for compounds, properties, safety data, bioactivity, cross-references, and entity summaries via MCP. STDIO or Streamable HTTP.
Details
- Repository
- github.com/cyanheads/pubchem-mcp-server
- Categories
- Search & Web Crawling, Data & Analytics
- Package
@cyanheads/pubchem-mcp-server- Transport
- STDIO, HTTP
- Registry
- MCP registry, active
- Resources
- 1
- Tools verified
- Nov 6, 2026
More from cyanheads
- Gutenberg Mcp Server6
- Libofcongress Mcp Server6
- Orcid Mcp Server6
- Protein Mcp Server6
- Wikipedia Mcp Server6
- Cdc Health Mcp Server5
- Usaspending Mcp Server5
- Openstreetmap Mcp Server9
- Biorxiv Mcp Server4
- Brapi Mcp Server4
- Courtlistener Mcp Server4
- Crossref Mcp Server4
- Internet Archive Mcp Server4
- Met Museum Mcp Server4
- Noaa Spaceweather Mcp Server4
- Openfda Mcp Server4
- Openlibrary Mcp Server4
- Un Comtrade Mcp Server4
- Aviation Weather Mcp Server3
- Devops Status Mcp Server3
- Earthquake Mcp Server3
- Eia Energy Mcp Server3
- Ensembl Mcp Server3
- Noaa Marine Mcp Server3