Agent skill

Mat Surface Adsorption

by learningmatter-mit in learningmatter-mit/AtomisticSkills

Calculate surface adsorption energies for adsorbate-surface combinations using MLIPs.

MITAuto-check passed

Install Mat Surface Adsorption

skills CLI
$ npx skills add learningmatter-mit/AtomisticSkills --skill mat-surface-adsorption -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install learningmatter-mit/AtomisticSkills mat-surface-adsorption --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/mat-surface-adsorption .claude/skills/mat-surface-adsorption && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mat-surface-adsorption
GitHub stars
176
Token cost
~2.1k tokens
SKILL.md length
745 words
Files
9 (incl. scripts)
Skills in repo
129
Repo updated
First seen
Licence
MIT

At a glance

Calculate surface adsorption energies for adsorbate-surface combinations using MLIPs.

  • SKILL.md covers Goal, Prerequisites, Choosing a Foundation Potential and Calculation Workflow, plus 5 more sections
  • Runs Python scripts from its folder

What it does

Mat Surface Adsorption is an agent skill from learningmatter-mit/AtomisticSkills. Calculate surface adsorption energies for adsorbate-surface combinations using MLIPs.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts (for example `examples/CO_on_Cu111/README.md`, `examples/CO_on_Cu111/adsorption_results.json` and `examples/CO_on_Cu111/generate_structures.py`).

The repository describes itself as: Integrating AtomisticSkills into Agentic IDEs (Cursor, Claude Code, Codex, Google Antigravity, Hermes Agent, etc). The licence is MIT.

Example prompts

  • “/mat-surface-adsorption”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 6257444. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mat Surface Adsorption loads about 2.1k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 745 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~27
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from learningmatter-mit/AtomisticSkills at commit 6257444, republished under its MIT licence (© learningmatter-mit). 745 words, ~2,073 tokens.

Download SKILL.mdSave it as .claude/skills/mat-surface-adsorption/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
mat-surface-adsorption
description
Calculate surface adsorption energies for adsorbate-surface combinations using MLIPs.
metadata.category
materials, chemistry
metadata.venv
fairchem, mlip

Surface Adsorption Skill

This skill provides tools for calculating adsorption energies ($E_{ads}$) of molecules on crystalline surfaces using Machine Learning Interatomic Potentials (MLIPs).

Goal

To calculate the adsorption energy for a given adsorbate-surface combination, defined as:

$$E_{ads} = E_{adsorbate+slab} - E_{slab} - E_{adsorbate}$$

where:

  • $E_{adsorbate+slab}$ is the total energy of the adsorbate adsorbed on the surface
  • $E_{slab}$ is the energy of the clean slab
  • $E_{adsorbate}$ is the energy of the isolated adsorbate molecule

The skill uses MatCalc's AdsorptionCalc to automate the full workflow: bulk relaxation, slab generation, adsorbate relaxation, site identification, and energy calculations.

Prerequisites

  • The appropriate MLIP wrapper must be available (MACEWrapper, MatGLWrapper, or FAIRCHEMWrapper)
  • matcalc, pymatgen, and ase are included in the mlip and fairchem environments
  • A bulk crystalline structure file (CIF, POSCAR, etc.)
  • An adsorbate molecule structure file (XYZ, CIF) or SMILES string

Choosing a Foundation Potential

Adsorption energy calculations require accurate prediction of both energies and forces, particularly for the adsorbate-surface interaction. Models trained on Open Catalyst datasets are especially recommended as they were specifically designed for catalysis and surface chemistry.

[!IMPORTANT] Recommended models (in order of preference):

  1. Open Catalyst trained models (BEST for surface adsorption):
    • FAIRChem: EquiformerV2-31M-S2EF-OC20-All+MD, EquiformerV2-153M-S2EF-OC20-All+MD
    • FAIRChem UMA: uma-s-1p1, uma-m-1p1 (universal, includes OC20/OC25 data)
    • MACE-OMAT: MACE-OMAT-0-small, MACE-OMAT-0-medium (trained on OC datasets)
  2. MatPES trained models (Good for general surfaces):
    • CHGNet-PES-MatPES-PBE-1M-2026.9
    • M3GNet-MatPES-PBE-v2025.1-PES
    • MACE-MatPES-PBE-0
  3. Avoid MPtrj-only models: Models trained primarily on the MPtrj dataset may suffer from force prediction issues critical for adsorption.

