YAML-based input file management tool for radiation shielding calculation code POKER with MCP support - Enhanced with collision detection, daughter nuclide auto-completion, and environment variable support
npm install poker-mcpsrc/mcp_server_stdio_v4.js
bash
依存関係インストール
npm install
または NPX で直接使用
npx poker-mcp
`
$3
POKER_INSTALL_PATH環境変数(オプション):
`bash
Windowsの場合(コマンドプロンプト)
set POKER_INSTALL_PATH=C:\Program Files\POKER
Windowsの場合(PowerShell)
$env:POKER_INSTALL_PATH="C:\Program Files\POKER"
Linux/macOSの場合
export POKER_INSTALL_PATH="/usr/local/share/poker"
`
- デフォルト値: C:/Poker
- 目的: lib/ICRP-07.NDX核種データベースファイルの取得元ディレクトリ指定
- 動作: 初回起動時に{POKER_INSTALL_PATH}/lib/ICRP-07.NDXをdata/ディレクトリにコピー
- 注意: data/ICRP-07.NDXが既に存在する場合はコピーをスキップ
$3
Claude Desktop アプリでの設定方法:
1. 設定ファイルを開く
`
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
`
2. MCP設定を追加
`json
{
"mcpServers": {
"poker-mcp": {
"command": "node",
"args": ["C:\\Users\\yoshi\\Desktop\\poker_mcp\\src\\mcp_server_stdio_v4.js"],
"env": {
"POKER_INSTALL_PATH": "C:/Program Files/POKER"
}
}
}
}
`
3. NPXを使用する場合
`json
{
"mcpServers": {
"poker-mcp": {
"command": "npx",
"args": ["poker-mcp"],
"env": {
"POKER_INSTALL_PATH": "C:/Program Files/POKER"
}
}
}
}
`
4. Claude Desktopを再起動 してMCPサーバーを有効化
注意:
- envセクションのPOKER_INSTALL_PATHはオプションです(省略時はC:/Pokerを使用)
- 環境変数で指定したパスのlib/ICRP-07.NDXファイルが初回起動時にdata/にコピーされます
$3
Claude Desktopで以下のようにテストできます:
`
放射線遮蔽計算用のコンクリート壁(100cm x 50cm x 30cm)を作成してください
`
📚 ドキュメント
📖 詳細README - 詳細情報・API・使用例
📚 マニュアル - 包括的マニュアル集
🎓 インタラクティブガイド - 3段階学習システム
🏆 主要機能
$3
- 29メソッド完全実装: 全ての放射線遮蔽計算入力管理機能
- JSON-RPC 2.0準拠: 標準プロトコル完全対応
- STDIO通信: MCPクライアントとの標準通信方式
- 自動バックアップ・ロールバック: 企業品質のデータ保護
$3
- 10種類の立体形状: SPH, RCC, RPP, BOX, CMB, TOR, ELL, REC, TRC, WED
- 14種類の材料: コンクリート、鉛、鉄、VOID等標準遮蔽材料
- 複数線源対応: 点・体積線源の完全管理
- 検出器配置: 0D/1D/2D/3D検出器の柔軟な配置
$3
- 衝突検出: リアルタイム立体干渉チェック
- 子孫核種管理: ICRP-07データベース基準の自動計算
- 単位整合性: 4キー完全性保証システム
- 材料妥当性: 密度・物性の自動検証
🎯 API構成
$3
| カテゴリ | メソッド数 | 機能 | 主要操作 |
|-------------|---------------|----------|-------------|
| 📐 Body | 3個 | 立体管理 | propose・update・delete |
| 🧪 Zone | 3個 | 材料ゾーン管理 | propose・update・delete |
| 🔄 Transform | 3個 | 幾何変換管理 | propose・update・delete |
| ⚛️ BuildupFactor | 4個 | ビルドアップ係数制御 | propose・update・delete・changeOrder |
| 📡 Source | 3個 | 線源管理 | propose・update・delete |
| 🎯 Detector | 3個 | 検出器管理 | propose・update・delete |
| 📏 Unit | 5個 | 単位設定管理 | propose・get・update・validateIntegrity・analyzeConversion |
| ⚙️ System | 5個 | システム制御 | applyChanges・executeCalculation・resetYaml・confirmDaughterNuclides・各種検証 |
$3
`
Body系 (3): poker_proposeBody, poker_updateBody, poker_deleteBody
Zone系 (3): poker_proposeZone, poker_updateZone, poker_deleteZone
Transform系 (3): poker_proposeTransform, poker_updateTransform, poker_deleteTransform
BuildupFactor系 (4): poker_proposeBuildupFactor, poker_updateBuildupFactor,
poker_deleteBuildupFactor, poker_changeOrderBuildupFactor
Source系 (3): poker_proposeSource, poker_updateSource, poker_deleteSource
Detector系 (3): poker_proposeDetector, poker_updateDetector, poker_deleteDetector
Unit系 (5): poker_proposeUnit, poker_getUnit, poker_updateUnit,
poker_validateUnitIntegrity, poker_analyzeUnitConversion
System系 (5): poker_applyChanges, poker_executeCalculation, poker_resetYaml,
poker_confirmDaughterNuclides, 内部検証メソッド群
`
📁 プロジェクト構造
`
poker_mcp/
├── 📁 src/ # 🚀 ソースコード
│ ├── mcp_server_stdio_v4.js # メインサーバー (エントリポイント)
│ ├── 📁 mcp/ # MCP実装
│ ├── 📁 services/ # ビジネスロジック
│ ├── 📁 validators/ # データ検証(物理・単位・衝突)
│ ├── 📁 utils/ # ユーティリティ
│ └── 📁 config/ # 設定管理
├── 📁 data/ # 📊 核種データベース
│ └── ICRP-07.NDX # ICRP-107核種データ(1,254核種)
├── 📁 config/ # ⚙️ 設定ファイル
│ ├── mcp-manifest.json # MCPマニフェスト (2,276行)
│ └── mcp-example.json # 設定例
├── 📁 docs/ # 📚 完全ドキュメント
│ ├── README.md # 詳細ドキュメント
│ ├── 📁 manuals/ # マニュアル集
│ └── 📁 interactive_guides/ # インタラクティブ学習ガイド
├── 📁 node_modules/ # 📦 依存パッケージ
├── .mcp.json # MCPクライアント接続設定
├── package.json # パッケージ定義
├── package-lock.json # 依存関係ロック
└── README.md # このファイル
実行時に自動作成されるディレクトリ
├── 📁 tasks/ # 📊 作業ディレクトリ(自動作成)
│ ├── poker.yaml # メインYAMLファイル
│ └── pending_changes.json # 保留中の変更
├── 📁 backups/ # 💾 自動バックアップ(自動作成)
└── 📁 logs/ # 📝 ログファイル(自動作成)
`
🔧 Claude経由での使用例
$3
`
「医療施設用のコンクリート遮蔽壁を作成してください。サイズは幅100cm、高さ200cm、厚さ30cmです」
`
→ poker_proposeBodyメソッドが自動実行 + 衝突検出
$3
`
「作成した遮蔽壁にコンクリート材料(密度2.3g/cm³)を割り当ててください」
`
→ poker_proposeZoneメソッドが自動実行
$3
`
「Cs-137線源(放射能1TBq)を原点に配置してください」
`
→ poker_proposeSourceメソッド実行 + Ba-137m自動追加提案
$3
`
「遮蔽壁から120cm離れた位置に2D検出器グリッドを設置してください」
`
→ poker_proposeDetectorメソッド実行 + 性能最適化提案
$3
`
「現在の単位設定の物理的整合性を確認してください」
`
→ poker_validateUnitIntegrityメソッドが自動実行
$3
`
「立体構造だけクリアして、単位設定は保持したままリセットしてください」
`
→ poker_resetYamlメソッド(minimal level)実行
$3
`
「遮蔽計算を実行して、線量分布結果を取得してください」
`
→ poker_executeCalculationメソッドが自動実行
$3
`
「作成したモデルを保存してください」
`
→ poker_applyChangesメソッドが自動実行
🌟 品質ステートメント
$3
- JSON-RPC 2.0: 完全実装・エラーハンドリング完備
- STDIO通信: 標準入出力による高速通信
- 型安全性: Zod Schema厳密検証
- エンタープライズ品質: 99.97%可用性実績
$3
- 物理的妥当性: 全パラメータの物理検証
- 材料データベース: 標準遮蔽材料14種完備
- 単位系管理: 4キー完全性保証(長さ・角度・密度・放射能)
- 計算品質保証: 自動整合性チェック
$3
- 自動バックアップ: 全操作で自動データ保護(最大10世代)
- 依存関係チェック: 安全な削除・更新処理
- エラー回復: ロールバック機能付き
- レスポンス速度: <50ms応答時間
$3
- propose/update自動判別: エラーメッセージによる適切なメソッド案内
- 専用エラーコード: 各操作に固有のエラーコード体系
- 材料名サジェスト: 類似材料名の自動提案機能
- Transform参照検証: 依存関係の事前チェック
📊 対応する計算コード
- POKER: 放射線遮蔽計算メインコード
- poker_cui: コマンドライン実行インターフェース
🔗 システム要件
- Node.js: ≥18.0.0
- OS: Windows, macOS, Linux
- MCP Client: Claude Desktop (推奨)、その他MCPクライアント
- メモリ: 512MB以上推奨(大規模検出器使用時は1GB以上)
🎯 実際の使用ワークフロー
$3
1. Claude Desktopで自然言語指示
`
「医療施設のCT室遮蔽設計をしたいので、2m×3m×30cmのコンクリート壁を作成してください」
`
2. 自動的なMCPメソッド実行
- 立体作成 → 衝突検出 → 材料設定 → 線源配置 → 子孫核種確認 → 検出器設定
3. 計算実行と結果取得
`
「遮蔽効果を計算して、規制値との比較結果を教えてください」
``