
PubChem
STDIOMCP server for searching and accessing chemical compound information from PubChem database.
MCP server for searching and accessing chemical compound information from PubChem database.
🧪 Enable AI assistants to search and access chemical compound information through a simple MCP interface.
The PubChem MCP Server provides a bridge between AI assistants and PubChem's chemical database through the Model Context Protocol (MCP). It allows AI models to search for chemical compounds and access their detailed information in a programmatic way.
🤝 Contribute • 📝 Report Bug
To install PubChem Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client claude --config "{}"
Paste the following into Settings → Cursor Settings → MCP → Add new server:
npx -y @smithery/cli@latest run @JackKuo666/pubchem-mcp-server --client cursor --config "{}"
npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client windsurf --config "{}"
npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client cline --config "{}"
Install using uv:
uv tool install pubchem-mcp-server
For development:
# Clone and set up development environment git clone https://github.com/JackKuo666/PubChem-MCP-Server.git cd PubChem-MCP-Server # Create and activate virtual environment uv venv source .venv/bin/activate uv pip install -r requirements.txt
Start the MCP server:
python pubchem_server.py
Once the server is running, you can use the provided MCP tools in your AI assistant or application. Here are some examples of how to use the tools:
result = await mcp.use_tool("search_pubchem_by_name", { "name": "aspirin", "max_results": 3 }) print(result)
result = await mcp.use_tool("search_pubchem_by_smiles", { "smiles": "CC(=O)OC1=CC=CC=C1C(=O)O", # Aspirin's SMILES "max_results": 2 }) print(result)
result = await mcp.use_tool("get_pubchem_compound_by_cid", { "cid": 2244 # Aspirin's CID }) print(result)
result = await mcp.use_tool("search_pubchem_advanced", { "name": "caffeine", "formula": "C8H10N4O2", "max_results": 2 }) print(result)
These examples demonstrate how to use the four main tools provided by the PubChem MCP Server. Adjust the parameters as needed for your specific use case.
The PubChem MCP Server provides the following tools:
Search for chemical compounds on PubChem using a compound name.
Parameters:
name
(str): Name of the chemical compoundmax_results
(int, optional): Maximum number of results to return (default: 5)Returns: List of dictionaries containing compound information
Search for chemical compounds on PubChem using a SMILES string.
Parameters:
smiles
(str): SMILES notation of the chemical compoundmax_results
(int, optional): Maximum number of results to return (default: 5)Returns: List of dictionaries containing compound information
Fetch detailed information about a chemical compound using its PubChem CID.
Parameters:
cid
(int): PubChem Compound ID (CID)Returns: Dictionary containing compound information
Perform an advanced search for compounds on PubChem.
Parameters:
name
(str, optional): Name of the chemical compoundsmiles
(str, optional): SMILES notation of the chemical compoundformula
(str, optional): Molecular formulacid
(int, optional): PubChem Compound IDmax_results
(int, optional): Maximum number of results to return (default: 5)Returns: List of dictionaries containing compound information
Add this configuration to your claude_desktop_config.json
:
(Mac OS)
{ "mcpServers": { "pubchem": { "command": "python", "args": ["-m", "pubchem-mcp-server"] } } }
(Windows version):
{ "mcpServers": { "pubchem": { "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe", "args": [ "-m", "pubchem-mcp-server" ] } } }
Using with Cline
{ "mcpServers": { "pubchem": { "command": "bash", "args": [ "-c", "source /home/YOUR/PATH/mcp-hub/PubChem-MCP-Server/.venv/bin/activate && python /home/YOUR/PATH/mcp-hub/PubChem-MCP-Server/pubchem_server.py" ], "env": {}, "disabled": false, "autoApprove": [] } } }
After restarting Claude Desktop, the following capabilities will be available:
You can ask Claude to search for chemical compounds using queries like:
Can you search PubChem for information about aspirin?
The search will return basic information about matching compounds including:
• Compound name
• CID (PubChem Compound ID)
• Molecular formula
• Molecular weight
Once you have a CID, you can ask for more details:
Can you show me the details for compound with CID 2244?
This will return:
• IUPAC name
• Molecular formula
• Molecular weight
• SMILES notation
• InChI and InChIKey
• Physical and chemical properties
• Synonyms
Generate and display a 2D or 3D visualization of a chemical compound.
Compare properties and structures of multiple compounds.
Save a compound locally for faster access.
List all saved compounds.
The server will offer specialized prompts to help analyze chemical compounds:
A comprehensive workflow for analyzing chemical compounds that only requires a compound ID:
result = await call_prompt("deep-compound-analysis", { "compound_id": "2244" })
This prompt will include:
pubchem_server.py
: The main MCP server implementation using FastMCPpubchem_search.py
: Contains example code for searching PubChemYou can install the required dependencies using:
pip install mcp pubchempy pandas
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
This tool is for research purposes only. Please respect PubChem's terms of service and use this tool responsibly.