PubChem MCP Server

Pesquise e acesse informações de compostos químicos do banco de dados PubChem.

Documentação

Servidor MCP PubChem

smithery badge

🧪 Permite que assistentes de IA pesquisem e acessem informações de compostos químicos através de uma interface MCP simples.

O Servidor MCP PubChem fornece uma ponte entre assistentes de IA e o banco de dados químico do PubChem através do Protocolo de Contexto de Modelo (MCP). Ele permite que modelos de IA pesquisem compostos químicos e acessem suas informações detalhadas de forma programática.

🤝 Contribuir • 📝 Relatar Bug

✨ Recursos Principais

  • 🔎 Pesquisa de Compostos: Consultar compostos PubChem por nome, SMILES ou CID ✅
  • 🧪 Estrutura Química: Acessar estruturas moleculares e identificadores ✅
  • 📊 Dados de Propriedades: Recuperar propriedades químicas e físicas detalhadas ✅
  • 🔬 Pesquisa Avançada: Combinar múltiplos parâmetros para consultas precisas ✅
  • 🧬 Visualização Molecular: Gerar e exibir estruturas moleculares 📝
  • 📈 Análise de Propriedades: Comparar propriedades entre múltiplos compostos 📝
  • 🗃️ Armazenamento Local: Salvar compostos frequentemente usados para acesso mais rápido 📝
  • 📝 Prompts de Química: Prompts especializados para análise química 📝

🚀 Início Rápido

Instalando via Smithery

Para instalar o Servidor PubChem para Claude Desktop automaticamente via Smithery:

Claude

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

Cursor

Cole o seguinte em Configurações → Configurações do Cursor → MCP → Adicionar novo servidor:

  • 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 "{}"

Instalação Manual

Instale usando uv:

uv tool install pubchem-mcp-server

Para desenvolvimento:

# 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

📊 Uso

Inicie o servidor MCP:

python pubchem_server.py

Assim que o servidor estiver rodando, você pode usar as ferramentas MCP fornecidas em seu assistente de IA ou aplicativo. Aqui estão alguns exemplos de como usar as ferramentas:

Exemplo 1: Pesquisar compostos por nome

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

Exemplo 2: Pesquisar compostos por notação SMILES

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)

Exemplo 3: Obter informações detalhadas para um composto específico

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

Exemplo 4: Realizar uma pesquisa avançada com múltiplos parâmetros

result = await mcp.use_tool("search_pubchem_advanced", {
    "name": "caffeine",
    "formula": "C8H10N4O2",
    "max_results": 2
})
print(result)

Estes exemplos demonstram como usar as quatro principais ferramentas fornecidas pelo Servidor MCP PubChem. Ajuste os parâmetros conforme necessário para seu caso de uso específico.

🛠 Ferramentas MCP

O Servidor MCP PubChem fornece as seguintes ferramentas:

search_pubchem_by_name

Pesquisar compostos químicos no PubChem usando um nome de composto.

Parâmetros:

  • name (str): Nome do composto químico
  • max_results (int, opcional): Número máximo de resultados a retornar (padrão: 5)

Retorna: Lista de dicionários contendo informações do composto

search_pubchem_by_smiles

Pesquisar compostos químicos no PubChem usando uma string SMILES.

Parâmetros:

  • smiles (str): Notação SMILES do composto químico
  • max_results (int, opcional): Número máximo de resultados a retornar (padrão: 5)

Retorna: Lista de dicionários contendo informações do composto

get_pubchem_compound_by_cid

Buscar informações detalhadas sobre um composto químico usando seu CID PubChem.

Parâmetros:

  • cid (int): ID do Composto PubChem (CID)

Retorna: Dicionário contendo informações do composto

search_pubchem_advanced

Realizar uma pesquisa avançada por compostos no PubChem.

Parâmetros:

  • name (str, opcional): Nome do composto químico
  • smiles (str, opcional): Notação SMILES do composto químico
  • formula (str, opcional): Fórmula molecular
  • cid (int, opcional): ID do Composto PubChem
  • max_results (int, opcional): Número máximo de resultados a retornar (padrão: 5)

Retorna: Lista de dicionários contendo informações do composto

Uso com Claude Desktop

Adicione esta configuração ao seu claude_desktop_config.json:

(Mac OS)

{
  "mcpServers": {
    "pubchem": {
      "command": "python",
      "args": ["-m", "pubchem-mcp-server"]
      }
  }
}

(versão Windows):

{
  "mcpServers": {
    "pubchem": {
      "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
      "args": [
        "-m",
        "pubchem-mcp-server"
      ]
    }
  }
}

Usando com 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": []
    }
  }
}

Após reiniciar o Claude Desktop, as seguintes funcionalidades estarão disponíveis:

Pesquisando Compostos

Você pode pedir ao Claude para pesquisar compostos químicos usando consultas como:

Can you search PubChem for information about aspirin?

A pesquisa retornará informações básicas sobre os compostos correspondentes, incluindo:

• Nome do composto

• CID (ID do Composto PubChem)

• Fórmula molecular

• Peso molecular

Obtendo Detalhes do Composto

Assim que você tiver um CID, você pode pedir mais detalhes:

Can you show me the details for compound with CID 2244?

Isso retornará:

• Nome IUPAC

• Fórmula molecular

• Peso molecular

• Notação SMILES

• InChI e InChIKey

• Propriedades físicas e químicas

• Sinônimos

📝 TODO

visualize_compound

Gerar e exibir uma visualização 2D ou 3D de um composto químico.

compare_compounds

Comparar propriedades e estruturas de múltiplos compostos.

save_compound

Salvar um composto localmente para acesso mais rápido.

list_saved_compounds

Listar todos os compostos salvos.

📝 Prompts de Química

O servidor oferecerá prompts especializados para ajudar a analisar compostos químicos:

Prompt de Análise de Compostos

Um fluxo de trabalho abrangente para analisar compostos químicos que requer apenas um ID de composto:

result = await call_prompt("deep-compound-analysis", {
    "compound_id": "2244"
})

Este prompt incluirá:

  • Instruções detalhadas para usar as ferramentas disponíveis
  • Um fluxo de trabalho sistemático para análise de compostos
  • Estrutura de análise abrangente cobrindo:
    • Estrutura química e propriedades
    • Propriedades farmacológicas
    • Atividades biológicas
    • Aplicações e usos
    • Informações de segurança e toxicidade
    • Compostos relacionados

📁 Estrutura do Projeto

  • pubchem_server.py: A implementação principal do servidor MCP usando FastMCP
  • pubchem_search.py: Contém código de exemplo para pesquisar no PubChem

🔧 Dependências

  • Python 3.10+
  • FastMCP
  • asyncio
  • logging
  • pubchempy (para acesso à API PubChem)
  • pandas (para manipulação de dados)

Você pode instalar as dependências necessárias usando:

pip install mcp pubchempy pandas

🤝 Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

📄 Licença

Este projeto é licenciado sob a Licença MIT.

⚠️ Aviso Legal

Esta ferramenta é apenas para fins de pesquisa. Respeite os termos de serviço do PubChem e use esta ferramenta com responsabilidade.