xraylib MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xraylib MCP ServerGet the K-alpha line energy for iron."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
xraylib MCP Server
A Model Context Protocol (MCP) server that provides access to xraylib X-ray interaction data through a standardized interface. Query cross-sections, fluorescence lines, edge energies, and more from any MCP-compatible client.
Table of Contents
Related MCP server: MCP Server Sample
Features
This server exposes 104 tools organized into the following categories:
Utility tools
AtomicNumberToSymbol / SymbolToAtomicNumber -- convert between atomic numbers and element symbols
AtomicWeight -- atomic weight (g/mol)
ElementDensity -- element density (g/cm3)
ElectronConfig -- electron configuration for a given shell
CompoundParser -- parse chemical formulas (e.g.
SiO2,Ca5(PO4)3F)Atomic_Factors -- atomic scattering factors f0, f', f''
Line, edge, and shell properties
LineEnergy / EdgeEnergy -- fluorescence line and absorption edge energies (keV)
FluorYield / JumpFactor / RadRate -- fluorescence yields, jump factors, radiative rates
AtomicLevelWidth -- natural widths of atomic levels (keV)
Cross-sections (element)
CS_Total, CS_Photo, CS_Rayl, CS_Compt, CS_Energy, CS_KN -- mass cross-sections (cm2/g)
CSb_Total, CSb_Photo, CSb_Rayl, CSb_Compt -- atomic cross-sections (barn/atom)
Fluorescence cross-sections
CS_FluorLine / CSb_FluorLine -- line fluorescence cross-sections
CS_FluorShell / CSb_FluorShell -- shell fluorescence cross-sections
Kissel photoionization variants with full, radiative, nonradiative, and no cascade options
Differential cross-sections
DCS_Rayl / DCS_Compt and barn/atom variants -- unpolarized differential cross-sections
DCSP_Rayl / DCSP_Compt and barn/atom variants -- polarized differential cross-sections
Scattering factors
FF_Rayl / SF_Compt -- Rayleigh form factor and Compton scattering function
MomentTransf / ComptonEnergy -- momentum transfer and Compton-scattered photon energy
Fi / Fii -- anomalous scattering factors
ComptonProfile / ComptonProfile_Partial -- Compton profiles (total and per-shell)
Auger and Coster-Kronig transitions
AugerRate / AugerYield -- Auger transition rates and yields
CosKronTransProb -- Coster-Kronig transition probabilities
Compound cross-sections
All CS/CSb, DCS/DCSb, and DCSP/DCSPb variants for compounds (by chemical formula)
Kissel photoionization variants for compounds
Refractive index
Refractive_Index_Re / Refractive_Index_Im -- real and imaginary parts of the refractive index
NIST compounds
GetCompoundDataNISTByName / GetCompoundDataNISTByIndex / GetCompoundDataNISTList -- access the built-in NIST compound database
Radionuclide data
GetRadioNuclideDataByName / GetRadioNuclideDataByIndex / GetRadioNuclideDataList -- access the built-in radionuclide database (X-ray lines, intensities, gamma energies)
Constant listings
ListLineConstants / ListShellConstants / ListTransitionConstants / ListAugerConstants / ListNISTCompoundConstants -- enumerate valid constant names
Installation
Using uv (recommended)
uv tool install xraylib-mcp-serverUsing pip
pip install xraylib-mcp-serverUsage
As a standalone server
# Run with stdio transport (for Claude Desktop, etc.)
xraylib-mcp-server
# Run with HTTP transport
xraylib-mcp-server --transport http --port 8000
# Run with SSE transport
xraylib-mcp-server --transport sse --port 8000With Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"xraylib": {
"command": "uvx",
"args": ["xraylib-mcp-server"]
}
}
}Or using the pre-built Docker image:
{
"mcpServers": {
"xraylib": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/tschoonj/xraylib-mcp-server:latest"]
}
}
}With VS Code
Add to your VS Code settings (.vscode/settings.json or user settings):
{
"mcp.servers": {
"xraylib": {
"command": "uvx",
"args": ["xraylib-mcp-server"]
}
}
}Or using the pre-built Docker image:
{
"mcp.servers": {
"xraylib": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/tschoonj/xraylib-mcp-server:latest"]
}
}
}With Claude Code
Add the server using the CLI:
claude mcp add xraylib -- uvx xraylib-mcp-serverOr using the pre-built Docker image:
claude mcp add xraylib -- docker run -i --rm ghcr.io/tschoonj/xraylib-mcp-server:latestAs a development server
# Run in development mode with MCP inspector
uv run mcp dev src/xraylib_mcp_server/server.pyUsing Docker
Pre-built images from GitHub Container Registry
# Pull the latest image
docker pull ghcr.io/tschoonj/xraylib-mcp-server:latest
# Run with stdio transport
docker run -i --rm ghcr.io/tschoonj/xraylib-mcp-server:latest
# Run with HTTP transport on port 8000
docker run --rm -p 8000:8000 ghcr.io/tschoonj/xraylib-mcp-server:latest xraylib-mcp-server --transport http --port 8000
# Use a specific version
docker pull ghcr.io/tschoonj/xraylib-mcp-server:0.1.0
docker run -i --rm ghcr.io/tschoonj/xraylib-mcp-server:0.1.0Local development with Docker
# Build the Docker image locally
docker build -t xraylib-mcp-server .
# Run with stdio transport
docker run -i --rm xraylib-mcp-server
# Run with HTTP transport on port 8000
docker run --rm -p 8000:8000 xraylib-mcp-server xraylib-mcp-server --transport http --port 8000Development
Setup
# Clone the repository
git clone https://github.com/tschoonj/xraylib-mcp-server.git
cd xraylib-mcp-server
# Install development dependencies
uv sync --devRunning tests
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/xraylib_mcp_server --cov-report=htmlCode quality
# Lint
uv run ruff check .
# Format
uv run ruff format .
# Type check
uv run mypy src/ --ignore-missing-importsLicense
BSD 3-Clause License -- see LICENSE for details.
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Run the test suite
Submit a pull request
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tschoonj/xraylib-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server