accueil / serveurs / Recherche & Web / io.github.cyanheads/pubchem-mcp-server
io.github.cyanheads/pubchem-mcp-server
serveur MCP (Model Context Protocol) · pubchem-mcp-server 0.7.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.cyanheads/pubchem-mcp-server est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.cyanheads/pubchem-mcp-server » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 10 outils
- pubchem_get_bioactivity≈ 2399 tokens
Get a compound's bioactivity profile: which assays tested it, activity outcomes (Active/Inactive/Inconclusive), target identifiers (NCBI Gene ID, UniProt/GenBank accession), and quantitative values (IC50, EC50, Ki, etc.). Filter by outcome and/or a specific molecular target (NCBI Gene ID or protein accession) to focus the profile — e.g. "is this compound active against target T?".
Paramètres, retour & exemple (6)
Paramètrescid· integer · requis
PubChem Compound ID. Resolve from name/SMILES with pubchem_search_compounds.offset· integer · optionnel
Zero-based index of the first assay to return, applied after the outcome and target filters. Pass the nextOffset from a previous call to read the following page. Default: 0.maxResults· integer · optionnel
Max assay results to return per page. The per-call cap is 100: a larger value (up to 1000) returns a page of 100 and is reported in cappedInputs. Well-studied compounds have thousands of records; use offset to reach the ones past this page. Default: 20.targetGeneId· integer · optionnel
Filter to assays against this NCBI Gene ID (1 to 2147483647), including assays recorded only under a protein accession this compound's assay table pairs with the Gene ID (e.g. 5742 also reaches rows carrying only P23219 when another row pairs the two). Obtain Gene IDs from pubchem_search_assays or the targetGeneId field of an unfiltered result here. Combine with outcomeFilter="active" to answer "is this compound active against target T?".outcomeFilter· string · optionnel · active | inactive | all
Filter by activity outcome against each assay's reported target: the target a target filter matched, else the first target the assay lists. For a multi-target assay, outcomes against its other targets (in otherTargets) do not count. "active" keeps assays where that outcome is Active — most useful for understanding biological profile. Default: "all".targetAccession· string · optionnel
Filter to assays against this target protein accession (UniProt/RefSeq/GenBank/PDB chain), e.g. "P35354", including assays recorded only under a Gene ID or another accession this compound's assay table pairs with it. Uppercased before matching; a PDB chain ID (the "A" in "1ZHH_A") is kept as given. With targetGeneId, both must name the same target — when the table ties them to different targets, nothing matches. Obtain accessions from pubchem_search_assays or the targetAccession field of an unfiltered result here.
Exemple d'appel{"name": "pubchem_get_bioactivity", "arguments": {"cid": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "cid": 1, "error": {}, "shown": 1, "notice": "texte", "offset": 1, "results": [], "truncated": true, "nextOffset": 1, "activeCount": 1, "totalAssays": 1, "cappedInputs": []}} - pubchem_get_compound_3d_structure≈ 1594 tokens
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 lists alternate conformer IDs. Not every compound has computed 3D coordinates (large molecules, mixtures, and some salts do not).
Paramètres, retour & exemple (6)
Paramètrescid· integer · requis
PubChem Compound ID. Resolve from name/SMILES with pubchem_search_compounds.format· string · optionnel · sdf | json
Output format. "json" (default) returns parsed atoms and bonds. "sdf" returns the raw V2000 SDF text for passthrough to other tools.maxAtoms· integer · optionnel
Cap the atoms returned in the format="json" preview. atomCount always reports the full total; omitted rows are disclosed via the truncated/shownAtoms enrichment. Defaults to the first 200 atoms.maxBonds· integer · optionnel
Cap the bonds returned in the format="json" preview. bondCount always reports the full total; omitted rows are disclosed via the truncated/shownBonds enrichment. Defaults to the first 200 bonds.includeRawSdf· boolean · optionnel
For format="sdf", return the complete raw V2000 SDF even when it exceeds the safe line cap. Default false: an SDF longer than 500 lines is line-capped with disclosure. No effect when format="json".includeAlternateConformerIds· boolean · optionnel
List the IDs of additional computed conformers beyond the default. Slower than the default response. Default: false.
Exemple d'appel{"name": "pubchem_get_compound_3d_structure", "arguments": {"cid": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cid": 1, "sdf": "texte", "atoms": [], "bonds": [], "error": {}, "notice": "texte", "atomCap": 1, "bondCap": 1, "atomCount": 1, "bondCount": 1, "truncated": true, "shownAtoms": 1}} - pubchem_get_compound_details≈ 4076 tokens
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 rules), and/or pharmacological classification (FDA classes, MeSH classes, ATC codes). Fetches up to 100 CIDs per call; CIDs past that are returned in unprocessed for a follow-up call.
Paramètres, retour & exemple (10)
Paramètrescids· array · requis
PubChem Compound IDs to fetch. The per-call cap is 100: the first 100 are fetched, and any past that (up to 1000 in all) are returned in unprocessed, in input order, and reported in cappedInputs. Resolve from names/SMILES with pubchem_search_compounds.properties· array · optionnel
Properties to retrieve. Defaults to a core set: MolecularFormula, MolecularWeight, IUPACName, CanonicalSMILES, IsomericSMILES, InChIKey, XLogP, TPSA, HBondDonorCount, HBondAcceptorCount, RotatableBondCount, HeavyAtomCount, Charge, Complexity.maxSynonyms· integer · optionnel
Max synonyms returned per compound per page. The per-call cap is 100: a larger value (up to 1000) returns 100 per compound and is reported in cappedInputs. PubChem lists hundreds for common drugs; use synonymOffset to reach the ones past this page. Default: 20.synonymOffset· integer · optionnel
Zero-based index of the first synonym to return within each compound's synonym list. The same offset is applied to every compound in the batch. Pass the nextSynonymOffset from a previous call to read the following page. Default: 0.includeSynonyms· boolean · optionnel
Fetch known names and synonyms (trade names, systematic names, registry numbers), paged via synonymOffset/maxSynonyms. Fetched for every found CID in the batch. Slower for large CID lists.maxDescriptions· integer · optionnel
Max number of distinct description entries per compound per page. The per-call cap is 20: a larger value (up to 1000) returns 20 per compound and is reported in cappedInputs. PubChem returns near-duplicate summaries from many depositors; duplicates are collapsed before this cap applies. Default: 3.descriptionOffset· integer · optionnel
Zero-based index of the first description to return within each compound's description list. The same offset is applied to every compound in the batch. Pass the nextDescriptionOffset from a previous call to read the following page. Default: 0.includeDescription· boolean · optionnel
Include textual descriptions (pharmacology, mechanism, therapeutic use) attributed by source. Well-studied compounds have many overlapping summaries — paged via descriptionOffset/maxDescriptions. Fetched only for the first 10 CIDs in the batch; remaining CIDs return without descriptions and are listed in the response's skippedCids.includeDrugLikeness· boolean · optionnel
Compute drug-likeness assessment: Lipinski Rule of Five (MW, XLogP, HBD, HBA) and Veber rules (TPSA, rotatable bonds). Computed from the returned properties, so it adds no latency.includeClassification· boolean · optionnel
Include pharmacological classification: FDA Established Pharmacologic Classes, mechanisms of action, MeSH classes, and ATC codes. Fetched only for the first 10 CIDs in the batch; remaining CIDs return without classification and are listed in the response's skippedCids.
Exemple d'appel{"name": "pubchem_get_compound_details", "arguments": {"cids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "notice": "texte", "compounds": [], "truncated": true, "skippedCids": [], "unprocessed": [], "cappedInputs": [], "enrichedCids": [], "synonymOffset": 1, "descriptionOffset": 1, "nextSynonymOffset": 1, "nextDescriptionOffset": 1}} - pubchem_get_compound_image≈ 599 tokens
Fetch a 2D structure diagram (PNG image) for a compound by CID.
Paramètres, retour & exemple (2)
Paramètrescid· integer · requis
PubChem Compound ID. Resolve from name/SMILES with pubchem_search_compounds.size· string · optionnel · small | large
Image size: "small" (100x100) or "large" (300x300). Default: "large".
Exemple d'appel{"name": "pubchem_get_compound_image", "arguments": {"cid": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cid": 1, "error": {}, "width": 1, "height": 1, "mimeType": "texte", "imageBase64": "texte"}} - pubchem_get_compound_interactions≈ 1990 tokens
Get a compound's interaction data: drug-drug interactions (DrugBank), drug-food interactions, and chemical-target interactions (binding/activity from BindingDB, ChEMBL, and others). Each entry carries its originating source. Results are paged per kind, with the source-record total and the next offset reported for each. Richest for approved drugs; many compounds have no deposited interaction records. Drug-drug and target interactions come from PubChem's SDQ service, which can refuse automated requests — a refused kind is reported in failedKinds while the others still return; per-target activity is also available from pubchem_get_bioactivity.
Paramètres, retour & exemple (4)
Paramètrescid· integer · requis
PubChem Compound ID. Resolve from name/SMILES with pubchem_search_compounds.kinds· array · optionnel
Interaction kinds to fetch. "drug-drug" (interactions with other drugs), "drug-food" (dietary interactions), "target" (binding/activity against molecular targets). "drug-drug" and "target" come from PubChem's SDQ service, which can refuse automated requests; "drug-food" comes from PUG View. Per-target activity is also available from pubchem_get_bioactivity. Default: ["drug-drug"].offset· integer · optionnel
Zero-based start position within each requested kind, counted in source records rather than returned entries. The same offset applies to every kind in the call, and the kinds advance at different rates — when paging past the first page, request one kind per call and pass that kind's nextOffset. Default: 0.maxEntries· integer · optionnel
Max entries per kind per page. The per-call cap is 50: a larger value (up to 1000) reads a page of 50 per kind and is reported in cappedInputs. Well-studied drugs have a long tail of interactions; use offset to reach the ones past this page. Default: 10.
Exemple d'appel{"name": "pubchem_get_compound_interactions", "arguments": {"cid": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cid": 1, "error": {}, "notice": "texte", "offset": 1, "paging": [], "entries": [], "truncated": true, "nextOffset": 1, "failedKinds": "texte", "cappedInputs": [], "returnedCount": 1, "requestedKinds": "texte"}} - pubchem_get_compound_safety≈ 2497 tokens
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 classification — its signal word, pictograms, H-codes with ECHA notifier agreement percentages, and notification counts — since sources often disagree. Reports ECHA "Not Classified" verdicts as their own status.
Paramètres, retour & exemple (1)
Paramètrescids· array · requis
PubChem Compound IDs to fetch safety data for. The per-call cap is 25: the first 25 are looked up, and any past that (up to 1000 in all) are returned in unprocessed, in input order, and reported in cappedInputs. Resolve from names/SMILES with pubchem_search_compounds.
Exemple d'appel{"name": "pubchem_get_compound_safety", "arguments": {"cids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "notice": "texte", "results": [], "unprocessed": [], "cappedInputs": [], "withDataCount": 1, "requestedCount": 1}} - pubchem_get_compound_xrefs≈ 1494 tokens
Get external database cross-references for a compound: PubMed citations, patent IDs, gene/protein associations, registry numbers, and taxonomy IDs. Results are paged per type — capped at maxPerType with the total count reported; reach the IDs past a page with offset. PubMed IDs come highest (most recently assigned) first and the other numeric types in ascending order; string IDs keep PubChem's order.
Paramètres, retour & exemple (4)
Paramètrescid· integer · requis
PubChem Compound ID. Resolve from name/SMILES with pubchem_search_compounds.offset· integer · optionnel
Zero-based index of the first ID to return within each xref type. The same offset is applied to every requested type. Pass the nextOffset from a previous call to read the following page. Default: 0.xrefTypes· array · requis
Cross-reference types to retrieve. String IDs: RegistryID (DSSTox/EPA registry numbers), RN (CAS numbers), PatentID. Numeric IDs: PubMedID, GeneID (NCBI Gene), ProteinGI (legacy NCBI Protein GI), TaxonomyID.maxPerType· integer · optionnel
Max IDs to return per xref type per page. The per-call cap is 500: a larger value (up to 1000) returns 500 per type and is reported in cappedInputs. A compound may have thousands of PubMed references; use offset to reach the ones past this page. Total count always reported. Default: 50.
Exemple d'appel{"name": "pubchem_get_compound_xrefs", "arguments": {"cid": 1, "xrefTypes": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cid": 1, "error": {}, "xrefs": [], "notice": "texte", "offset": 1, "truncated": true, "nextOffset": 1, "cappedInputs": []}} - pubchem_get_summary≈ 2086 tokens
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.
Paramètres, retour & exemple (2)
ParamètresentityType· string · requis · assay | gene | protein | taxonomy
Entity type. Determines ID format and returned fields.identifiers· array · requis
Entity identifiers. A comma-joined string is split into one identifier per piece, with whitespace trimmed. The per-call cap is 10 pieces: the first 10 are looked up, and any past that are returned in unprocessed, in input order, and reported in cappedInputs. More than 1000 pieces in all fails the call. ID form depends on entityType: - assay: AID, a positive integer, e.g. ["1000"] - gene: NCBI Gene ID, a positive integer, e.g. ["1956"] - protein: UniProt accession, e.g. ["P00533"] - taxonomy: NCBI Taxonomy ID, a positive integer, e.g. ["9606"] For assay, gene, and taxonomy, a piece that is not a positive integer written in digits is marked invalid and not looked up.
Exemple d'appel{"name": "pubchem_get_summary", "arguments": {"entityType": "assay", "identifiers": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "notice": "texte", "summaries": [], "entityType": "texte", "foundCount": 1, "unprocessed": [], "cappedInputs": [], "requestedCount": 1}} - pubchem_search_assays≈ 1309 tokens
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.
Paramètres, retour & exemple (4)
Paramètresoffset· integer · optionnel
Zero-based index of the first AID to return. Pass the nextOffset from a previous call to read the following page. Default: 0.maxResults· integer · optionnel
Max AIDs to return per page. The per-call cap is 200: a larger value (up to 1000) returns a page of 200 and is reported in cappedInputs. Popular targets may have thousands of assays; use offset to reach the ones past this page. Default: 50.targetType· string · requis · genesymbol | proteinname | geneid | proteinaccession
Target identifier type. "genesymbol" and "proteinname" accept text names. "geneid" accepts NCBI Gene IDs. "proteinaccession" accepts UniProt accessions.targetQuery· string · requis
Target identifier. Examples: "EGFR" (genesymbol), "Epidermal growth factor receptor" (proteinname), "1956" (geneid), "P00533" (proteinaccession; uppercased before lookup, except a PDB chain ID such as the "A" in "1ZHH_A", which is kept as given).
Exemple d'appel{"name": "pubchem_search_assays", "arguments": {"targetType": "genesymbol", "targetQuery": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "aids": [], "error": {}, "shown": 1, "notice": "texte", "offset": 1, "truncated": true, "nextOffset": 1, "targetType": "texte", "totalFound": 1, "targetQuery": "texte", "cappedInputs": []}} - pubchem_search_compounds≈ 2888 tokens
Search PubChem for chemical compounds by identifier (name, SMILES, 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 a page of CIDs — reach matches past maxResults with offset. Optionally hydrate results with properties to avoid a follow-up pubchem_get_compound_details call.
Paramètres, retour & exemple (13)
Paramètresaid· integer · optionnel
Required for assay search. PubChem Assay ID (AID) whose compounds to list, from 1 to 2147483647, e.g. 1000. Find AIDs for a biological target with pubchem_search_assays.query· string · optionnel
Required for substructure/superstructure/similarity searches. A SMILES string (e.g. "CC(=O)O") or PubChem CID as a string from 1 to 2147483647 (e.g. "2244").offset· integer · optionnel
Zero-based index of the first CID to return. Pass the nextOffset from a previous call to read the following page. Identifier lookups resolve every match up front, so paging them is free, and assay searches fetch only the requested page; formula, substructure, superstructure, and similarity searches have to ask PubChem for offset + maxResults records to reach a page, so deep pages cost progressively more upstream — hence the 10000 ceiling. Default: 0.formula· string · optionnel
Required for formula search. Molecular formula in Hill notation (e.g. "C6H12O6", "CaH2O2").queryType· string · optionnel · smiles | cid
Required for structure/similarity searches. Format of the query: "smiles" or "cid".threshold· number · optionnel
Similarity search only. Minimum Tanimoto similarity (70-100). 90+ for close analogs, 70-80 for scaffold hops. Default: 90.activeOnly· boolean · optionnel
Assay search only. When true (default), lists only the compounds the assay marked active; false lists every compound it tested.maxResults· integer · optionnel
Maximum CIDs to return per page. The per-call cap is 200: a larger value (up to 1000) returns a page of 200 and is reported in cappedInputs. Use offset to reach matches past this page. Default: 20.properties· array · optionnel
Optional: fetch these properties for each result, avoiding a follow-up details call. E.g. ["MolecularFormula", "MolecularWeight", "CanonicalSMILES"].searchType· string · requis · identifier | formula | substructure | superstructure | similarity | assay
Search strategy; each mode needs its own fields. "identifier": name/SMILES/InChIKey lookup — requires identifierType and identifiers. "formula": molecular formula — requires formula. "substructure": find compounds containing the query as a substructure. "superstructure": find compounds that are themselves substructures of the query. "similarity": 2D Tanimoto similarity to the query. substructure, superstructure, and similarity require query and queryType. "assay": compounds tested in a PubChem bioassay — requires aid; activeOnly (default true) keeps only the compounds the assay marked active.identifiers· array · optionnel
Required for identifier search. Array of identifiers to resolve. The per-call cap is 25: the first 25 are looked up, and any past that (up to 1000 in all) are returned in unprocessed, in input order, and reported in cappedInputs. Examples: ["aspirin", "ibuprofen"] for name, ["CC(=O)OC1=CC=CC=C1C(=O)O"] for SMILES, ["BSYNRYMUTXBXSQ-UHFFFAOYSA-N"] for inchikey (27-char block format; uppercased before lookup, any case accepted).identifierType· string · optionnel · name | smiles | inchikey
Required for identifier search. Type of chemical identifier: "name", "smiles", or "inchikey".allowOtherElements· boolean · optionnel
Formula search only. When true, includes compounds with additional elements beyond the formula.
Exemple d'appel{"name": "pubchem_search_compounds", "arguments": {"searchType": "identifier"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "error": {}, "shown": 1, "notice": "texte", "offset": 1, "results": [], "truncated": true, "activeOnly": true, "nextOffset": 1, "searchType": "texte", "totalFound": 1, "unprocessed": []}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».