1. Conduid
  2. Developer Tools
  3. Optimade MCP
MCP server · Developer Tools

Optimade MCP

A Model Context Protocol (MCP) tool for querying Optimade-compatible material databases, fully configurable custom filter presets and provider endpoints.

Unclaimed MIT last commit a year ago devtools
49Fair

Scored 5 months ago · breakdown

About Optimade MCP

Optimade MCP is an MCP server published by dianfengxiaobo in the Developer Tools category: a Model Context Protocol (MCP) tool for querying Optimade-compatible material databases, fully configurable custom filter presets and provider endpoints.

The repository has 4 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/dianfengxiaobo/optimade-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Optimade MCP

Powered by Claude · Grounded in docs

I know everything about Optimade MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

OPTIMADE MCP SERVER

A Model Context Protocol (MCP) tool for querying Optimade-compatible material databases, fully configurable custom filter presets and provider endpoints.


🎯 Overview

This tool enables structured data queries across multiple OPTIMADE databases (e.g., Materials Project, Materials Cloud, COD), via MCP protocol. Key capabilities include:

1..Easily deployable via uvx, cline

2.It is possible to interact with the client in natural language, enabling the large language model to generate the OPTIMADE query filter.

3.The JSON returned by OPTIMADE will be saved locally, and a summary will be generated during the interaction.

Note: The query requires two parameters. One is the optimade query filter, and the other is the database to be queried.


✨ Features

  • MCP Resources the model can read on demand:
    • optimade://docs/filters – Filter grammar & examples (Markdown)
    • optimade://spec/queryable_props – Whitelist of fields marked “Query: MUST be a queryable property …” (JSON)
    • optimade://docs/providers – Default provider URLs (JSON, generated from config)
    • optimade://docs/filter_presets – Named filter snippets (JSON)
    • optimade://prompts/ask_for_provider – System prompt to guide URL selection & linting (Text)
    • optimade://results/<uuid> – Dynamic: full JSON of past queries
  • Tools
    • lint_filter(filter) → "ok" / "warn: …" / "syntax error: …"
      (Warn = not in whitelist but allowed; Syntax error = blocked)
    • query_optimade(filter, baseUrls?) → preview (first 5) + link to full JSON resource
    • list_providers() → Discover global public OPTIMADE endpoints
  • Provider fallback
    1. user-provided baseUrls → 2) config defaults → 3) fallback single mirror (https://optimade.fly.dev)
  • Proxy-ready via .env (HTTP_PROXY, HTTPS_PROXY).

🧩 What the LLM can read (Resources)

URI Type Purpose
optimade://docs/filters text/markdown Full grammar & examples
optimade://spec/queryable_props application/json Whitelist: fields marked “MUST be queryable”
optimade://docs/providers application/json Default provider URLs from config
optimade://docs/filter_presets application/json Named filter snippets for inspiration
optimade://prompts/ask_for_provider text/plain System prompt to guide URL choice & linting
optimade://results/<uuid> application/json Dynamic: full JSON from previous queries

Important: Resources are not auto-injected. Your MCP client must call resources/read (or you configure startup/workflow to read them).


⚙️ Installation & Usage

✅ Recommended via uv

1.Install the tool:

uv pip install optimade-mcp-server

2.In cline or any MCP-compatible launcher, configure the tool as follows:

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

🌐 Proxy Support (Optional)

If you need to use a VPN or proxy, create a .env file in the project root:

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

If you don't need a proxy, you can comment out or remove the proxy setup in the source code.


🪪 License

This project is licensed under the MIT License. See LICENSE for details.


🙋 FAQ

Q: Are resources auto‑injected into the model’s context?
A: No. The client must call resources/read (or configure a startup/workflow step). The server does apply provider fallback automatically if baseUrls are omitted.

Q: Can I use non‑whitelisted fields?
A: Yes. lint_filter returns warn: band_gap. The model should show a warning and ask you to confirm before querying.

Q: How do I export the full result?
A: The server always saves a full JSON under optimade://results/<uuid>.

README fetched from the repository 7 days ago. The original is authoritative.

Questions

About Optimade MCP

How do I install Optimade MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Optimade MCP safe to use with an AI agent?

Its trust score is 49 out of 100 (fair). It passes 4 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Optimade MCP still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.