Why Open Catalyst models? The OC20, OC22, and OC25 datasets contain millions of adsorbate-surface configurations specifically for catalysis, making these models highly accurate for adsorption energies and barriers.

Refer to the foundation-potentials skill for detailed guidance on model selection.

Calculation Workflow

To calculate adsorption energies, use the calculate_adsorption.py script:

bash
${CLAUDE_SKILL_DIR}/../../venv/run fairchem python ${CLAUDE_SKILL_DIR}/scripts/calculate_adsorption.py \
    --bulk path/to/bulk_structure.cif \
    --adsorbate path/to/adsorbate.xyz \
    --miller_index '[1,1,1]' \
    --model_type fairchem \
    --model_name EquiformerV2-31M-S2EF-OC20-All+MD \
    --fmax 0.05 \
    --output_dir research/my_folder/adsorption
Key Parameters
  • --bulk: Path to bulk structure file (CIF, POSCAR, etc.)
  • --adsorbate: Path to adsorbate molecule file (XYZ, CIF) or SMILES string
  • --miller_index: Miller index for the surface as JSON list (e.g., '[1,1,1]', '[1,0,0]')
  • --model_type: MLIP model type (mace, matgl, or fairchem)
  • --model_name: Specific model name (optional, uses defaults if not provided)
Optional Settings

Relaxation control:

  • --relax_bulk / --no_relax_bulk: Control bulk structure relaxation (default: True)
  • --relax_slab / --no_relax_slab: Control clean slab relaxation (default: True)
  • --relax_adsorbate / --no_relax_adsorbate: Control adsorbate molecule relaxation (default: True)

Convergence:

  • --fmax: Force convergence criterion in eV/Å (default: 0.05)
  • --optimizer: ASE optimizer (default: BFGS)
  • --max_steps: Maximum optimization steps (default: 500)

Slab generation:

  • --min_slab_size: Minimum slab thickness in Å (default: 10.0)
  • --min_vacuum_size: Minimum vacuum layer in Å (default: 20.0)
  • --adsorption_sites: Sites to consider: 'all', 'ontop', 'bridge', 'hollow' (default: all)
  • --height: Initial adsorbate height above surface in Å (default: 0.9)

Output Files

The calculation generates the following files in the output directory:

  • adsorption_results.json: Complete summary including:
    • Adsorption energies for all identified sites
    • Most stable adsorption site and energy
    • Calculation settings and metadata
    • Individual site energies (adslab, slab, adsorbate)
Show full SKILL.md (283 more words)Show less

Examples

Example 1: CO on Cu(111)

Calculate the adsorption energy of CO on the (111) surface of Cu using an Open Catalyst trained model:

bash
${CLAUDE_SKILL_DIR}/../../venv/run fairchem python ${CLAUDE_SKILL_DIR}/scripts/calculate_adsorption.py \
    --bulk examples/CO_on_Cu111/Cu_bulk.cif \
    --adsorbate examples/CO_on_Cu111/CO.xyz \
    --miller_index '[1,1,1]' \
    --model_type fairchem \
    --model_name EquiformerV2-31M-S2EF-OC20-All+MD \
    --fmax 0.05 \
    --output_dir research/Cu_CO_adsorption

Example structures:

Example 2: Using SMILES for Adsorbate

Use a SMILES string to define the adsorbate:

bash
${CLAUDE_SKILL_DIR}/../../venv/run mlip python ${CLAUDE_SKILL_DIR}/scripts/calculate_adsorption.py \
    --bulk Pt_bulk.cif \
    --adsorbate "O=C=O" \
    --miller_index '[1,1,1]' \
    --model_type matgl \
    --model_name CHGNet-PES-MatPES-PBE-1M-2026.9 \
    --output_dir research/Pt_CO2_adsorption
Example 3: Different Surface Facet

Calculate adsorption on a (100) surface:

bash
${CLAUDE_SKILL_DIR}/../../venv/run fairchem python ${CLAUDE_SKILL_DIR}/scripts/calculate_adsorption.py \
    --bulk Ni_bulk.cif \
    --adsorbate H2.xyz \
    --miller_index '[1,0,0]' \
    --model_type fairchem \
    --model_name uma-s-1p1 \
    --output_dir research/Ni_H2_100

