PubChem MCP Server
Busca y accede a información de compuestos químicos desde la base de datos PubChem.
Documentación
Servidor MCP de PubChem
🧪 Permite que los asistentes de IA busquen y accedan a información de compuestos químicos a través de una interfaz MCP sencilla.
El Servidor MCP de PubChem proporciona un puente entre los asistentes de IA y la base de datos química de PubChem mediante el Protocolo de Contexto de Modelo (MCP). Permite que los modelos de IA busquen compuestos químicos y accedan a su información detallada de forma programática.
🤝 Contribuir • 📝 Reportar un error
✨ Características principales
- 🔎 Búsqueda de compuestos: Consulta compuestos de PubChem por nombre, SMILES o CID ✅
- 🧪 Estructura química: Accede a estructuras moleculares e identificadores ✅
- 📊 Datos de propiedades: Recupera propiedades químicas y físicas detalladas ✅
- 🔬 Búsqueda avanzada: Combina múltiples parámetros para consultas precisas ✅
- 🧬 Visualización molecular: Genera y muestra estructuras moleculares 📝
- 📈 Análisis de propiedades: Compara propiedades entre múltiples compuestos 📝
- 🗃️ Almacenamiento local: Guarda compuestos de uso frecuente para un acceso más rápido 📝
- 📝 Indicaciones de química: Indicaciones especializadas para análisis químico 📝
🚀 Inicio rápido
Instalación mediante Smithery
Para instalar PubChem Server para Claude Desktop automáticamente a través de Smithery:
Claude
npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client claude --config "{}"
Cursor
Pega lo siguiente en Configuración → Configuración de Cursor → MCP → Añadir nuevo 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 "{}"
Instalación manual
Instala usando uv:
uv tool install pubchem-mcp-server
Para desarrollo:
# 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
Inicia el servidor MCP:
python pubchem_server.py
Una vez que el servidor esté en ejecución, puedes usar las herramientas MCP proporcionadas en tu asistente de IA o aplicación. Aquí tienes algunos ejemplos de cómo usar las herramientas:
Ejemplo 1: Buscar compuestos por nombre
result = await mcp.use_tool("search_pubchem_by_name", {
"name": "aspirin",
"max_results": 3
})
print(result)
Ejemplo 2: Buscar compuestos por notación 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)
Ejemplo 3: Obtener información detallada de un compuesto específico
result = await mcp.use_tool("get_pubchem_compound_by_cid", {
"cid": 2244 # Aspirin's CID
})
print(result)
Ejemplo 4: Realizar una búsqueda avanzada con múltiples parámetros
result = await mcp.use_tool("search_pubchem_advanced", {
"name": "caffeine",
"formula": "C8H10N4O2",
"max_results": 2
})
print(result)
Estos ejemplos demuestran cómo usar las cuatro herramientas principales proporcionadas por el Servidor MCP de PubChem. Ajusta los parámetros según sea necesario para tu caso de uso específico.
🛠 Herramientas MCP
El Servidor MCP de PubChem proporciona las siguientes herramientas:
search_pubchem_by_name
Busca compuestos químicos en PubChem usando un nombre de compuesto.
Parámetros:
name(str): Nombre del compuesto químicomax_results(int, opcional): Número máximo de resultados a devolver (predeterminado: 5)
Devuelve: Lista de diccionarios que contienen información del compuesto
search_pubchem_by_smiles
Busca compuestos químicos en PubChem usando una cadena SMILES.
Parámetros:
smiles(str): Notación SMILES del compuesto químicomax_results(int, opcional): Número máximo de resultados a devolver (predeterminado: 5)
Devuelve: Lista de diccionarios que contienen información del compuesto
get_pubchem_compound_by_cid
Obtiene información detallada sobre un compuesto químico usando su CID de PubChem.
Parámetros:
cid(int): ID de compuesto de PubChem (CID)
Devuelve: Diccionario que contiene información del compuesto
search_pubchem_advanced
Realiza una búsqueda avanzada de compuestos en PubChem.
Parámetros:
name(str, opcional): Nombre del compuesto químicosmiles(str, opcional): Notación SMILES del compuesto químicoformula(str, opcional): Fórmula molecularcid(int, opcional): ID de compuesto de PubChemmax_results(int, opcional): Número máximo de resultados a devolver (predeterminado: 5)
Devuelve: Lista de diccionarios que contienen información del compuesto
Uso con Claude Desktop
Añade esta configuración a tu claude_desktop_config.json:
(Mac OS)
{
"mcpServers": {
"pubchem": {
"command": "python",
"args": ["-m", "pubchem-mcp-server"]
}
}
}
(Versión de Windows):
{
"mcpServers": {
"pubchem": {
"command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
"args": [
"-m",
"pubchem-mcp-server"
]
}
}
}
Uso con 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": []
}
}
}
Después de reiniciar Claude Desktop, estarán disponibles las siguientes capacidades:
Búsqueda de compuestos
Puedes pedirle a Claude que busque compuestos químicos usando consultas como:
Can you search PubChem for information about aspirin?
La búsqueda devolverá información básica sobre los compuestos coincidentes, incluyendo:
• Nombre del compuesto
• CID (ID de compuesto de PubChem)
• Fórmula molecular
• Peso molecular
Obtención de detalles del compuesto
Una vez que tengas un CID, puedes pedir más detalles:
Can you show me the details for compound with CID 2244?
Esto devolverá:
• Nombre IUPAC
• Fórmula molecular
• Peso molecular
• Notación SMILES
• InChI e InChIKey
• Propiedades físicas y químicas
• Sinónimos
📝 PENDIENTE
visualize_compound
Genera y muestra una visualización 2D o 3D de un compuesto químico.
compare_compounds
Compara propiedades y estructuras de múltiples compuestos.
save_compound
Guarda un compuesto localmente para un acceso más rápido.
list_saved_compounds
Lista todos los compuestos guardados.
📝 Indicaciones de química
El servidor ofrecerá indicaciones especializadas para ayudar a analizar compuestos químicos:
Indicación de análisis de compuestos
Un flujo de trabajo integral para analizar compuestos químicos que solo requiere un ID de compuesto:
result = await call_prompt("deep-compound-analysis", {
"compound_id": "2244"
})
Esta indicación incluirá:
- Instrucciones detalladas para usar las herramientas disponibles
- Un flujo de trabajo sistemático para el análisis de compuestos
- Estructura de análisis integral que cubre:
- Estructura química y propiedades
- Propiedades farmacológicas
- Actividades biológicas
- Aplicaciones y usos
- Información de seguridad y toxicidad
- Compuestos relacionados
📁 Estructura del proyecto
pubchem_server.py: La implementación principal del servidor MCP usando FastMCPpubchem_search.py: Contiene código de ejemplo para buscar en PubChem
🔧 Dependencias
- Python 3.10+
- FastMCP
- asyncio
- logging
- pubchempy (para acceso a la API de PubChem)
- pandas (para manejo de datos)
Puedes instalar las dependencias requeridas usando:
pip install mcp pubchempy pandas
🤝 Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT.
⚠️ Aviso legal
Esta herramienta es solo para fines de investigación. Respeta los términos de servicio de PubChem y usa esta herramienta de manera responsable.