poker-mcp 1.8.3 → 1.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Yoshihiro Hirao
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -4,14 +4,82 @@ YAML-based input file management tool for radiation-shielding calculation code P
4
4
 
5
5
  ## 📋 クイック情報
6
6
 
7
- - **バージョン**: 1.6.0
7
+ - **バージョン**: 1.9.9
8
+ - **ツール数**: 36メソッド
8
9
  - **プロトコル**: MCP (Model Context Protocol) 1.0.0 完全準拠
9
10
  - **メインサーバー**: `src/mcp_server_stdio_v4.js`
10
11
  - **データ保存**: `~/.poker-mcp/`(`POKER_MCP_HOME`環境変数で変更可)
11
12
  - **核種データ**: `${POKER_INSTALL_PATH}/LIB/ICRP-07.NDX` を直接参照
12
13
  - **実行方式**: STDIO通信(MCPプロトコル標準)
13
14
 
14
- ## 🆕 バージョン1.8.0〜1.8.1の新機能
15
+ ## 🐛 バージョン1.9.9の修正
16
+
17
+ npm で入れた環境(`npx poker-mcp`)でだけ現れる不具合と、失敗の伝え方の不具合を
18
+ 直しました。まっさらな Windows に npm パッケージから入れた環境で、CAD 連携を含む
19
+ 計算結果がリポジトリ上の実行と全行一致することを確認しています。
20
+
21
+ ### `poker_generateInput` が npm 版で動かなかった
22
+
23
+ `tools/gen_input.py` と、それが読み込む `tools/scatter.py` が `package.json` の
24
+ `files` から漏れていました。リポジトリから動かすと問題なく、npm から入れた環境で
25
+ だけ `No module named 'gen_input'` で失敗していました。
26
+
27
+ ### 失敗が成功として返っていた
28
+
29
+ CAD 系などのハンドラが返す `{ content, isError }` を、共通の処理がもう一度包んで
30
+ いたため、`isError: true` が本文の中に埋もれ、MCP の上では成功として伝わって
31
+ いました。AI クライアントは失敗に気づかないまま次の手順へ進みます。
32
+
33
+ すでに MCP の応答形式になっている戻り値はそのまま返し、`{ success: false, ... }`
34
+ を返すハンドラには `isError: true` を付けるようにしました。立体・ゾーン・線源など
35
+ の検証エラーも、MCP の上で失敗として伝わります。
36
+
37
+ ### 計算エラーの処理そのものが落ちていた
38
+
39
+ `poker_executeCalculation` が計算エラーを返す途中で
40
+ `Cannot read properties of undefined (reading '_isRecoverableError')` になり、
41
+ 本来のエラー内容が隠れていました。ハンドラがオブジェクトから切り離して呼ばれる
42
+ ため `this` が未定義になっていたのが原因です。
43
+
44
+ ## 🆕 バージョン1.9.8の新機能
45
+
46
+ ### 📜 `poker_getSchema` — ファイル書式を JSON Schema で取得
47
+
48
+ POKER が扱う4種類のファイルの書式を、機械可読な形で取得できます。
49
+
50
+ ```javascript
51
+ poker_getSchema() // 入力 YAML
52
+ poker_getSchema({ kind: "paths" }) // CAD から抽出した経路ファイル
53
+ poker_getSchema({ kind: "summary" })
54
+ poker_getSchema({ kind: "dose" })
55
+ ```
56
+
57
+ スキーマは静的なファイルではなく、`poker_cui --schema` をその場で呼んで
58
+ 生成します。そのため実行環境の POKER の版と材料ライブラリに必ず一致し、
59
+ `lib_material.dat` に材料を追加していれば、その材料も材料名の一覧
60
+ (`$defs` の `x-poker-names`)に現れます。
61
+
62
+ 規定するのは書式・型・値域までです。参照の解決(`zone.body_name` が
63
+ `body` に在るか)や名前の存在確認は従来どおり `poker_cui --validate`
64
+ (`poker_executeCalculation` が内部で実施)の担当で、両者で役割が分かれます。
65
+
66
+ `.dose` のスキーマには、YAML の頭部に続く数値表の読み方
67
+ (ブロックの区切り・列の索引 `[dose, ray, energy]`・行の索引
68
+ `i + j*number_i + k*number_i*number_j`)が `x-poker-data-layout` として
69
+ 書かれています。
70
+
71
+ ### 🐛 `poker_getDoseMap` が線量種別の増加に追随
72
+
73
+ `.dose` の列構成を、線量種別3種・線種4種と決め打ちしていました。線量種別は
74
+ ライブラリ設定で増えるため(`E(PA)` や空気カーマを足した場合)、その環境では
75
+ 誤った列を読むか、集計ブロックを見つけられず失敗していました。
76
+
77
+ 冒頭の `information` から `dose_type` / `ray_type` / 線源ごとの `energy_bin` を
78
+ 数えて列構成を決めるようにしました。1D/2D/3D 検出器の全評価点について、
79
+ `.summary` の `statistics_total`(min/max)と一致することを
80
+ `npm run test:schema` で検証しています。
81
+
82
+ ## 🆕 バージョン1.8.0〜1.8.3の新機能
15
83
 
