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.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server for integrating with various LLM clients like Claude Desktop.Last updated1161MIT
- AlicenseBqualityDmaintenanceAn educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server integrating with various LLM clients.Last updated2MIT
- Flicense-qualityDmaintenanceA Model Context Protocol server that bridges MCP clients with local LLM services, enabling seamless integration with MCP-compatible applications through standard tools like chat completion, model listing, and health checks.Last updated
- Flicense-qualityFmaintenanceA Model Context Protocol (MCP) server that provides programmatic access to Catalysis Hub's GraphQL API, enabling querying of catalytic reactions, material systems, publications, and surface reaction data.Last updated2
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP (Model Context Protocol) server for Appwrite
MCP server for fcc-ecfs
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