# `get_material_property` tool

Reads one stored property of one material, with its unit, the kind of evidence it comes from, and the material's structure. It needs one of these grants: `professional_database` or `trial_database`. It is not charged against the daily allowance.

**At a glance**

| Item | Value |
| --- | --- |
| Tool | `get_material_property` |
| Title | Get material property |
| Group | [Look up a material](https://www.chemiadiscovery.com/docs/mcp/tools/#what-is-in-the-group-look-up-a-material) |
| Needs one of | `professional_database` or `trial_database` |
| Charged | No |
| Read-only | Yes |
| Parameters | 3, of which 2 required |
| Data as of | 2026-10-04 |
| Server release | 1.5.0, read from the live server on 2026-10-04 |

## What parameters does get_material_property take?

**Parameters of `get_material_property`**

| Parameter | Type | Required | Default | What it does |
| --- | --- | --- | --- | --- |
| `material` | `string` | Yes | none | A Chemia ID, a common name, a formula or an internal id. A formula that fits several structures returns status "ambiguous" with candidates and the `ground_state` rather than picking one. |
| `property` | `string` | Yes | none | The stored property key, for example band_gap, density or bulk_modulus. It is matched as typed: this tool does not resolve other spellings the way property_stats does, so "band gap" returns not_found. The structural answers space_group and crystal_system are also accepted and come back as text in `text_value`. |
| `source_id` | `string` or null | No | not set | Dataset to read from, an `id` from list_material_sources. Null (the default) uses the server's default dataset. `source` is the dataset that ran; `source_downgraded` is true when it differs from `requested_source`. An id that is not in the catalogue falls back to the registry default without an error. |

## Which grants does get_material_property need, and is it charged?

- **Grants:** `professional_database` or `trial_database`. One of them is enough.
- **Charged:** no, it never uses the daily allowance (as of 2026-10-04).

Grants and the allowance are explained in [Access, grants and limits](https://www.chemiadiscovery.com/docs/mcp/access/).

**Annotations the server sets on `get_material_property`**

| Annotation | Value | Meaning |
| --- | --- | --- |
| `idempotentHint` | true | If true, calling the tool again with the same arguments has no additional effect. |
| `openWorldHint` | false | If true, the tool may interact with an open world of external entities. |
| `readOnlyHint` | true | If true, the tool does not modify its environment. |

## What does a call to get_material_property look like?

One property of one material.

```json Example arguments for get_material_property
{
  "material": "Si",
  "property": "band_gap"
}
```

These arguments validate against the tool's input schema, checked when the snapshot was taken on 2026-10-04. They show the shape of a call; they are not a recorded response. [Examples](https://www.chemiadiscovery.com/docs/mcp/examples/) says where worked examples stand.

## How should I read get_material_property results?

- **Trap.** A property name that is not the stored key is not an error. It reads as status not_found, "no measured value", which looks like missing data. Use the canonical key; property_stats and plot_distribution return `did_you_mean` for names they do not know.
- **Convention.** When a property has several stored values, one is returned, chosen by the kind of evidence: experimental first, then DFT, then ML. Any other source type, such as literature, is used only when nothing ranked exists, and a tie goes to the oldest stored row. `evidence_source` says which kind you got; you do not get the range of values.
- **Convention.** `caveat` appears when a DFT value comes from a method with a known systematic error, for example a DFT band gap that typically underestimates the measured one. The number is returned as stored, not corrected. A value carrying `suspect` is physically impossible for that property and is a data error, not a measurement.

A Convention is a field or behaviour whose meaning is not obvious, a Trap looks right and is not, and a Gap is something we do not hold or do not check. [Reading results](https://www.chemiadiscovery.com/docs/mcp/reading-results/) explains the classes.

## How does the server describe get_material_property?

This is the server's own description, which a client passes to the model, lightly normalised for display.

Look up one measured or computed property for one material, for example material="Si", property="band_gap".

status is "found" (value/unit/evidence_source populated, with the entry's chemia_id, space_group and crystal_system), "not_found" (the material is known but has no value for this property), "ambiguous" (the name matches several entries: `candidates` lists up to 8 with Chemia ID and space group, `total` counts them all, and one Chemia ID picks exactly one), or "unknown" (the material itself could not be resolved). Candidates are in Chemia ID order, not by stability, so the first is not the ground state: `ground_state` names the formula's lowest-energy entry (null when the name fits several formulas or none has an energy), and find_material_entries lists every entry. evidence_source is "experimental", "dft" (computed, not measured), "ml_predicted" or "literature". When a computed value's method has a known systematic error, `caveat` says what it typically gets wrong for this value; the number itself is as stored, not corrected.

source_id picks a dataset from list_material_sources exactly like search_materials's own parameter, omit it to use this deployment's default. `source` on the response is the dataset this call actually ran against; `source_downgraded` is true if that differs from `requested_source` because this account's grants (or this deployment's tier) could not reach what was asked for.

## Which tools are related to get_material_property?

get_material_property is in the group "Look up a material". The other tools in it:

- `classify_material`: Classifies materials as metal, semi-metal, semiconductor or insulator from their band gap, one result per input in the same order.
- `find_material_entries`: Lists every entry that matches a formula, a common name or a Chemia ID, with its structure and stability, so you can see all the polymorphs of a compound and pick the one you mean.
- `get_all_material_properties`: Lists every stored property of one material in a single call, each with its value, unit and kind of evidence, plus the material's structure.
- [`resolve_material_name`](https://www.chemiadiscovery.com/docs/mcp/tools/resolve_material_name/): Resolves a commercial or common name, a formula or a Chemia ID to one canonical material, with its Chemia ID, formula and dataset.

The [Tool reference](https://www.chemiadiscovery.com/docs/mcp/tools/) lists every tool.

---

Canonical page: https://www.chemiadiscovery.com/docs/mcp/tools/get_material_property/

Data as of 2026-10-04. Server release 1.5.0, read from the live server on 2026-10-04.

Tool reference as JSON: https://www.chemiadiscovery.com/docs/mcp/tools.json

[Site FAQ](https://www.chemiadiscovery.com/faq) | [Website privacy policy](https://www.chemiadiscovery.com/privacy) | [Website terms of use](https://www.chemiadiscovery.com/terms) | [Contact support](mailto:info@chemiadiscovery.com)