16
84
  ### 📐 CAD連携が MCP だけで完結
17
85
  従来、CAD からの経路抽出は MCP を経由せず、FreeCAD を手で起動する必要が
@@ -19,6 +87,7 @@ YAML-based input file management tool for radiation-shielding calculation code P
19
87
  スクリプトを渡す。3 手順すべてが手作業でした。
20
88
 
21
89
  ```javascript
90
+ poker_generateInput({ fcstd: "C:/path/to/model.FCStd" }) // YAML を生成
22
91
  poker_generatePaths({ fcstd: "C:/path/to/model.FCStd" })
23
92
  poker_executeCalculation({ yaml_file: "poker.yaml", path_input: "poker.paths" })
24
93
  ```
@@ -43,6 +112,15 @@ FreeCAD の場所を、環境変数 → PATH → 既定のインストール先
43
112
  解決されていました。MCP サーバの起動場所によっては別の場所を指します。
44
113
 
45
114
 
115
+ ### 📦 CAD連携ツールを npm パッケージに同梱(v1.8.2)
116
+ `poker_generatePaths` が使う Python スクリプトが `files` に含まれておらず、
117
+ GitHub から clone した環境でしか動きませんでした。`npm install` / `npx` でも
118
+ 使えるようにしています。
119
+
120
+ ### 🐛 サマリーの衝突を修正(v1.8.3)
121
+ `generatePaths` が `-p` 付きで作ったサマリーを `executeCalculation` が上書きし、
122
+ 次に `generatePaths` を呼ぶと失敗していました。専用ファイルに分離しています。
123
+
46
124
  ## 🆕 バージョン1.7.0〜1.7.2の新機能
47
125
 
48
126
  ### 📉 サマリー出力量の制御(ThinnedIndices 操作系 3メソッド)
@@ -50,6 +128,9 @@ FreeCAD の場所を、環境変数 → PATH → 既定のインストール先
50
128
  線源分割点と検出器評価点が必要ですが、既定では間引かれるため手で書き足す
51
129
  必要がありました。
52
130
 
131
+ **`poker_generatePaths` が自動で合わせる**ので、通常は意識する必要はありません。
132
+ 手で設定したい場合はこうします。
133
+
53
134
  ```javascript
54
135
  poker_updateThinnedIndices({ fit_for_paths: true })
55
136
  // → 入力の分割定義と検出器グリッドから必要数を計算して設定
@@ -104,16 +185,18 @@ poker_getThinnedIndices()
104
185
 
105
186
  ### 📡 CAD連携レイトレース
106
187
  FreeCAD のソリッドモデルを、STEP のような中間フォーマットを介さず、CSG で
107
- 表現し直す作業も無しに遮蔽体系として扱えます。**MCP の 2 呼び出しで完結**します。
188
+ 表現し直す作業も無しに遮蔽体系として扱えます。**MCP の 3 呼び出しで完結**します。
108
189
 
109
190
  ```javascript
191
+ poker_generateInput({ fcstd: "C:/path/to/model.FCStd" })
110
192
  poker_generatePaths({ fcstd: "C:/path/to/model.FCStd" })
111
193
  poker_executeCalculation({ yaml_file: "poker.yaml", path_input: "poker.paths" })
