Materials Project MCP

Consulta la base de datos de Materials Project usando el cliente mp_api. Requiere la variable de entorno MP_API_KEY.

Documentación

Materials Project MCP

Un servidor de Protocolo de Contexto de Modelos (MCP) para consultar la base de datos de Materials Project utilizando el cliente mp_api.

Requisitos

  • Clave de API de Materials Project - Obtén una aquí (se requiere cuenta gratuita)
  • Docker Desktop (debe estar en ejecución)
  • Python 3.12+ con uv

Cómo Obtener tu Clave de API de Materials Project

  1. Visita Materials Project
  2. Crea una cuenta gratuita o inicia sesión
  3. Ve a tu panel de control
  4. Navega a la configuración de API
  5. Genera o copia tu clave de API
  6. Mantén esta clave segura: la necesitarás para la configuración

Opciones de Instalación

Paso 1: Docker (Recomendado)

Usando Docker Run

  1. Instala Docker Desktop:

    • Descárgalo desde docker.com
    • Instálalo y asegúrate de que Docker Desktop esté en ejecución
  2. Descarga la imagen de Docker:

    docker pull benedict2002/materials-project-mcp
    
  3. Prueba la instalación:

    docker run --rm -i -e MP_API_KEY="your-api-key" benedict2002/materials-project-mcp
    

Usando Docker Compose (Más Fácil)

  1. Instala Docker Desktop y asegúrate de que esté en ejecución

  2. Clona el repositorio:

    git clone <repository-url>
    cd materials-project-mcp
    
  3. Crea un archivo .env:

    echo "MP_API_KEY=your-materials-project-api-key" > .env
    
  4. Prueba la configuración:

    docker-compose up
    
  5. Para ejecución en segundo plano:

    docker-compose up -d
    
  6. Detén el servicio:

    docker-compose down
    

Paso 1: Instalación Local con Python

  1. Instala uv (si aún no está instalado):

    curl -Ls https://astral.sh/uv/install.sh | sh
    
  2. Clona el repositorio:

    git clone <repository-url>
    cd materials-project-mcp
    
  3. Crea y activa el entorno virtual:

    uv venv
    source .venv/bin/activate  # Linux/macOS
    # or
    .venv\Scripts\activate     # Windows
    
  4. Instala las dependencias:

    uv pip install -r requirements.txt
    
  5. Configura tu clave de API:

    export MP_API_KEY="your-api-key"  # Linux/macOS
    # or
    set MP_API_KEY=your-api-key       # Windows
    
  6. Prueba la instalación:

    python server.py
    

Paso 2: Configuración con Claude Desktop

  1. Localiza tu archivo de configuración de Claude:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Elige tu método de configuración:

    Usando Docker Run

    {
      "mcpServers": {
        "Materials Project MCP": {
          "command": "docker",
          "args": [
            "run", "--rm", "-i",
            "-e", "MP_API_KEY=your-materials-project-api-key",
            "benedict2002/materials-project-mcp"
          ]
        }
      }
    }
    
  3. Reemplaza your-materials-project-api-key con tu clave de API real

  4. Asegúrate de que Docker Desktop esté en ejecución

  5. Reinicia Claude Desktop

  6. Verifica la instalación:

    • Abre un nuevo chat en Claude
    • Pregunta algo como "Busca materiales de silicio en la base de datos de Materials Project" o prueba cualquiera de las herramientas disponibles.
    • Deberías ver datos de Materials Project en la respuesta

Configuración con VS Code Copilot

  1. Abre la Configuración de VS Code:

    • Presiona Ctrl+Shift+P (Windows/Linux) o Cmd+Shift+P (macOS)
    • Escribe "Preferences: Open User Settings (JSON)"
    • Selecciónalo para abrir settings.json
  2. Agrega la configuración de MCP:

    {
      "mcp": {
        "inputs": [],
        "servers": {
          "Materials Project MCP": {
            "command": "docker",
            "args": [
              "run", "--rm", "-i",
              "-e", "MP_API_KEY=your-api-key",
              "benedict2002/materials-project-mcp"
            ]
          }
        }
      },
      "chat.mcp.discovery.enabled": true,
      "workbench.secondarySideBar.showLabels": false
    }
    
  3. Alternativa: Configuración local de Python para VS Code:

    {
      "mcp": {
        "inputs": [],
        "servers": {
          "Materials Project MCP": {
            "command": "/usr/local/bin/uv",
            "args": [
              "run",
              "--with",
              "mcp[cli],aiohttp,pydantic,mp_api,pymatgen,emmet-core",
              "/path/to/your/server.py"
            ],
            "env": {
              "MP_API_KEY": "your-api-key"
            }
          }
        }
      },
      "chat.mcp.discovery.enabled": true
    }
    
  4. Reemplaza los marcadores de posición:

    • your-api-key con tu clave de API de Materials Project
    • /path/to/your/server.py con la ruta real a server.py
  5. Asegúrate de que Docker Desktop esté en ejecución (para configuraciones de Docker)

  6. Reinicia VS Code

  7. Prueba en VS Code:

    • Abre el chat/copilot de VS Code
    • Pregunta sobre materiales de Materials Project
    • El contenedor de Docker se iniciará automáticamente cuando VS Code realice solicitudes

