项目简介
该项目是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLMs)提供访问 Materials Project 数据库的能力。它将 Materials Project 的数据查询和分析功能封装成标准化的工具,供 LLM 客户端调用,从而使 LLMs 能够理解和利用材料科学数据。
主要功能点
- 搜索材料: 根据元素、能带隙范围和稳定性等条件查询材料信息。
- 检索晶体结构: 根据 Materials Project ID 获取材料的详细晶体结构信息。
- 获取电子能带结构和态密度: 可视化和检索材料的电子能带结构图和态密度数据。
- 获取声子能带结构和态密度: 可视化和检索材料的声子能带结构图和态密度数据。
- 获取离子参考数据: 查询特定化学体系的离子参考数据。
- 计算内聚能: 计算指定材料的内聚能。
- 获取原子参考数据: 获取用于计算形成能的孤立中性原子参考能量。
- 获取磁性数据: 检索材料的磁性属性,如磁序、总磁化强度等。
- 获取电荷密度数据: 获取材料的电荷密度信息。
- 获取介电数据: 获取材料的介电属性信息。
安装步骤
- 确保您已安装 Python 3.12 或更高版本。
- 安装 'uv' 工具(用于更快的依赖管理):
curl -Ls https://astral.sh/uv/install.sh | sh - 克隆本仓库到本地。
- 进入仓库目录。
- 创建并激活虚拟环境:
uv venv source .venv/bin/activate # Windows 下使用 .venv\Scripts\activate - 安装项目依赖:
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与计算