项目简介

该项目是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLMs)提供访问 Materials Project 数据库的能力。它将 Materials Project 的数据查询和分析功能封装成标准化的工具,供 LLM 客户端调用,从而使 LLMs 能够理解和利用材料科学数据。

主要功能点

  • 搜索材料: 根据元素、能带隙范围和稳定性等条件查询材料信息。
  • 检索晶体结构: 根据 Materials Project ID 获取材料的详细晶体结构信息。
  • 获取电子能带结构和态密度: 可视化和检索材料的电子能带结构图和态密度数据。
  • 获取声子能带结构和态密度: 可视化和检索材料的声子能带结构图和态密度数据。
  • 获取离子参考数据: 查询特定化学体系的离子参考数据。
  • 计算内聚能: 计算指定材料的内聚能。
  • 获取原子参考数据: 获取用于计算形成能的孤立中性原子参考能量。
  • 获取磁性数据: 检索材料的磁性属性,如磁序、总磁化强度等。
  • 获取电荷密度数据: 获取材料的电荷密度信息。
  • 获取介电数据: 获取材料的介电属性信息。

安装步骤

  1. 确保您已安装 Python 3.12 或更高版本。
  2. 安装 'uv' 工具(用于更快的依赖管理):
    curl -Ls https://astral.sh/uv/install.sh | sh
  3. 克隆本仓库到本地。
  4. 进入仓库目录。
  5. 创建并激活虚拟环境:
    uv venv
    source .venv/bin/activate # Windows 下使用 .venv\Scripts\activate
  6. 安装项目依赖:
    uv pip install -r requirements.txt

服务器配置

为了让 MCP 客户端(如 Claude)能够连接到此服务器,您需要在客户端的配置中添加以下信息(请将 '/path/to/your/materials-project-mcp' 替换为您的实际仓库路径,并将 'YOUR_API_KEY' 替换为您的 Materials Project API Key):

{
  "mcpServers": {
    "Materials Project": {
      "command": "/path/to/uv", 
      "args": [
        "run", 
        "--with", 
        "mcp[cli],aiohttp,pydantic,mp_api,pymatgen,emmet-core", 
        "/path/to/your/materials-project-mcp/server/server.py" 
      ],
      "env": {
        "MP_API_KEY": "YOUR_API_KEY" 
      }
    }
  }
}
  • "Materials Project": 服务器的名称,客户端将使用此名称来识别服务器。
  • "command": 启动 MCP 服务器进程的可执行文件路径。通常是 'uv' 或 Python 解释器的路径。如果您已将 'uv' 添加到系统 PATH,此处可以直接填写 'uv'。如果使用虚拟环境,可能需要指定虚拟环境中的路径。
  • "args": 传递给 'command' 的参数列表。此处使用 'uv run' 命令来执行 'server/server.py' 文件,'--with' 参数确保运行环境加载了所需的依赖包。请将 '/path/to/your/materials-project-mcp/server/server.py' 替换为您系统中 'server.py' 文件的实际完整路径。
  • "env": 设置服务器进程所需的环境变量。'MP_API_KEY' 必须设置为您的 Materials Project API Key,这是服务器访问 Materials Project 数据库的关键。请替换 'YOUR_API_KEY' 为您的实际密钥。

基本使用方法

安装并配置完成后,启动支持 MCP 的 LLM 客户端(如 Claude)。客户端会自动连接到已配置的 Materials Project MCP 服务器。您即可在与 LLM 交互时,通过 LLM 调用该服务器提供的工具,例如查询材料信息或获取结构数据。例如,您可以尝试让 LLM 执行 "search_materials" 工具来查找特定类型的材料。

信息

分类

AI与计算