112
194
  ```
113
195
 
196
+ CAD が正本です。**YAML を手で書く必要はありません。** ソリッドに材質・線源・
197
+ 検出器をカスタムプロパティで設定しておけば、そこから入力が生成されます。
114
198
  線源点→検出器の直線を FreeCAD 側で追跡し、通過した材質と厚さを `.paths` に
115
- 記録して POKER に渡します。分割点の取得、グリッド検出器の展開、ビルドアップ
116
- 等価材料の解決はすべて自動です。
199
+ 記録して POKER に渡します。
117
200
 
118
201
  CSG 経由と一致することを平板・円筒・球の 5 体系で確認済みです。フィレットや
119
202
  自由曲面のように CSG で表現できない形状も扱えます。**複数線源・グリッド検出器・
@@ -156,6 +239,7 @@ numpy はレイトレーサが使いますが、FreeCAD に同梱されている
156
239
  他の CAD で作ったモデルを STEP で読み込んだ場合、材質情報は失われるので
157
240
  FreeCAD 上で設定してください。一度設定すれば `.FCStd` に保存されます。
158
241
 
242
+ まずは [CAD_QUICKSTART.md](./docs/manuals/CAD_QUICKSTART.md)(最短手順と実例)を、
159
243
  詳細は [CAD_RAYTRACE.md](./docs/manuals/CAD_RAYTRACE.md)、フォーマットは
160
244
  [PATHS_FORMAT.md](./docs/manuals/PATHS_FORMAT.md)。
161
245
 
@@ -401,14 +485,14 @@ Claude Desktopで以下のようにテストできます:
401
485
  ## 🏆 主要機能
402
486
 
403
487
  ### ✅ **MCP完全対応**
404
- - **34メソッド完全実装**: 全ての放射線遮蔽計算入力管理機能
488
+ - **36メソッド完全実装**: 全ての放射線遮蔽計算入力管理機能
405
489
  - **JSON-RPC 2.0準拠**: 標準プロトコル完全対応
406
490
  - **STDIO通信**: MCPクライアントとの標準通信方式
407
491
  - **自動バックアップ・ロールバック**: 企業品質のデータ保護
408
492
 
409
493
  ### ✅ **放射線遮蔽計算専用設計**
410
494
  - **10種類の立体形状**: SPH, RCC, RPP, BOX, CMB, TOR, ELL, REC, TRC, WED
411
- - **14種類の材料**: コンクリート、鉛、鉄、VOID等標準遮蔽材料
495
+ - **23種類の材料**: 鉄・鉛・コンクリート(普通/重量3種)・SUS・ポリエチレン等(`lib_material.dat` から読み込み)
412
496
  - **複数線源対応**: 点・体積線源の完全管理
413
497
  - **検出器配置**: 0D/1D/2D/3D検出器の柔軟な配置
414
498
 
@@ -420,7 +504,7 @@ Claude Desktopで以下のようにテストできます:
420
504
 
421
505
  ## 🎯 API構成
422
506
 
423
- ### 🔧 **34メソッド完全実装**
507
+ ### 🔧 **36メソッド完全実装**
424
508
 
425
509
  | **カテゴリ** | **メソッド数** | **機能** | **主要操作** |
426
510
  |-------------|---------------|----------|-------------|
@@ -431,9 +515,12 @@ Claude Desktopで以下のようにテストできます:
431
515
  | **📡 Source** | 3個 | 線源管理 | propose・update・delete |
432
516
  | **🎯 Detector** | 3個 | 検出器管理 | propose・update・delete |
433
517
  | **📏 Unit** | 5個 | 単位設定管理 | propose・get・update・validateIntegrity・analyzeConversion |
434
- | **⚙️ System** | 6個 | システム制御 | applyChanges・executeCalculation・resetYaml・confirmDaughterNuclides・openGui・各種検証 |
518
+ | **📉 ThinnedIndices** | 3個 | サマリー出力量の制御 | propose・get・update |
519
+ | **📐 CAD** | 2個 | CAD から入力と経路を生成 | generateInput・generatePaths |
520
+ | **⚙️ System** | 6個 | システム制御 | applyChanges・executeCalculation・resetYaml・confirmDaughterNuclides・openGui・getDoseMap |
521
+ | **📜 Schema** | 1個 | ファイル書式の取得 | getSchema |
435
522
 
436
- ### 📋 **全34メソッド一覧**
523
+ ### 📋 **全36メソッド一覧**
437
524
  ```
438
525
  Body系 (3): poker_proposeBody, poker_updateBody, poker_deleteBody
439
526
  Zone系 (3): poker_proposeZone, poker_updateZone, poker_deleteZone
