PubChem MCP Server
Pesquise e acesse informações de compostos químicos do banco de dados PubChem.
Documentação
Servidor MCP PubChem
🧪 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ímicomax_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ímicomax_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ímicosmiles(str, opcional): Notação SMILES do composto químicoformula(str, opcional): Fórmula molecularcid(int, opcional): ID do Composto PubChemmax_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 FastMCPpubchem_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.