Structure Building Router
SkillDatabases & dataUse when the user asks to build, modify, or prepare atomic structures: slabs, adsorbates, supercells, doping, defects, or fetching from databases.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Structure Building Router skill
What this skill tells your AI
The instructions your AI receives, as published by hello-qm/catgo-lrg in server/catgo/workflow/skills/structure/SKILL.md and read by ahel’s review.
This skill routes structure building requests to the correct sub-skill.
Routing Table
| User Intent | Sub-Skill | Key Indicators |
|---|---|---|
| Surface slab from bulk | slab/ | "slab", "surface", "Miller index", "(111)", "(110)" |
| Place adsorbate on surface | adsorbate/ | "adsorb", "place OH", "add CO", "binding site" |
| Substitutional doping | doping/ | "dope", "substitute", "replace Fe with Co" |
| Fetch crystal from database | (direct) | "get from MP", "fetch TiO2", "Materials Project" |
| Fetch molecule | (direct) | "get CO molecule", "fetch water" |
| Make supercell | (direct) | "supercell", "2x2x1", "expand" |
MCP Tools
catgo_structure — Build and modify structures
{"tool": "catgo_structure", "arguments": {"action": "slab", ...}}
{"tool": "catgo_structure", "arguments": {"action": "supercell", ...}}
{"tool": "catgo_structure", "arguments": {"action": "add_atom", ...}}
{"tool": "catgo_structure", "arguments": {"action": "delete_atoms", ...}}
{"tool": "catgo_structure", "arguments": {"action": "replace_atom", ...}}
catgo_fetch — Retrieve structures from databases
{"tool": "catgo_fetch", "arguments": {"action": "crystal", "formula": "TiO2", "source": "mp"}}
{"tool": "catgo_fetch", "arguments": {"action": "molecule", "name": "water"}}
catgo_view — Inspect and push structures
{"tool": "catgo_view", "arguments": {"action": "get_state"}}
{"tool": "catgo_view", "arguments": {"action": "push", "structure": {...}}}
Standard Build Sequence
Most catalysis workflows follow this structure preparation pipeline:
1. Fetch bulk crystal catgo_fetch(action: crystal)
2. Generate slab catgo_structure(action: slab)
3. Make supercell catgo_structure(action: supercell)
4. (Optional) Dope catgo_structure(action: replace_atom)
5. Place adsorbate catgo_structure(action: add_atom)
6. Verify structure catgo_view(action: get_state)
Example: OH on Pt(111)
{"tool": "catgo_fetch", "arguments": {
"action": "crystal", "formula": "Pt", "source": "mp"
}}
{"tool": "catgo_structure", "arguments": {
"action": "slab", "miller_index": [1,1,1],
"min_slab_size": 12.0, "min_vacuum_size": 15.0
}}
{"tool": "catgo_structure", "arguments": {
"action": "supercell", "scaling": [2, 2, 1]
}}
{"tool": "catgo_structure", "arguments": {
"action": "add_atom", "element": "O", "position": [2.77, 1.60, 14.5]
}}
{"tool": "catgo_structure", "arguments": {
"action": "add_atom", "element": "H", "position": [2.77, 1.60, 15.47]
}}
{"tool": "catgo_view", "arguments": {"action": "get_state"}}
Python API
from catgo.workflow import Workflow
wf = Workflow("Structure prep")
# Fetch and input
inp = wf.add_task("structure_input", structure=bulk_json)
# Build slab
slab = wf.add_task("slab_gen",
structure=inp.output.structure,
miller_index=[1, 1, 1],
min_slab_size=12.0,
min_vacuum_size=15.0)
# Place adsorbate
ads = wf.add_task("adsorbate_place",
structure=slab.output.structure,
adsorbate="OH",
site_type="top",
site_index=0)
Verification Checklist
After building any structure, verify:
- Atom count: expected number of atoms for the supercell size
- Vacuum: sufficient vacuum for surface calculations (>12 A)
- No overlaps: minimum interatomic distance > 0.5 A
- Correct composition: stoichiometry matches expectation
- Adsorbate position: reasonable height above surface (1.5-2.5 A)
Use catgo_view(action: get_state) to inspect the current structure.
Common Pitfalls
- Always fetch the bulk crystal BEFORE cutting a slab. Do not try to cut a slab from an already-cut slab.
- Make the supercell BEFORE placing adsorbates. Supercell operation replicates all atoms, including adsorbates.
- For Materials Project fetch, use reduced formula (e.g., "TiO2" not "Ti2O4").
- After each structure modification, verify with
catgo_viewbefore proceeding to the next step. - The viewer shows the structure in the browser. MCP tools modify the viewer state directly -- there is no separate "save" step.
Signals
- GitHub stars
- 196
- Forks
- 23
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
structure-router- Source
- github.com/hello-qm/catgo-lrg