@@ -444,8 +531,12 @@ Source系 (3): poker_proposeSource, poker_updateSource, poker_deleteSourc
444
531
  Detector系 (3): poker_proposeDetector, poker_updateDetector, poker_deleteDetector
445
532
  Unit系 (5): poker_proposeUnit, poker_getUnit, poker_updateUnit,
446
533
  poker_validateUnitIntegrity, poker_analyzeUnitConversion
534
+ ThinnedIndices系 (3): poker_proposeThinnedIndices, poker_getThinnedIndices,
535
+ poker_updateThinnedIndices
536
+ CAD系 (2): poker_generateInput, poker_generatePaths
447
537
  System系 (6): poker_applyChanges, poker_executeCalculation, poker_resetYaml,
448
- poker_confirmDaughterNuclides, poker_openGui, 内部検証メソッド群
538
+ poker_confirmDaughterNuclides, poker_openGui, poker_getDoseMap
539
+ Schema系 (1): poker_getSchema
449
540
  ```
450
541
 
451
542
  ## 📁 プロジェクト構造
@@ -462,9 +553,10 @@ poker_mcp/
462
553
  │ │ ├── logger.js # ログ出力(絶対パス)
463
554
  │ │ └── ...
464
555
  │ └── 📁 config/ # 設定管理
556
+ ├── 📁 tools/ # 🔧 CAD連携(レイトレーサ・経路生成)
465
557
  ├── 📁 docs/ # 📚 完全ドキュメント
466
558
  ├── .mcp.json # MCPクライアント接続設定
467
- ├── package.json # パッケージ定義(v1.2.6)
559
+ ├── package.json # パッケージ定義
468
560
  └── README.md # このファイル
469
561
 
470
562
  # 実行時に自動作成されるディレクトリ(POKER_MCP_HOME配下)
@@ -542,7 +634,7 @@ POKER_MCP_HOME/
542
634
 
543
635
  ### **✅ 放射線遮蔽計算特化**
544
636
  - **物理的妥当性**: 全パラメータの物理検証
545
- - **材料データベース**: 標準遮蔽材料14種完備
637
+ - **材料データベース**: 標準遮蔽材料23種(lib_material.dat 準拠)
546
638
  - **単位系管理**: 4キー完全性保証(長さ・角度・密度・放射能)
547
639
  - **計算品質保証**: 自動整合性チェック
548
640
 
@@ -562,6 +654,7 @@ POKER_MCP_HOME/
562
654
 
563
655
  - **POKER**: 放射線遮蔽計算メインコード
564
656
  - **poker_cui**: コマンドライン実行インターフェース
657
+ - **FreeCAD**: CAD連携レイトレース(`poker_generatePaths` を使う場合のみ)
565
658
 
566
659
  ## 🔗 システム要件
567
660
 
@@ -569,6 +662,8 @@ POKER_MCP_HOME/
569
662
  - **OS**: Windows, macOS, Linux
570
663
  - **MCP Client**: Claude Desktop (推奨)、その他MCPクライアント
571
664
  - **メモリ**: 512MB以上推奨(大規模検出器使用時は1GB以上)
665
+ - **POKER 本体**: v2.1.5 以降(`POKER_INSTALL_PATH` で場所を指定)
666
+ - **FreeCAD**: 1.0 以降(CAD連携を使う場合。`FREECAD_PATH`、未設定なら自動探索)
572
667
 
573
668
  ## 🎯 実際の使用ワークフロー
574
669
 
@@ -593,6 +688,46 @@ POKER_MCP_HOME/
593
688
 
594
689
  ## 📝 更新履歴
595
690
 
691
+ ### v1.9.9 (2026-10)
692
+ - 🐛 `tools/gen_input.py` と `tools/scatter.py` を npm パッケージに同梱(`poker_generateInput` が npm 版で動かなかった)
693
+ - 🐛 ツールの失敗が `isError: true` として伝わるよう修正(応答の二重包みを解消、`success: false` に `isError` を付与)
694
+ - 🐛 `poker_executeCalculation` の計算エラー処理が `this` 未定義で落ちていた問題を修正
695
+
696
+ ### v1.9.8 (2026-10)
697
+ - ✨ `poker_getSchema`(入力YAML・`.paths`・`.summary`・`.dose` の書式を JSON Schema で取得)
698
+ - 🐛 `poker_getDoseMap` が `.dose` の列構成を `information` から読むようになり、線量種別の増加に追随
699
+ - ✅ `npm run test:schema` を追加
700
+
701
+ ### v1.9.0〜v1.9.7 (2026-09)
702
+ - ✨ `poker_generateInput`(CAD から入力 YAML を生成)
703
+ - ✨ `generatePaths` が `thinnedindices` を `.paths` 生成に必要な値へ自動調整
704
+ - ✨ `.paths` の座標・個数照合を強化
705
+
706
+ ### v1.8.0〜v1.8.3 (2026-09)
707
+ - ✨ CAD連携が MCP だけで完結(`poker_generatePaths` と `path_input`)
708
+ - ✨ `FREECAD_PATH` 環境変数(未設定なら PATH と既定の場所を自動探索)
709
+ - 🐛 相対パスの解決をプロセスのカレントから `TASKS_DIR` 基準に修正
710
+ - 🐛 `generatePaths` と `executeCalculation` のサマリー衝突を修正
711
+
712
+ ### v1.7.0〜v1.7.2 (2026-09)
713
+ - ✨ ThinnedIndices 操作系 3メソッド(サマリー出力量の制御)
714
+ - ✨ `get` 系が保留中の変更を `pending` として併記
715
+ - ✨ `.paths` の座標照合(検出器を動かして再生成し忘れた場合を検出)
716
+
717
+ ### v1.6.0 (2026-09)
718
+ - ✨ CAD連携レイトレースのツール群と `.paths` フォーマット
719
+ - ✨ 材料システムを `lib_material.dat` 準拠に
720
+
721
+ ### v1.5.0 (2026-08)
722
+ - ✨ `poker_openGui` で POKER を閉じずに表示を切り替え(POKER 2.1.1 以降)
723
+ - 🐛 起動失敗時の偽の成功報告を修正
724
+
725
+ ### v1.4.0 (2026-07)
726
+ - ✨ 子孫核種の自動管理(ICRP-07 準拠)
727
+
728
+ ### v1.3.0 (2026-06)
729
+ - ✨ `poker_getDoseMap`(グリッド検出器の線量マップ取得)
730
+
596
731
  ### v1.2.8 (2026-05-16)
597
732
  - ✨ `poker_openGui` メソッドを新設(POKER.exe でGUI確認)
598
733
  - ✨ 起動前に `applyChanges` を自動実行
@@ -628,6 +763,16 @@ POKER_MCP_HOME/
628
763
  - 初期リリース
629
764
  - YAML管理基本機能
630
765
 
766
+ ## 📜 ライセンス
767
+
768
+ **MIT License** — 著作権 (c) 2025-2026 Yoshihiro Hirao。全文は
769
+ [LICENSE](LICENSE) を参照してください。
770
+
771
+ このライセンスが及ぶのは本リポジトリの内容(poker-mcp)だけです。POKER itself is
772
+ obtained separately and licensed separately. poker-mcp は `poker_cui` を外部
773
+ プロセスとして起動するだけなので、POKER 本体の許諾には影響しません。FreeCAD も
774
+ 別途入手が必要で、それぞれのライセンスに従います。
775
+
631
776
  ## 📞 サポート・詳細情報
632
777
 
633
778
  - **📖 詳細README**: [docs/README.md](docs/README.md)
@@ -638,6 +783,6 @@ POKER_MCP_HOME/
638
783
 
639
784
  ---
640
785
 
641
- **🎯 Poker MCP Server v1.4.0**
786
+ **🎯 Poker MCP Server v1.9.9**
642
787
  **プロトコル**: MCP 1.0.0 完全準拠
643
- **作者**: Yoshihiro Hirao | **ライセンス**: ISC
788
+ **作者**: Yoshihiro Hirao | **ライセンス**: MIT
package/package.json CHANGED
@@ -1,62 +1,70 @@
1
- {
2
- "name": "poker-mcp",
3
- "version": "1.8.3",
4
- "description": "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",
5
- "main": "src/mcp_server_stdio_v4.js",
6
- "type": "module",
7
- "bin": {
8
- "poker-mcp": "src/mcp_server_stdio_v4.js"
9
- },
10
- "scripts": {
11
- "start": "node src/mcp_server_stdio_v4.js",
12
- "dev": "nodemon src/mcp_server_stdio_v4.js",
13
- "prepare": "echo 'NPX ready: npx poker-mcp'",
14
- "check:manifest": "node scripts/check-manifest-sync.mjs",
15
- "test:pending": "node tests/pending-view.test.mjs",
16
- "test:cad": "node tests/cad-e2e.test.mjs"
17
- },
18
- "keywords": [
19
- "mcp",
20
- "model-context-protocol",
21
- "yaml",
22
- "radiation",
23
- "shielding",
24
- "nuclear",
25
- "radioisotope",
26
- "medical",
27
- "accelerator",
28
- "POKER",
29
- "physics",
30
- "validation",
31
- "npx",
32
- "point-kernel",
33
- "collision-detection",
34
- "daughter-nuclide"
35
- ],
36
- "author": "Yoshihiro Hirao <tora@pointkernel.com>",
37
- "license": "ISC",
38
- "repository": {
39
- "type": "git",
40
- "url": "git+https://github.com/Hirao-Y/poker_mcp.git"
41
- },
42
- "homepage": "https://github.com/Hirao-Y/poker_mcp#readme",
43
- "engines": {
44
- "node": ">=18.0.0"
45
- },
46
- "dependencies": {
47
- "@modelcontextprotocol/sdk": "^1.29.0",
48
- "js-yaml": "^4.1.0",
49
- "winston": "^3.17.0",
50
- "zod": "^3.24.2"
51
- },
52
- "files": [
53
- "src/",
54
- "tools/gen_paths.py",
55
- "tools/ray_trace_tri.py",
56
- "tools/poker_lib.py",
57
- "tools/audit_mfp.py",
58
- "tools/compare_poker_trace.py",
59
- "README.md",
60
- ".mcp.json"
61
- ]
62
- }
1
+ {
2
+ "name": "poker-mcp",
3
+ "version": "1.9.9",
4
+ "description": "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",
5
+ "main": "src/mcp_server_stdio_v4.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "poker-mcp": "src/mcp_server_stdio_v4.js"
9
+ },
10
+ "scripts": {
11
+ "start": "node src/mcp_server_stdio_v4.js",
12
+ "dev": "nodemon src/mcp_server_stdio_v4.js",
13
+ "prepare": "echo 'NPX ready: npx poker-mcp'",
14
+ "check:manifest": "node scripts/check-manifest-sync.mjs",
15
+ "test:pending": "node tests/pending-view.test.mjs",
16
+ "test:cad": "node tests/cad-e2e.test.mjs",
17
+ "test:cad-full": "node tests/cad-full.test.mjs",
18
+ "test:cad-validate": "node tests/cad-validate.test.mjs",
19
+ "test:cad-pipe": "node tests/cad-pipe.test.mjs",
20
+ "test:cad-thinned": "node tests/cad-thinned-fit.test.mjs",
21
+ "test:schema": "node tests/schema-dose.test.mjs"
22
+ },
23
+ "keywords": [
24
+ "mcp",
25
+ "model-context-protocol",
26
+ "yaml",
27
+ "radiation",
28
+ "shielding",
29
+ "nuclear",
30
+ "radioisotope",
31
+ "medical",
32
+ "accelerator",
33
+ "POKER",
34
+ "physics",
35
+ "validation",
36
+ "npx",
37
+ "point-kernel",
38
+ "collision-detection",
39
+ "daughter-nuclide"
40
+ ],
41
+ "author": "Yoshihiro Hirao <tora@pointkernel.com>",
42
+ "license": "MIT",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "git+https://github.com/Hirao-Y/poker_mcp.git"
46
+ },
47
+ "homepage": "https://github.com/Hirao-Y/poker_mcp#readme",
48
+ "engines": {
49
+ "node": ">=18.0.0"
50
+ },
51
+ "dependencies": {
52
+ "@modelcontextprotocol/sdk": "^1.29.0",
53
+ "js-yaml": "^4.1.0",
54
+ "winston": "^3.17.0",
55
+ "zod": "^3.24.2"
56
+ },
57
+ "files": [
58
+ "src/",
59
+ "tools/gen_input.py",
60
+ "tools/gen_paths.py",
61
+ "tools/scatter.py",
62
+ "tools/ray_trace_tri.py",
63
+ "tools/poker_lib.py",
64
+ "tools/audit_mfp.py",
65
+ "tools/compare_poker_trace.py",
66
+ "README.md",
67
+ "LICENSE",
68
+ ".mcp.json"
69
+ ]
70
+ }