poker-mcp 1.2.0 → 1.2.5
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/.mcp.json +21 -2
- package/README.md +36 -9
- package/package.json +2 -3
- package/src/services/DataManager.js +83 -0
- package/data/ICRP-07.NDX +0 -1253
package/.mcp.json
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"command": "node",
|
|
10
10
|
"args": ["src/mcp_server_stdio_v4.js"],
|
|
11
11
|
"env": {
|
|
12
|
-
"NODE_ENV": "production"
|
|
12
|
+
"NODE_ENV": "production",
|
|
13
|
+
"POKER_INSTALL_PATH": "C:/Poker"
|
|
13
14
|
}
|
|
14
15
|
},
|
|
15
16
|
"capabilities": {
|
|
@@ -65,7 +66,25 @@
|
|
|
65
66
|
"pending_file": "tasks/pending_changes.json",
|
|
66
67
|
"backup_directory": "backups",
|
|
67
68
|
"logs_directory": "logs",
|
|
68
|
-
"
|
|
69
|
+
"data_directory": "data",
|
|
70
|
+
"nuclide_database": {
|
|
71
|
+
"target_file": "data/ICRP-07.NDX",
|
|
72
|
+
"source_env_var": "POKER_INSTALL_PATH",
|
|
73
|
+
"source_relative_path": "lib/ICRP-07.NDX",
|
|
74
|
+
"default_install_path": "C:/Poker",
|
|
75
|
+
"skip_if_exists": true,
|
|
76
|
+
"fallback_behavior": "error_if_missing"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"environment_variables": {
|
|
80
|
+
"POKER_INSTALL_PATH": {
|
|
81
|
+
"description": "POKERインストールディレクトリのパス",
|
|
82
|
+
"required": false,
|
|
83
|
+
"default": "C:/Poker",
|
|
84
|
+
"purpose": "lib/ICRP-07.NDXファイルの取得元ディレクトリ指定",
|
|
85
|
+
"example_windows": "C:/Program Files/POKER",
|
|
86
|
+
"example_linux": "/usr/local/share/poker"
|
|
87
|
+
}
|
|
69
88
|
},
|
|
70
89
|
"documentation": {
|
|
71
90
|
"manifest": "config/mcp-manifest.json",
|
package/README.md
CHANGED
|
@@ -4,13 +4,13 @@ YAML-based input file management tool for radiation-shielding calculation code P
|
|
|
4
4
|
|
|
5
5
|
## 📋 クイック情報
|
|
6
6
|
|
|
7
|
-
- **バージョン**: 1.2.
|
|
7
|
+
- **バージョン**: 1.2.5 (Enhanced Release)
|
|
8
8
|
- **プロトコル**: MCP (Model Context Protocol) 1.0.0 完全準拠
|
|
9
9
|
- **メインサーバー**: `src/mcp_server_stdio_v4.js`
|
|
10
10
|
- **データ保存**: tasks/ディレクトリ(実行時自動作成)
|
|
11
11
|
- **実行方式**: STDIO通信(MCPプロトコル標準)
|
|
12
12
|
|
|
13
|
-
## 🆕 バージョン1.2.
|
|
13
|
+
## 🆕 バージョン1.2.5の新機能
|
|
14
14
|
|
|
15
15
|
### ⚡ 衝突検出システム
|
|
16
16
|
- **リアルタイム干渉チェック**: 立体間の重なり・接触を自動検出
|
|
@@ -48,7 +48,26 @@ npm install
|
|
|
48
48
|
npx poker-mcp
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
### 2.
|
|
51
|
+
### 2. 環境変数設定(オプション)
|
|
52
|
+
|
|
53
|
+
**POKER_INSTALL_PATH環境変数**(オプション):
|
|
54
|
+
```bash
|
|
55
|
+
# Windowsの場合(コマンドプロンプト)
|
|
56
|
+
set POKER_INSTALL_PATH=C:\Program Files\POKER
|
|
57
|
+
|
|
58
|
+
# Windowsの場合(PowerShell)
|
|
59
|
+
$env:POKER_INSTALL_PATH="C:\Program Files\POKER"
|
|
60
|
+
|
|
61
|
+
# Linux/macOSの場合
|
|
62
|
+
export POKER_INSTALL_PATH="/usr/local/share/poker"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
- **デフォルト値**: `C:/Poker`
|
|
66
|
+
- **目的**: `lib/ICRP-07.NDX`核種データベースファイルの取得元ディレクトリ指定
|
|
67
|
+
- **動作**: 初回起動時に`{POKER_INSTALL_PATH}/lib/ICRP-07.NDX`を`data/`ディレクトリにコピー
|
|
68
|
+
- **注意**: `data/ICRP-07.NDX`が既に存在する場合はコピーをスキップ
|
|
69
|
+
|
|
70
|
+
### 3. Claude Desktop設定
|
|
52
71
|
|
|
53
72
|
**Claude Desktop アプリでの設定方法:**
|
|
54
73
|
|
|
@@ -66,7 +85,9 @@ npx poker-mcp
|
|
|
66
85
|
"poker-mcp": {
|
|
67
86
|
"command": "node",
|
|
68
87
|
"args": ["C:\\Users\\yoshi\\Desktop\\poker_mcp\\src\\mcp_server_stdio_v4.js"],
|
|
69
|
-
"env": {
|
|
88
|
+
"env": {
|
|
89
|
+
"POKER_INSTALL_PATH": "C:/Program Files/POKER"
|
|
90
|
+
}
|
|
70
91
|
}
|
|
71
92
|
}
|
|
72
93
|
}
|
|
@@ -79,7 +100,9 @@ npx poker-mcp
|
|
|
79
100
|
"poker-mcp": {
|
|
80
101
|
"command": "npx",
|
|
81
102
|
"args": ["poker-mcp"],
|
|
82
|
-
"env": {
|
|
103
|
+
"env": {
|
|
104
|
+
"POKER_INSTALL_PATH": "C:/Program Files/POKER"
|
|
105
|
+
}
|
|
83
106
|
}
|
|
84
107
|
}
|
|
85
108
|
}
|
|
@@ -87,7 +110,11 @@ npx poker-mcp
|
|
|
87
110
|
|
|
88
111
|
4. **Claude Desktopを再起動** してMCPサーバーを有効化
|
|
89
112
|
|
|
90
|
-
|
|
113
|
+
**注意**:
|
|
114
|
+
- `env`セクションの`POKER_INSTALL_PATH`はオプションです(省略時は`C:/Poker`を使用)
|
|
115
|
+
- 環境変数で指定したパスの`lib/ICRP-07.NDX`ファイルが初回起動時に`data/`にコピーされます
|
|
116
|
+
|
|
117
|
+
### 4. 動作確認
|
|
91
118
|
Claude Desktopで以下のようにテストできます:
|
|
92
119
|
```
|
|
93
120
|
放射線遮蔽計算用のコンクリート壁(100cm x 50cm x 30cm)を作成してください
|
|
@@ -255,7 +282,7 @@ poker_mcp/
|
|
|
255
282
|
- **エラー回復**: ロールバック機能付き
|
|
256
283
|
- **レスポンス速度**: <50ms応答時間
|
|
257
284
|
|
|
258
|
-
### **✅ エラーハンドリング強化(v1.2.
|
|
285
|
+
### **✅ エラーハンドリング強化(v1.2.5)**
|
|
259
286
|
- **propose/update自動判別**: エラーメッセージによる適切なメソッド案内
|
|
260
287
|
- **専用エラーコード**: 各操作に固有のエラーコード体系
|
|
261
288
|
- **材料名サジェスト**: 類似材料名の自動提案機能
|
|
@@ -296,7 +323,7 @@ poker_mcp/
|
|
|
296
323
|
|
|
297
324
|
## 📝 更新履歴
|
|
298
325
|
|
|
299
|
-
### v1.2.
|
|
326
|
+
### v1.2.5 (2025-01-24)
|
|
300
327
|
- ✨ 衝突検出システム実装
|
|
301
328
|
- ✨ 子孫核種自動補完機能追加(ICRP-07統合)
|
|
302
329
|
- ✨ 単位系完全性検証強化(4キー保証)
|
|
@@ -326,6 +353,6 @@ poker_mcp/
|
|
|
326
353
|
|
|
327
354
|
---
|
|
328
355
|
|
|
329
|
-
**🎯 Poker MCP Server v1.2.
|
|
356
|
+
**🎯 Poker MCP Server v1.2.5**
|
|
330
357
|
**プロトコル**: MCP 1.0.0 完全準拠
|
|
331
358
|
**作者**: Yoshihiro Hirao | **ライセンス**: ISC
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "poker-mcp",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "YAML-based input file management tool for radiation shielding calculation code POKER with MCP support - Enhanced with collision detection
|
|
3
|
+
"version": "1.2.5",
|
|
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
5
|
"main": "src/mcp_server_stdio_v4.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
50
50
|
"src/",
|
|
51
|
-
"data/",
|
|
52
51
|
"README.md",
|
|
53
52
|
".mcp.json"
|
|
54
53
|
]
|
|
@@ -45,6 +45,10 @@ export class SafeDataManager {
|
|
|
45
45
|
await fs.mkdir(this.backupDir, { recursive: true }); // backups
|
|
46
46
|
await fs.mkdir('logs', { recursive: true }); // logs
|
|
47
47
|
await fs.mkdir('tasks', { recursive: true }); // tasks
|
|
48
|
+
await fs.mkdir('data', { recursive: true }); // data
|
|
49
|
+
|
|
50
|
+
// 必要なデータファイルをコピー
|
|
51
|
+
await this.ensureDataFiles();
|
|
48
52
|
|
|
49
53
|
// 初期ファイル配置(既存ファイルがない場合のみ)
|
|
50
54
|
await this.ensureInitialFiles();
|
|
@@ -63,6 +67,85 @@ export class SafeDataManager {
|
|
|
63
67
|
}
|
|
64
68
|
}
|
|
65
69
|
|
|
70
|
+
// 新規メソッド: 必要なデータファイルの確保
|
|
71
|
+
async ensureDataFiles() {
|
|
72
|
+
try {
|
|
73
|
+
const targetFile = 'data/ICRP-07.NDX';
|
|
74
|
+
|
|
75
|
+
// ターゲットファイルの存在チェック
|
|
76
|
+
try {
|
|
77
|
+
await fs.access(targetFile);
|
|
78
|
+
logger.info('ICRP-07データベースファイルは既に存在します。コピーをスキップします。', {
|
|
79
|
+
file: targetFile
|
|
80
|
+
});
|
|
81
|
+
return; // 既に存在する場合は何もしない
|
|
82
|
+
} catch (targetError) {
|
|
83
|
+
if (targetError.code !== 'ENOENT') {
|
|
84
|
+
// アクセス権限などの別のエラー
|
|
85
|
+
throw targetError;
|
|
86
|
+
}
|
|
87
|
+
// ファイルが存在しない場合は以下の処理を続行
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// 環境変数からインストールパスを取得(デフォルト値設定)
|
|
91
|
+
const installPath = process.env.POKER_INSTALL_PATH || 'C:/Poker';
|
|
92
|
+
logger.info('POKERインストールパスを確認', { installPath });
|
|
93
|
+
|
|
94
|
+
const sourceFile = path.join(installPath, 'lib', 'ICRP-07.NDX');
|
|
95
|
+
|
|
96
|
+
// ソースファイルの存在チェック
|
|
97
|
+
try {
|
|
98
|
+
await fs.access(sourceFile);
|
|
99
|
+
logger.info('ソースファイルが見つかりました', { sourceFile });
|
|
100
|
+
} catch (sourceError) {
|
|
101
|
+
if (sourceError.code === 'ENOENT') {
|
|
102
|
+
logger.error('ソースファイルが見つかりません', {
|
|
103
|
+
expectedPath: sourceFile,
|
|
104
|
+
installPath: installPath,
|
|
105
|
+
environmentVariable: 'POKER_INSTALL_PATH',
|
|
106
|
+
suggestion: installPath === 'C:/Poker'
|
|
107
|
+
? 'POKER_INSTALL_PATH環境変数を正しいインストールディレクトリに設定してください'
|
|
108
|
+
: 'インストールディレクトリに lib/ICRP-07.NDX ファイルが存在することを確認してください'
|
|
109
|
+
});
|
|
110
|
+
throw new DataError(
|
|
111
|
+
`必要なデータファイルが見つかりません: ${sourceFile}`,
|
|
112
|
+
'MISSING_SOURCE_FILE'
|
|
113
|
+
);
|
|
114
|
+
} else {
|
|
115
|
+
throw sourceError;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// ファイルをコピー
|
|
120
|
+
try {
|
|
121
|
+
await fs.copyFile(sourceFile, targetFile);
|
|
122
|
+
logger.info('ICRP-07データベースファイルをコピーしました', {
|
|
123
|
+
from: sourceFile,
|
|
124
|
+
to: targetFile
|
|
125
|
+
});
|
|
126
|
+
} catch (copyError) {
|
|
127
|
+
logger.error('ファイルのコピーに失敗しました', {
|
|
128
|
+
error: copyError.message,
|
|
129
|
+
sourceFile,
|
|
130
|
+
targetFile
|
|
131
|
+
});
|
|
132
|
+
throw copyError;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// コピー完了後のファイルサイズ確認
|
|
136
|
+
const finalStats = await fs.stat(targetFile);
|
|
137
|
+
logger.info('ICRP-07データベースファイルのコピーが完了しました', {
|
|
138
|
+
file: targetFile,
|
|
139
|
+
size: finalStats.size,
|
|
140
|
+
readable: true
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
} catch (error) {
|
|
144
|
+
logger.error('データファイル確保エラー', { error: error.message });
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
66
149
|
// 新規メソッド: 初期ファイルの確実な配置
|
|
67
150
|
async ensureInitialFiles() {
|
|
68
151
|
try {
|