xraylib-mcp-server について
xraylib-mcp-serverは、xraylibのX線相互作用データをMCP経由で研究者や科学アプリケーションに提供します。104のツールで、原子・化合物の特性、断面積、蛍光、散乱、参照データを扱います。
主な機能
- 01原子と化合物の特性を検索
- 02断面積と蛍光データの取得
- 03散乱と屈折率の値を計算
- 04NIST化合物と放射性核種データへのアクセス
- 05元素記号の変換と化学式の解析
活用シーン
- 01X線エネルギーや吸収端を調べる
- 02散乱または蛍光特性を分析する
- 03化合物や放射性核種のデータを取得する
MCP 対応
104のツールを公開し、MCPクライアントから断面積、蛍光線、吸収端エネルギー、化合物・放射性核種の記録などxraylibのデータを検索できます。stdio、HTTP、SSEトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
xraylib MCP サーバー
xraylib のX線相互作用データに標準化されたインターフェースでアクセスできる Model Context Protocol(MCP)サーバーです。MCP 互換クライアントから、断面積、蛍光線、吸収端エネルギーなどをクエリできます。
目次
機能
このサーバーは、以下のカテゴリに分類された104個のツールを提供します。
ユーティリティツール
- AtomicNumberToSymbol / SymbolToAtomicNumber -- 原子番号と元素記号を相互に変換します
- AtomicWeight -- 原子量(g/mol)
- ElementDensity -- 元素の密度(g/cm3)
- ElectronConfig -- 指定した殻の電子配置
- CompoundParser -- 化学式を解析します(例:
SiO2、Ca5(PO4)3F) - Atomic_Factors -- 原子散乱因子 f0、f'、f''
線、吸収端、殻の特性
- LineEnergy / EdgeEnergy -- 蛍光線と吸収端のエネルギー(keV)
- FluorYield / JumpFactor / RadRate -- 蛍光収率、ジャンプ係数、放射遷移率
- AtomicLevelWidth -- 原子準位の自然幅(keV)
断面積(元素)
- CS_Total、CS_Photo、CS_Rayl、CS_Compt、CS_Energy、CS_KN -- 質量断面積(cm2/g)
- CSb_Total、CSb_Photo、CSb_Rayl、CSb_Compt -- 原子断面積(barn/atom)
蛍光断面積
- CS_FluorLine / CSb_FluorLine -- 線蛍光断面積
- CS_FluorShell / CSb_FluorShell -- 殻蛍光断面積
- 全、放射、非放射、およびカスケードなしのオプションを備えた Kissel 光電離バリアント
微分断面積
- DCS_Rayl / DCS_Compt および barn/atom バリアント -- 非偏光微分断面積
- DCSP_Rayl / DCSP_Compt および barn/atom バリアント -- 偏光微分断面積
散乱因子
- FF_Rayl / SF_Compt -- Rayleigh 形状因子と Compton 散乱関数
- MomentTransf / ComptonEnergy -- 運動量移行と Compton 散乱後の光子エネルギー
- Fi / Fii -- 異常散乱因子
- ComptonProfile / ComptonProfile_Partial -- Compton プロファイル(全殻および殻ごと)
Auger および Coster-Kronig 遷移
- AugerRate / AugerYield -- Auger 遷移率および収率
- CosKronTransProb -- Coster-Kronig 遷移確率
化合物の断面積
- 化合物のすべての CS/CSb、DCS/DCSb、DCSP/DCSPb バリアント(化学式で指定)
- 化合物の Kissel 光電離バリアント
屈折率
- Refractive_Index_Re / Refractive_Index_Im -- 屈折率の実部と虚部
NIST 化合物
- GetCompoundDataNISTByName / GetCompoundDataNISTByIndex / GetCompoundDataNISTList -- 組み込みの NIST 化合物データベースにアクセスします
放射性核種データ
- GetRadioNuclideDataByName / GetRadioNuclideDataByIndex / GetRadioNuclideDataList -- 組み込みの放射性核種データベース(X 線線、強度、ガンマ線エネルギー)にアクセスします
定数一覧
- ListLineConstants / ListShellConstants / ListTransitionConstants / ListAugerConstants / ListNISTCompoundConstants -- 有効な定数名を列挙します
インストール
uv を使用する(推奨)
uv tool install xraylib-mcp-server
pip を使用する
pip install xraylib-mcp-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 8000
Claude Desktop で使用する
Claude Desktop の設定に追加します。
{
"mcpServers": {
"xraylib": {
"command": "uvx",
"args": ["xraylib-mcp-server"]
}
}
}
または、ビルド済みの Docker イメージを使用します。
{
"mcpServers": {
"xraylib": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/tschoonj/xraylib-mcp-server:latest"]
}
}
}
VS Code で使用する
VS Code の設定(.vscode/settings.json またはユーザー設定)に追加します。
{
"mcp.servers": {
"xraylib": {
"command": "uvx",
"args": ["xraylib-mcp-server"]
}
}
}
または、ビルド済みの Docker イメージを使用します。
{
"mcp.servers": {
"xraylib": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/tschoonj/xraylib-mcp-server:latest"]
}
}
}
Claude Code で使用する
CLI を使用してサーバーを追加します。
claude mcp add xraylib -- uvx xraylib-mcp-server
または、ビルド済みの Docker イメージを使用します。
claude mcp add xraylib -- docker run -i --rm ghcr.io/tschoonj/xraylib-mcp-server:latest
開発サーバーとして
# Run in development mode with MCP inspector
uv run mcp dev src/xraylib_mcp_server/server.py
Docker を使用する
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.0
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 8000
開発
セットアップ
# Clone the repository
git clone https://github.com/tschoonj/xraylib-mcp-server.git
cd xraylib-mcp-server
# Install development dependencies
uv sync --dev
テストの実行
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/xraylib_mcp_server --cov-report=html
コード品質
# Lint
uv run ruff check .
# Format
uv run ruff format .
# Type check
uv run mypy src/ --ignore-missing-imports
ライセンス
BSD 3-Clause License -- 詳細は LICENSE を参照してください。
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 新機能のテストを追加します
- テストスイートを実行します
- プルリクエストを送信します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。