Interpreting Results

The adsorption_results.json file contains:

  • most_stable_site: The adsorption site with the lowest (most negative) energy

    • Negative $E_{ads}$: Exothermic adsorption (stable)
    • Positive $E_{ads}$: Endothermic adsorption (unstable)
    • Typical range: -0.5 to -5.0 eV for strong chemisorption
  • adsorption_sites: List of all calculated sites with individual energies

    • Compare energies to identify preferred binding geometries
    • Multiple sites may have similar energies
  • num_sites: Total number of adsorption sites found

    • Depends on --adsorption_sites parameter and surface symmetry

Constraints

  • Structure Requirements:

    • The bulk structure should be a well-relaxed crystalline structure
    • Adsorbate should be a gas-phase molecule (not periodic)
  • Miller Indices:

    • Must be provided as a JSON list: '[h,k,l]'
    • Use conventional cell Miller indices for accurate slab generation
  • Slab Size:

    • Default min_slab_size=10.0 Å is usually sufficient
    • For layered materials or weak interlayer bonding, may need to increase
  • Vacuum Size:

    • Default min_vacuum_size=20.0 Å prevents periodic image interactions
    • Critical for accurate energy calculations
  • Environments:

    • Each command names its environment through venv/run: mlip for MACE and MatGL, fairchem for FairChem. Use the one that matches the chosen model.
  • Computational Cost:

    • Multiple adsorption sites are calculated automatically
    • Cost scales with number of sites and slab size
    • Use --adsorption_sites ontop or bridge to limit sites for faster calculations

See Also


Author: Bowen Deng Contact: GitHub @learningmatter-mit

© learningmatter-mit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts) in skills/mat-surface-adsorption of learningmatter-mit/AtomisticSkills.

  • SKILL.md
  • examples/CO_on_Cu111/CO.xyz
  • examples/CO_on_Cu111/CO_Cu111_initial.cif
  • examples/CO_on_Cu111/CO_Cu111_relaxed.cif
  • examples/CO_on_Cu111/Cu_bulk.cif
  • examples/CO_on_Cu111/README.md
  • examples/CO_on_Cu111/adsorption_results.json
  • examples/CO_on_Cu111/generate_structures.py
  • scripts/calculate_adsorption.py

Open the folder on GitHubat commit 6257444

Compare with similar skills

Mat Surface Adsorption next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mat Surface Adsorption compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mat Surface Adsorption this skilllearningmatter-mit/AtomisticSkills176—~2.1kAutomated safety check: PassMIT
Energy Calculatorbenchflow-ai/skillsbench1.8k—~437Automated safety check: PassApache-2.0
Bio Free Energy CalculationsGPTomics/bioSkills1.2k1 repos~4.5kAutomated safety check: PassMIT
Adsorption EnergyHello-QM/catgo-LRG205—~1.4kAutomated safety check: PassAGPL-3.0
Workspace Surface Auditaffaan-m/ECC275k3 repos~1.3kAutomated safety check: NotesMIT
Energy Procurementaffaan-m/ECC275k4 repos~7.4kAutomated safety check: PassApache-2.0

Similar skills

  • Energy Calculator

    benchflow-ai/skillsbench

    Calculate per-second RMS energy from audio files. An agent skill from benchflow-ai/skillsbench.

    1.8k GitHub stars~437 tokensUpdated 2 mo ago
    Auto-check passed
  • Performs alchemical free-energy calculations including relative binding free energy (RBFE / FEP+) and absolute binding free energy (ABFE) via OpenFE, FEP+, GROMACS, AMBER pmemd, and OpenMM with…

    1.2k GitHub starsUsed in 1 repo~4.5k tokens
    Research & ScienceAuto-check passed
  • Adsorption Energy

    Hello-QM/catgo-LRG

    A skill your agent uses when the user asks for adsorption energy, binding energy, or wants to compare how strongly a molecule binds to a surface.

    205 GitHub stars~1.4k tokensUpdated 15 days ago
    Auto-check passed
  • Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows.

    275k GitHub starsUsed in 3 repos~1.3k tokens
    Agent WorkflowsAuto-check: notes
  • Energy Procurement

    affaan-m/ECC

    Procure electricity and natural gas for commercial and industrial facilities: tariff and rate-schedule optimization, demand-charge mitigation, supplier RFPs, fixed/index/block-and-index hedging…

    275k GitHub starsUsed in 4 repos~7.4k tokens
    Business, Finance & HRAuto-check passed
  • Energy Procurement

    affaan-m/ECC

    电力与燃气采购、电价优化、需量电费管理、可再生能源购电协议评估及多设施能源成本管理的编码化专业知识。基于能源采购经理在大型工商业用户中超过15年的经验。包括市场结构分析、对冲策略、负荷分析和可持续性报告框架。适用于采购能源、优化电价、管理需量电费、评估购电协议或制定能源策略时使用。

    275k GitHub starsUsed in 2 repos~2.5k tokens
    Business, Finance & HRAuto-check passed