Pruebas y Desarrollo (desarrolladores)

Probando tu Instalación

  1. Prueba el servidor MCP localmente:
    mcp dev server.py
    
    Busca la línea "🔗 Open inspector with token pre-filled:" y usa esa URL

Flujo de Trabajo de Desarrollo

  1. Crea una rama de características:

    git checkout -b feature-name
    
  2. Haz tus cambios y prueba:

    # Local testing with MCP Inspector
    mcp dev server.py
    # Use the inspector URL to test your changes interactively
    
    # Docker testing
    docker build -t materials-project-mcp-local .
    docker run --rm -i -e MP_API_KEY="your-api-key" materials-project-mcp-local
    
    # Docker Compose testing
    docker-compose up --build
    
  3. Haz commit y push:

    git add .
    git commit -m "Add feature description"
    git push origin feature-name
    
  4. Abre una solicitud de extracción (pull request)

Herramientas y Funciones Disponibles

  • search_materials - Busca por elementos, rango de banda prohibida, estabilidad
  • get_structure_by_id - Obtén estructuras cristalinas y parámetros de red
  • get_electronic_bandstructure - Grafica estructuras de bandas electrónicas
  • get_electronic_dos_by_id - Obtén densidad de estados electrónicos
  • get_phonon_bandstructure - Grafica estructuras de bandas fonónicas
  • get_phonon_dos_by_id - Obtén densidad de estados fonónicos
  • get_ion_reference_data_for_chemsys - Descarga datos de referencia de iones acuosos para diagramas de Pourbaix
  • get_cohesive_energy - Calcula energías cohesivas
  • get_atom_reference_data - Recupera energías de referencia de átomos neutros aislados
  • get_magnetic_data_by_id - Propiedades magnéticas y ordenamiento
  • get_charge_density_by_id - Datos de densidad de carga
  • get_dielectric_data_by_id - Constantes y propiedades dieléctricas
  • get_diffraction_patterns - Difracción de rayos X y neutrones
  • get_xRay_absorption_spectra - Espectros XAFS, XANES, EXAFS
  • get_elastic_constants - Propiedades mecánicas
  • get_suggested_substrates - Encuentra sustratos para películas delgadas
  • get_thermo_stability - Análisis de estabilidad termodinámica
  • get_surface_properties - Energías superficiales, funciones de trabajo y formas de Wulff
  • get_grain_boundaries - Límites de grano calculados para un material
  • get_insertion_electrodes - Datos de electrodos de inserción y baterías
  • get_oxidation_states - Estados de oxidación de elementos, fórmula e información estructural

Solución de Problemas

Problemas Comunes

  1. Error de "Clave de API inválida":

    • Verifica que tu clave de API sea correcta
    • Comprueba que hayas configurado la variable de entorno correctamente
    • Asegúrate de que tu cuenta de Materials Project esté activa
  2. "Docker no encontrado" o "No se puede conectar al daemon de Docker":

    • Asegúrate de que Docker Desktop esté instalado y en ejecución
    • Deberías ver el ícono de Docker Desktop en la bandeja del sistema/barra de menú
    • Prueba docker --version para verificar que Docker sea accesible
    • En Windows/Mac: Abre la aplicación Docker Desktop
    • En Linux: Inicia el servicio de Docker con sudo systemctl start docker
  3. Problemas de inicio del contenedor:

    • Los contenedores de Docker se inician automáticamente cuando Claude/VS Code realiza solicitudes
    • No es necesario iniciar contenedores manualmente: son efímeros (inicio → ejecución → detención)
    • Cada consulta crea una instancia de contenedor nueva
  4. Problemas con Docker Compose:

    • Asegúrate de que Docker Compose esté instalado: docker-compose --version
    • Verifica que tu archivo .env exista y tenga la clave de API correcta
    • Verifica que el archivo docker-compose.yml esté en la ubicación correcta
    • Asegúrate de que Docker Desktop esté en ejecución
  5. Servidor MCP no reconocido en Claude:

    • Verifica la ruta de tu archivo de configuración
    • Verifica que la sintaxis JSON sea correcta
    • Reinicia Claude Desktop después de los cambios de configuración
    • Asegúrate de que Docker Desktop esté en ejecución

Obteniendo Ayuda


Autores

  • Benedict Debrah
  • Peniel Fiawornu

Referencia

Yin, Xiangyu. 2025. "Building an MCP Server for the Materials Project." 23 de marzo de 2025. https://xiangyu-yin.com/content/post_mp_mcp.html.