优化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/ – 动态的:过去查询的完整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/ | application/json | 动态的:之前查询的完整JSON |
重要:资源是 非自动注射。您的MCP客户端必须致电 resources/read (或者您配置启动/工作流以读取它们)。______________________________________________________________________
⚙️ 安装与使用
✅ 通过uv推荐
1.安装工具:
uv pip install optimade-mcp-server2.在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:
HTTPS_PROXY=http://127.0.0.1:如果你不需要代理,你可以在源代码中注释掉或删除代理设置。
______________________________________________________________________
🪪 许可证
该项目根据MIT许可证获得许可。有关详细信息,请参阅许可证。
______________________________________________________________________
🙋 常见问题解答
Q 资源是否自动注入到模型的上下文中?\ A. 不,客户必须打电话 resources/read (或配置启动/工作流步骤)。服务器 做 如果满足以下条件,则自动应用提供程序回退 baseUrls 省略。
Q 我可以使用非白名单字段吗?\ A. 对。 lint_filter 回报 warn: band_gap。模型应显示警告,并要求您在查询前确认。
Q 如何导出完整结果?\ A. 服务器总是将完整的JSON保存在 optimade://results/.
