Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Xraylarch

FreeNot checked

MCP server that wraps xraylarch for X-ray spectroscopy analysis, enabling loading, processing, analyzing, and plotting XAS/XAFS spectra through natural language

GitHubEmbed

About

MCP server that wraps xraylarch for X-ray spectroscopy analysis, enabling loading, processing, analyzing, and plotting XAS/XAFS spectra through natural language.

README

MCP (Model Context Protocol) server that wraps xraylarch for X-ray spectroscopy analysis. Load, process, analyze, and plot XAS/XAFS spectra through Claude Desktop or Claude Code with natural language tool calls. Supports XANES normalization, EXAFS extraction, Fourier transforms, linear combination fitting, PCA, FEFFIT shell fitting, and publication-quality plotting.

Installation

pip install xraylarch-mcp

Configuration

Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "xraylarch": {
      "command": "python",
      "args": ["-m", "xraylarch_mcp"]
    }
  }
}

Claude Code

claude mcp add xraylarch -- python -m xraylarch_mcp

Quick Start

Ask Claude:

"Load the spectrum at ~/data/fe_foil.xdi and show me the normalized XANES"

Claude will:

  1. Call larch_load_spectrum to read your data
  2. Call larch_normalize to perform pre-edge subtraction and normalization
  3. Call larch_plot with plot_type="norm" to generate a publication-quality plot

Tool Reference

I/O Tools

Tool Description
larch_load_spectrum Load a spectrum from file (.xdi, .dat, .csv, .prj, etc.)
larch_read_athena_project Read/inspect Athena project files
larch_list_groups List all loaded spectrum groups
larch_inspect_group Detailed view of a group's arrays and scalars
larch_remove_group Remove a group to free memory

XAFS Analysis Tools

Tool Description
larch_normalize Pre-edge subtraction and normalization (wraps pre_edge)
larch_autobk EXAFS background removal (AUTOBK algorithm)
larch_xftf Forward Fourier transform: chi(k) -> chi(R)
larch_xftr Back Fourier transform: chi(R) -> chi(q)
larch_fluo_corr Fluorescence self-absorption correction
larch_mback_norm MBACK normalization (alternative for problematic data)
larch_estimate_noise Noise estimation in chi(k) and chi(R)
larch_cauchy_wavelet Cauchy wavelet transform for simultaneous k- and R-resolution
larch_rebin Rebin to standard 3-region XAFS energy grid

Plot Tools

Tool Description
larch_plot Publication-quality plots (mu, norm, flat, dmude, chi_k, chi_r, chi_q, cauchy_wavelet)

Math Tools

Tool Description
larch_smooth Smooth arrays with Lorentzian/Gaussian/Voigt kernel
larch_deriv Numerical derivative
larch_interpolate Interpolate onto new energy grid
larch_merge_groups Merge/average multiple spectra
larch_deglitch Remove glitch points

Fitting Tools

Tool Description
larch_lcf Linear combination fitting against standards
larch_pca Principal Component Analysis
larch_feffit FEFFIT EXAFS shell fitting
larch_peak_fit Peak fitting (Gaussian, Voigt, etc.)

Interactive Tools

Tool Description
larch_interactive_norm Open an interactive HTML page to tune normalization parameters
larch_apply_norm_params Apply normalization parameters from a saved JSON file

Interactive normalization workflow

  1. Ask Claude to interactively normalize your spectrum
  2. An HTML page opens in your browser with Plotly.js plots and sliders
  3. Adjust E0, pre-edge range, post-edge range, and polynomial degree — plots update in real time
  4. Click Save Parameters to download a JSON file, or Copy to Clipboard
  5. Tell Claude to apply the saved parameters

"Load Pdfoil.prj and let me interactively choose the normalization parameters"

Advanced

Tool Description
larch_run_code Execute arbitrary Python code in the larch session

Resources

The server exposes documentation resources that Claude can read on demand:

  • larch://docs/xafs — XAFS analysis reference
  • larch://docs/io — I/O functions reference
  • larch://docs/fitting — Fitting reference
  • larch://docs/feff — FEFF interface reference
  • larch://docs/interactive — Interactive tools reference
  • larch://docs/examples/xanes — XANES workflow example
  • larch://docs/examples/exafs — EXAFS workflow example

Links

License

BSD-3-Clause (matching xraylarch)

from github.com/Joint-Photon-Sciences-Institute/xraylarch-mcp

Install Xraylarch in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install xraylarch-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add xraylarch-mcp -- uvx xraylarch-mcp

FAQ

Is Xraylarch MCP free?

Yes, Xraylarch MCP is free — one-click install via Unyly at no cost.

Does Xraylarch need an API key?

No, Xraylarch runs without API keys or environment variables.

Is Xraylarch hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Xraylarch in Claude Desktop, Claude Code or Cursor?

Open Xraylarch on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Xraylarch with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs