PubChem MCP Server

PubChem MCP Server

By JackKuo666 GitHub

🧪 Enable AI assistants to search and access chemical compound information through a simple MCP interface.

pubchem chemical-information
Overview

What is PubChem MCP Server?

The PubChem MCP Server is a tool that enables AI assistants to search and access chemical compound information through a simple Model Context Protocol (MCP) interface, bridging AI models with PubChem's extensive chemical database.

How to use PubChem MCP Server?

To use the PubChem MCP Server, install it via Smithery or manually, then start the server and utilize the provided MCP tools in your AI assistant or application to search for compounds or retrieve detailed information.

Key features of PubChem MCP Server?

  • 🔎 Compound Search: Query compounds by name, SMILES, or CID.
  • 🧪 Chemical Structure: Access molecular structures and identifiers.
  • 📊 Property Data: Retrieve detailed chemical and physical properties.
  • 🔬 Advanced Search: Combine multiple parameters for precise queries.
  • 🧬 Molecular Visualization: Generate and display molecular structures.
  • 📈 Property Analysis: Compare properties across multiple compounds.
  • 🗃️ Local Storage: Save frequently used compounds for faster access.
  • 📝 Chemistry Prompts: Specialized prompts for chemical analysis.

Use cases of PubChem MCP Server?

  1. Searching for chemical compounds by name or structure.
  2. Retrieving detailed information about specific compounds.
  3. Performing advanced searches with multiple parameters.
  4. Analyzing chemical properties and structures for research purposes.

FAQ from PubChem MCP Server?

  • Can I search for any chemical compound?

Yes! You can search for compounds using their name, SMILES notation, or CID.

  • Is there a limit to the number of results returned?

Yes, you can specify the maximum number of results to return for your queries.

  • What programming language is used for the server?

The PubChem MCP Server is implemented in Python.

Content

PubChem MCP Server

smithery badge

🧪 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

✨ Core Features

  • 🔎 Compound Search: Query PubChem compounds by name, SMILES, or CID ✅
  • 🧪 Chemical Structure: Access molecular structures and identifiers ✅
  • 📊 Property Data: Retrieve detailed chemical and physical properties ✅
  • 🔬 Advanced Search: Combine multiple parameters for precise queries ✅
  • 🧬 Molecular Visualization: Generate and display molecular structures 📝
  • 📈 Property Analysis: Compare properties across multiple compounds 📝
  • 🗃️ Local Storage: Save frequently used compounds for faster access 📝
  • 📝 Chemistry Prompts: Specialized prompts for chemical analysis 📝

🚀 Quick Start

Installing via Smithery

To install PubChem Server for Claude Desktop automatically via Smithery:

Claude

npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client claude --config "{}"

Cursor

Paste the following into Settings → Cursor Settings → MCP → Add new server:

  • Mac/Linux
npx -y @smithery/cli@latest run @JackKuo666/pubchem-mcp-server --client cursor --config "{}" 

Windsurf

npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client windsurf --config "{}"

CLine

npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client cline --config "{}"

Installing Manually

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

📊 Usage

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:

Example 1: Search for compounds by name

result = await mcp.use_tool("search_pubchem_by_name", {
    "name": "aspirin",
    "max_results": 3
})
print(result)

Example 2: Search for compounds by SMILES notation

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)

Example 3: Get detailed information for a specific compound

result = await mcp.use_tool("get_pubchem_compound_by_cid", {
    "cid": 2244  # Aspirin's CID
})
print(result)

Example 4: Perform an advanced search with multiple parameters

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.

🛠 MCP Tools

The PubChem MCP Server provides the following tools:

search_pubchem_by_name

Search for chemical compounds on PubChem using a compound name.

Parameters:

  • name (str): Name of the chemical compound
  • max_results (int, optional): Maximum number of results to return (default: 5)

Returns: List of dictionaries containing compound information

search_pubchem_by_smiles

Search for chemical compounds on PubChem using a SMILES string.

Parameters:

  • smiles (str): SMILES notation of the chemical compound
  • max_results (int, optional): Maximum number of results to return (default: 5)

Returns: List of dictionaries containing compound information

get_pubchem_compound_by_cid

Fetch detailed information about a chemical compound using its PubChem CID.

Parameters:

  • cid (int): PubChem Compound ID (CID)

Returns: Dictionary containing compound information

search_pubchem_advanced

Perform an advanced search for compounds on PubChem.

Parameters:

  • name (str, optional): Name of the chemical compound
  • smiles (str, optional): SMILES notation of the chemical compound
  • formula (str, optional): Molecular formula
  • cid (int, optional): PubChem Compound ID
  • max_results (int, optional): Maximum number of results to return (default: 5)

Returns: List of dictionaries containing compound information

Usage with Claude Desktop

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:

Searching Compounds

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

Getting Compound Details

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

📝 TODO

visualize_compound

Generate and display a 2D or 3D visualization of a chemical compound.

compare_compounds

Compare properties and structures of multiple compounds.

save_compound

Save a compound locally for faster access.

list_saved_compounds

List all saved compounds.

📝 Chemistry Prompts

The server will offer specialized prompts to help analyze chemical compounds:

Compound Analysis Prompt

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:

  • Detailed instructions for using available tools
  • A systematic workflow for compound analysis
  • Comprehensive analysis structure covering:
    • Chemical structure and properties
    • Pharmacological properties
    • Biological activities
    • Applications and uses
    • Safety and toxicity information
    • Related compounds

📁 Project Structure

  • pubchem_server.py: The main MCP server implementation using FastMCP
  • pubchem_search.py: Contains example code for searching PubChem

🔧 Dependencies

  • Python 3.10+
  • FastMCP
  • asyncio
  • logging
  • pubchempy (for PubChem API access)
  • pandas (for data handling)

You can install the required dependencies using:

pip install mcp pubchempy pandas

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License.

⚠️ Disclaimer

This tool is for research purposes only. Please respect PubChem's terms of service and use this tool responsibly.

No tools information available.

-

pubchem mcp
View Details