材料数据库查询工具

一个用于查询OPTIMADE兼容材料数据库的工具,支持自定义过滤预设和提供者端点,适用于材料科学研究和数据分析。

  • by dianfengxiaobo
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 dianfengxiaobo/optimade-mcp-server

使用说明

优化MCP服务器

一个模型上下文协议(MCP)工具,用于查询与Optimade兼容的材料数据库、完全可配置的自定义过滤器预设和提供者端点。


🎯 概述

该工具允许通过MCP协议跨多个OPTIMADE数据库(例如,材料项目、材料云、COD)进行结构化数据查询。关键能力包括:

1.通过uvx、cline可轻松部署

2.可以用自然语言与客户端交互,使大型语言模型能够生成OPTIMADE查询过滤器。

3.OPTIMADE返回的JSON将保存在本地,并在交互过程中生成摘要。

注意:查询需要两个参数。一个是优化查询过滤器,另一个是要查询的数据库。


✨ 特性

  • MCP资源 该模型可以按需读取:
    • optimade://docs/filters –过滤语法和示例(Markdown)
    • optimade://spec/queryable_props – 白名单 标记的字段 “查询:必须是可查询的属性…” (JSON)
    • optimade://docs/providers –默认提供程序URL(JSON,从配置生成)
    • optimade://docs/filter_presets –命名过滤器片段(JSON)
    • optimade://prompts/ask_for_provider –引导URL选择和跳转的系统提示(文本)
    • optimade://results/<uuid> – 动态的:过去查询的完整JSON
  • 工具
    • lint_filter(filter) → "ok" / "warn: …" / "syntax error: …"
      (警告=不在白名单中,但允许;语法错误=被阻止)
    • query_optimade(filter, baseUrls?) → 预览(前5个)+完整JSON资源链接
    • list_providers() → 发现全球公共OPTIMADE端点
  • 提供商回退
    1. 用户提供 baseUrls → 2) 配置默认值→ 3) 回退单镜(https://optimade.fly.dev)
  • 代理就绪 通过 .env (HTTP_PROXY, HTTPS_PROXY).

🧩 LLM可以阅读什么(参考资料)

URI 类型 目的
optimade://docs/filters text/markdown 完整的语法和示例
optimade://spec/queryable_props application/json 白名单:标记为“必须可查询”的字段
optimade://docs/providers application/json 配置中的默认提供程序URL
optimade://docs/filter_presets application/json 命名过滤器片段以获得灵感
optimade://prompts/ask_for_provider text/plain 系统提示,指导URL选择和跳转
optimade://results/<uuid> application/json 动态的:之前查询的完整JSON

重要:资源是 非自动注射。您的MCP客户端必须致电 resources/read (或者您配置启动/工作流以读取它们)。


⚙️ 安装与使用

✅ 通过uv推荐

1.安装工具:

uv pip install optimade-mcp-server

2.在cline或任何兼容MCP的启动器中,按如下方式配置工具:

{
  "mcpServers": {
    "optimade_mcp_server": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "optimade-mcp-server"
      ]
    }
  }
}

🌐 代理支持(可选)

如果需要使用VPN或代理,请在项目根目录中创建.env文件:

HTTP_PROXY=http://127.0.0.1:<your-port>
HTTPS_PROXY=http://127.0.0.1:<your-port>

如果你不需要代理,你可以在源代码中注释掉或删除代理设置。


🪪 许可证

该项目根据MIT许可证获得许可。有关详细信息,请参阅许可证。


🙋 常见问题解答

Q 资源是否自动注入到模型的上下文中?
A. 不,客户必须打电话 resources/read (或配置启动/工作流步骤)。服务器 做 如果满足以下条件,则自动应用提供程序回退 baseUrls 省略。

Q 我可以使用非白名单字段吗?
A. 对。 lint_filter 回报 warn: band_gap。模型应显示警告,并要求您在查询前确认。

Q 如何导出完整结果?
A. 服务器总是将完整的JSON保存在 optimade://results/<uuid>.