MCP server exposing py-materials curated material properties to AI agents
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"pymat-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# pymat-mcp MCP server exposing the [py-materials](https://github.com/MorePET/mat) curated material registry to AI agents — Claude Desktop, Cursor, MCP Inspector, any MCP-compatible client. > "Aluminum 6061-T6 yield strength?" — agent calls `get_material` instead of > guessing. CAD prompts that need real density / mechanical properties stop > hallucinating. ## Install Zero-install via `uvx`: ```json { "mcpServers": { "pymat": { "command": "uvx", "args": ["pymat-mcp"] } } } ``` That's it. `uvx` fetches `pymat-mcp` (which transitively pulls `py-materials`) and runs it in an isolated venv per session. For a pinned version: `"args": ["pymat-mcp@0.1.0"]`. For programmatic use, `pip install pymat-mcp` works too — the package is fully a normal Python module. ## Tools | Tool | What | |---|---| | `search_materials(query, limit=10)` | Fuzzy lookup → list of brief rows | | `get_material(key_or_name)` | Full property dump (mechanical / thermal / electrical / optical / manufacturing / compliance / sourcing) + visual identity | | `list_categories()` | Top-level groups (aluminum, stainless, lyso, …) | | `list_grades(material)` | Children (grades / tempers / treatments) | | `compute_mass(material, volume_mm3)` | Mass in grams from a build123d-style volume | | `get_appearance(material)` | Vis dict — mat-vis identity, finishes, PBR scalars | | `to_threejs(material, finish=None)` | Three.js MeshPhysicalMaterial init dict | | `to_gltf(material, finish=None)` | glTF 2.0 material node | | `compare_materials(keys, properties=None)` | Side-by-side property comparison | All tools are read-only. Errors come back as `{"error": "...", "did_you_mean": [...]}` rather than exceptions. ## Example agent prompts - *"What's the yield strength of 17-4 PH H1025? Use the materials database."* - *"I have a 50×50×10 mm 6061 plate; what's the mass?"* - *"Give me a Three.js material dict for stainless steel with a polished finish."* - *"Compare density and thermal condu…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.