More from learningmatter-mit/AtomisticSkills

All 129 skills in this repo
  • Drug Binding Site Definition

    learningmatter-mit/AtomisticSkills

    Define a docking search box (center coordinates + box dimensions in Angstroms) from a co-crystal ligand, binding-site residues, or a saved JSON specification.

    176 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Drug Complex System Builder

    learningmatter-mit/AtomisticSkills

    Build a solvated, charge-neutralized protein-ligand complex for OpenMM molecular dynamics simulation.

    176 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Drug Pocket Detection

    learningmatter-mit/AtomisticSkills

    Identify and rank ligandable pockets on a protein structure or model using geometry (fpocket) or an ML predictor (P2Rank).

    176 GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Chem Bond Dissociation

    learningmatter-mit/AtomisticSkills

    Calculate homolytic and heterolytic bond dissociation energies (BDEs) for all single bonds in a molecule using MLIPs with RDKit fragmentation.

    176 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Chem Conformer Search

    learningmatter-mit/AtomisticSkills

    Generate molecular conformers with RDKit ETKDG, relax with MLIPs, and rank by energy with Boltzmann weighting.

    176 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Chem DB Mof

    learningmatter-mit/AtomisticSkills

    Query multiple MOF databases (QMOF via MPContribs; ARC-MOF DB7/Majumdar et al.

    176 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Mat Surface Adsorption

What does Mat Surface Adsorption do?

Calculate surface adsorption energies for adsorbate-surface combinations using MLIPs. Mat Surface Adsorption is an agent skill from learningmatter-mit/AtomisticSkills. Calculate surface adsorption energies for adsorbate-surface combinations using MLIPs.

How do I install Mat Surface Adsorption in Claude Code?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill mat-surface-adsorption -a claude-code`. Or copy the skill folder (skills/mat-surface-adsorption in learningmatter-mit/AtomisticSkills) into .claude/skills/mat-surface-adsorption in your project. Claude Code loads it when a task matches its description.

How do I install Mat Surface Adsorption in Codex?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill mat-surface-adsorption -a codex`. Or copy the skill folder (skills/mat-surface-adsorption in learningmatter-mit/AtomisticSkills) into .agents/skills/mat-surface-adsorption in your project. Codex loads it when a task matches its description.

Can I use Mat Surface Adsorption in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add learningmatter-mit/AtomisticSkills --skill mat-surface-adsorption -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mat-surface-adsorption, .gemini/skills/mat-surface-adsorption, .github/skills/mat-surface-adsorption and .opencode/skills/mat-surface-adsorption in your project.

What does Mat Surface Adsorption need to run?

Going by SKILL.md and its folder, Mat Surface Adsorption needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Mat Surface Adsorption access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Mat Surface Adsorption safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Mat Surface Adsorption use?

Mat Surface Adsorption is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mat Surface Adsorption use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Mat Surface Adsorption?

Skills that share tags, products or a category with Mat Surface Adsorption: Energy Calculator (benchflow-ai/skillsbench, 1.8k stars), Bio Free Energy Calculations (GPTomics/bioSkills, 1.2k stars), Adsorption Energy (Hello-QM/catgo-LRG, 205 stars) and Workspace Surface Audit (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mat Surface Adsorption?

learningmatter-mit (a GitHub organization) maintains it in learningmatter-mit/AtomisticSkills, which has 176 GitHub stars. The repository holds 129 skills in this directory. The repository was last updated on October 7, 2026.

Source: learningmatter-mit/AtomisticSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.