proofscan 0.10.2 → 0.10.4
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/README.ja.md +272 -95
- package/README.md +200 -311
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/popl.d.ts +16 -0
- package/dist/commands/popl.d.ts.map +1 -0
- package/dist/commands/popl.js +495 -0
- package/dist/commands/popl.js.map +1 -0
- package/dist/popl/artifacts.d.ts +78 -0
- package/dist/popl/artifacts.d.ts.map +1 -0
- package/dist/popl/artifacts.js +205 -0
- package/dist/popl/artifacts.js.map +1 -0
- package/dist/popl/index.d.ts +10 -0
- package/dist/popl/index.d.ts.map +1 -0
- package/dist/popl/index.js +14 -0
- package/dist/popl/index.js.map +1 -0
- package/dist/popl/sanitizer.d.ts +86 -0
- package/dist/popl/sanitizer.d.ts.map +1 -0
- package/dist/popl/sanitizer.js +271 -0
- package/dist/popl/sanitizer.js.map +1 -0
- package/dist/popl/service.d.ts +46 -0
- package/dist/popl/service.d.ts.map +1 -0
- package/dist/popl/service.js +231 -0
- package/dist/popl/service.js.map +1 -0
- package/dist/popl/types.d.ts +195 -0
- package/dist/popl/types.d.ts.map +1 -0
- package/dist/popl/types.js +20 -0
- package/dist/popl/types.js.map +1 -0
- package/dist/shell/popl-commands.d.ts +26 -0
- package/dist/shell/popl-commands.d.ts.map +1 -0
- package/dist/shell/popl-commands.js +281 -0
- package/dist/shell/popl-commands.js.map +1 -0
- package/dist/shell/repl.d.ts.map +1 -1
- package/dist/shell/repl.js +6 -0
- package/dist/shell/repl.js.map +1 -1
- package/package.json +6 -4
package/README.ja.md
CHANGED
|
@@ -1,167 +1,344 @@
|
|
|
1
|
-
#
|
|
1
|
+
# proofscan
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> **言語:** [English](README.md) | 日本語
|
|
4
4
|
|
|
5
|
-
MCPサーバースキャナー - JSON-RPC
|
|
5
|
+
MCP サーバースキャナー - JSON-RPC 通信を可視化してブラックボックスを排除
|
|
6
|
+
|
|
7
|
+
**バージョン:** 0.10.3
|
|
6
8
|
|
|
7
9
|
## 概要
|
|
8
10
|
|
|
9
|
-
proofscan
|
|
11
|
+
proofscan は MCP (Model Context Protocol) サーバー通信の完全な可視性を提供します:
|
|
12
|
+
|
|
13
|
+
- 🔍 **キャプチャ** 全ての JSON-RPC メッセージ(リクエスト、レスポンス、通知)
|
|
14
|
+
- 💾 **保存** SQLite による効率的なクエリと分析
|
|
15
|
+
- 🌳 **可視化** コネクタ → セッション → RPC の階層構造
|
|
16
|
+
- 🔧 **テスト** CLI から直接 MCP ツールを実行
|
|
17
|
+
- 🎭 **プロキシ** 複数の MCP サーバーを統合した名前空間で提供
|
|
18
|
+
- 📊 **生成** 公開可能な監査証跡(POPL)
|
|
19
|
+
- 🐚 **対話型** TAB 補完付きシェルモード
|
|
20
|
+
|
|
21
|
+
## クイックリンク
|
|
10
22
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
23
|
+
- 📖 **[ユーザーガイド](docs/GUIDE.ja.md)** - 完全な CLI リファレンスと例
|
|
24
|
+
- 🐚 **[シェルモードガイド](docs/SHELL.ja.md)** - 対話型シェルと @参照
|
|
25
|
+
- 🎭 **[プロキシガイド](docs/PROXY.ja.md)** - MCP プロキシサーバードキュメント
|
|
26
|
+
- 📦 **[POPL ガイド](docs/POPL.ja.md)** - 公開可能証明台帳
|
|
27
|
+
- 🔧 **[API ドキュメント](docs/API.ja.md)** - 開発者向け TypeScript API
|
|
16
28
|
|
|
17
29
|
## インストール
|
|
18
30
|
|
|
19
31
|
```bash
|
|
32
|
+
# グローバルインストール
|
|
20
33
|
npm install -g proofscan
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
またはインストールせずに実行:
|
|
24
34
|
|
|
25
|
-
|
|
35
|
+
# またはインストールせずに実行
|
|
26
36
|
npx proofscan --help
|
|
27
37
|
```
|
|
28
38
|
|
|
29
|
-
|
|
39
|
+
**要件:** Node.js v18+ (v20+ 推奨)
|
|
30
40
|
|
|
31
|
-
|
|
32
|
-
# 1. 設定を初期化
|
|
33
|
-
pfscan config init
|
|
41
|
+
## クイックスタート
|
|
34
42
|
|
|
35
|
-
|
|
36
|
-
echo '{"mcpServers":{"time":{"command":"uvx","args":["mcp-server-time"]}}}' \
|
|
37
|
-
| pfscan connectors import --from mcpServers --stdin
|
|
43
|
+
### 1. 初期化
|
|
38
44
|
|
|
39
|
-
|
|
40
|
-
pfscan
|
|
41
|
-
pfscan
|
|
42
|
-
pfscan tree # 構造を表示
|
|
45
|
+
```bash
|
|
46
|
+
pfscan config init # 設定を作成
|
|
47
|
+
pfscan config path # 設定ファイルの場所を表示
|
|
43
48
|
```
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
### 設計思想:すべてを残す → 意味のあるものを残す
|
|
50
|
+
### 2. MCP サーバーを追加
|
|
48
51
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
```bash
|
|
53
|
+
# Claude Desktop / mcp.so 形式から
|
|
54
|
+
echo '{"mcpServers":{"time":{"command":"npx","args":["-y","@modelcontextprotocol/server-time"]}}}' \
|
|
55
|
+
| pfscan connectors import --from mcpServers --stdin
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
| **やったこと** | tool call | 実際に実行されたツール呼び出し(tools/call) |
|
|
57
|
+
# または手動で追加
|
|
58
|
+
pfscan connectors add --id time --stdio "npx -y @modelcontextprotocol/server-time"
|
|
59
|
+
```
|
|
57
60
|
|
|
58
|
-
###
|
|
61
|
+
### 3. スキャンと表示
|
|
59
62
|
|
|
60
|
-
|
|
63
|
+
```bash
|
|
64
|
+
pfscan scan start --id time # スキャン実行
|
|
65
|
+
pfscan # イベント表示(デフォルトコマンド)
|
|
66
|
+
pfscan tree # 構造表示
|
|
67
|
+
pfscan status # システムステータス
|
|
68
|
+
```
|
|
61
69
|
|
|
62
|
-
|
|
63
|
-
- **書き込み** - ファイルやデータの変更
|
|
64
|
-
- **ネット接続** - 外部ネットワークへのアクセス
|
|
65
|
-
- **コマンド実行** - シェルコマンドの実行
|
|
66
|
-
- **その他操作** - 上記以外の操作
|
|
70
|
+
## 主な機能
|
|
67
71
|
|
|
68
|
-
###
|
|
72
|
+
### 📊 イベントタイムライン
|
|
69
73
|
|
|
70
|
-
|
|
74
|
+
```bash
|
|
75
|
+
$ pfscan view --limit 10
|
|
76
|
+
Time Sym Dir St Method Session Extra
|
|
77
|
+
-------------------------------------------------------------------
|
|
78
|
+
21:01:58.743 → → ✓ initialize f2442c... lat=269ms
|
|
79
|
+
21:01:59.018 ← ← ✓ initialize f2442c...
|
|
80
|
+
21:01:59.025 • → notifications/initi... f2442c...
|
|
81
|
+
21:01:59.037 → → ✓ tools/list f2442c...
|
|
82
|
+
21:01:59.049 ← ← ✓ tools/list f2442c... lat=12ms size=1.0KB
|
|
83
|
+
```
|
|
71
84
|
|
|
72
|
-
|
|
85
|
+
### 🌳 階層ツリー
|
|
73
86
|
|
|
74
87
|
```bash
|
|
75
|
-
$ pfscan
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
├──
|
|
79
|
-
|
|
80
|
-
└──
|
|
88
|
+
$ pfscan tree
|
|
89
|
+
└── 📦 time
|
|
90
|
+
├── 📋 f2442c9b... (2 rpcs, 8 events)
|
|
91
|
+
│ ├── ↔️ ✓ tools/list (id=2, 12ms)
|
|
92
|
+
│ └── ↔️ ✓ initialize (id=1, 269ms)
|
|
93
|
+
└── 📋 3cf5a66e... (2 rpcs, 8 events)
|
|
94
|
+
├── ↔️ ✓ tools/list (id=2, 13ms)
|
|
95
|
+
└── ↔️ ✓ initialize (id=1, 271ms)
|
|
81
96
|
```
|
|
82
97
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
詳細なパーミッション情報を表示します。**注意点は表示しません**(詳細確認用のため)。
|
|
98
|
+
### 🐚 対話型シェル
|
|
86
99
|
|
|
87
100
|
```bash
|
|
88
|
-
$ pfscan
|
|
101
|
+
$ pfscan shell
|
|
102
|
+
proofscan> pwd
|
|
103
|
+
Context: session=f2442c9b (connector=time)
|
|
89
104
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
├── 書き込み: write_file
|
|
93
|
-
├── コマンド実行: execute_command
|
|
94
|
-
└── その他操作: (なし)
|
|
95
|
-
```
|
|
105
|
+
proofscan> tool ls
|
|
106
|
+
Found 2 tools: get_current_time, get_timezone
|
|
96
107
|
|
|
97
|
-
|
|
108
|
+
proofscan> ref add mytask @this
|
|
109
|
+
✓ Reference 'mytask' saved
|
|
98
110
|
|
|
99
|
-
|
|
111
|
+
proofscan> popl @last --title "タイムサーバーテスト"
|
|
112
|
+
✓ POPL entry created: 20260104-f2442c9b
|
|
113
|
+
```
|
|
100
114
|
|
|
101
|
-
|
|
102
|
-
# デフォルト: tools/call のみ候補化
|
|
103
|
-
$ pfscan record dry-run --session abc123
|
|
115
|
+
### 🎭 MCP プロキシ
|
|
104
116
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
117
|
+
```bash
|
|
118
|
+
# 複数のバックエンドでプロキシを起動
|
|
119
|
+
pfscan proxy start --connectors time,weather
|
|
108
120
|
|
|
109
|
-
#
|
|
110
|
-
|
|
121
|
+
# 別ターミナルで - 統合 MCP サーバーとして使用
|
|
122
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | pfscan proxy start --all
|
|
111
123
|
|
|
112
|
-
|
|
113
|
-
[0] tools/list (2025-12-28 11:59:55) ← 1回のみ
|
|
114
|
-
[1] tools/call: read_file (2025-12-28 12:00:00)
|
|
115
|
-
[2] tools/call: write_file (2025-12-28 12:00:05)
|
|
124
|
+
# ツールは名前空間化: time__get_current_time, weather__get_forecast
|
|
116
125
|
```
|
|
117
126
|
|
|
118
|
-
###
|
|
127
|
+
### 🔧 直接ツールテスト
|
|
119
128
|
|
|
120
|
-
|
|
129
|
+
```bash
|
|
130
|
+
# ツール一覧
|
|
131
|
+
pfscan tool ls time
|
|
121
132
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
| input/output | `digest_only` | 生データではなくハッシュのみ保存 |
|
|
125
|
-
| canonicalize | `sha256` | 正規化後にSHA-256ハッシュ化 |
|
|
133
|
+
# ツールスキーマ表示
|
|
134
|
+
pfscan tool show time get_current_time
|
|
126
135
|
|
|
127
|
-
|
|
136
|
+
# ツール実行
|
|
137
|
+
pfscan tool call time get_current_time --args '{}'
|
|
138
|
+
```
|
|
128
139
|
|
|
129
|
-
##
|
|
140
|
+
## コマンド概要
|
|
130
141
|
|
|
131
142
|
```
|
|
132
|
-
|
|
133
|
-
view, v
|
|
134
|
-
tree, t
|
|
135
|
-
explore, e
|
|
136
|
-
scan, s
|
|
137
|
-
status, st
|
|
138
|
-
|
|
143
|
+
一般コマンド:
|
|
144
|
+
view, v 最近のイベントタイムライン表示(デフォルト)
|
|
145
|
+
tree, t コネクタ → セッション → RPC 構造表示
|
|
146
|
+
explore, e 対話的データブラウザ
|
|
147
|
+
scan, s 新規スキャン実行
|
|
148
|
+
status, st システムステータス表示
|
|
149
|
+
shell 対話型シェル(REPL)TAB 補完付き
|
|
150
|
+
rpc RPC 呼び出し詳細表示(list, show)
|
|
151
|
+
summary セッションサマリ表示
|
|
152
|
+
permissions カテゴリ別権限統計表示
|
|
153
|
+
tool MCP ツール操作(ls, show, call)
|
|
139
154
|
|
|
140
155
|
管理:
|
|
141
|
-
archive, a
|
|
156
|
+
archive, a 古いデータのアーカイブと削減
|
|
142
157
|
config, c 設定管理
|
|
143
158
|
connectors コネクタ管理
|
|
159
|
+
secrets シークレット管理
|
|
160
|
+
doctor データベース診断と修復
|
|
161
|
+
popl 公開可能証明台帳
|
|
162
|
+
|
|
163
|
+
高度な機能:
|
|
164
|
+
proxy MCP プロキシサーバー操作
|
|
165
|
+
log プロキシログ表示
|
|
166
|
+
monitor スキャンイベント監視
|
|
167
|
+
sessions セッション管理
|
|
168
|
+
events イベントエクスポート
|
|
144
169
|
|
|
145
170
|
ショートカット:
|
|
146
171
|
v=view t=tree e=explore s=scan st=status a=archive c=config
|
|
147
172
|
```
|
|
148
173
|
|
|
149
|
-
##
|
|
174
|
+
## ドキュメント
|
|
175
|
+
|
|
176
|
+
### ユーザー向け
|
|
177
|
+
|
|
178
|
+
- **[ユーザーガイド](docs/GUIDE.ja.md)** - 完全な CLI コマンドリファレンスと例
|
|
179
|
+
- **[シェルモード](docs/SHELL.ja.md)** - 対話型シェル、@参照、高度なワークフロー
|
|
180
|
+
- **[プロキシガイド](docs/PROXY.ja.md)** - MCP プロキシサーバーのセットアップと使用方法
|
|
181
|
+
- **[POPL ガイド](docs/POPL.ja.md)** - 公開監査証跡の作成
|
|
182
|
+
|
|
183
|
+
### 開発者向け
|
|
150
184
|
|
|
151
|
-
|
|
185
|
+
- **[API ドキュメント](docs/API.ja.md)** - TypeScript API と EventLine モデル
|
|
186
|
+
- **[アーキテクチャ](docs/ARCHITECTURE.ja.md)** - 内部設計とデータベーススキーマ
|
|
187
|
+
- **[コントリビューション](CONTRIBUTING.md)** - 開発環境のセットアップとガイドライン
|
|
152
188
|
|
|
189
|
+
## 設定
|
|
190
|
+
|
|
191
|
+
設定ファイルの場所(OS 標準):
|
|
153
192
|
- **Windows**: `%APPDATA%\proofscan\config.json`
|
|
154
193
|
- **macOS**: `~/Library/Application Support/proofscan/config.json`
|
|
155
194
|
- **Linux**: `~/.config/proofscan/config.json`
|
|
156
195
|
|
|
157
|
-
|
|
196
|
+
基本的な設定構造:
|
|
197
|
+
|
|
198
|
+
```json
|
|
199
|
+
{
|
|
200
|
+
"version": 1,
|
|
201
|
+
"connectors": [
|
|
202
|
+
{
|
|
203
|
+
"id": "time",
|
|
204
|
+
"enabled": true,
|
|
205
|
+
"transport": {
|
|
206
|
+
"type": "stdio",
|
|
207
|
+
"command": "npx",
|
|
208
|
+
"args": ["-y", "@modelcontextprotocol/server-time"]
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
],
|
|
212
|
+
"retention": {
|
|
213
|
+
"keep_last_sessions": 50,
|
|
214
|
+
"raw_days": 7,
|
|
215
|
+
"max_db_mb": 500
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
詳細は **[ユーザーガイド](docs/GUIDE.ja.md#設定)** を参照してください。
|
|
158
221
|
|
|
222
|
+
## データストレージ
|
|
223
|
+
|
|
224
|
+
proofscan は 2 ファイル構成の SQLite を使用:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
~/.config/proofscan/
|
|
228
|
+
├── config.json
|
|
229
|
+
├── events.db # セッション、イベント、RPC 呼び出し(削減可能)
|
|
230
|
+
├── proofs.db # 不変の証明記録(削減不可)
|
|
231
|
+
├── proxy-runtime-state.json # プロキシ状態(プロキシ使用時)
|
|
232
|
+
└── proxy-logs.jsonl # プロキシログ(プロキシ使用時)
|
|
159
233
|
```
|
|
160
|
-
|
|
161
|
-
|
|
234
|
+
|
|
235
|
+
## グローバルオプション
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
-c, --config <path> 設定ファイルパス
|
|
239
|
+
--json JSON 形式で出力
|
|
162
240
|
-v, --verbose 詳細出力
|
|
241
|
+
-h, --help ヘルプ表示
|
|
242
|
+
-V, --version バージョン表示
|
|
163
243
|
```
|
|
164
244
|
|
|
245
|
+
## 使用例
|
|
246
|
+
|
|
247
|
+
### 基本ワークフロー
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
# 1. MCP サーバーをインポート
|
|
251
|
+
cat claude_desktop_config.json | pfscan connectors import --from mcpServers --stdin
|
|
252
|
+
|
|
253
|
+
# 2. スキャン実行
|
|
254
|
+
pfscan scan start --id myserver
|
|
255
|
+
|
|
256
|
+
# 3. 結果表示
|
|
257
|
+
pfscan # 最近のイベント
|
|
258
|
+
pfscan tree # 階層表示
|
|
259
|
+
pfscan rpc list --session abc # RPC 詳細
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### シェルモードワークフロー
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
pfscan shell
|
|
266
|
+
|
|
267
|
+
# セッションに移動
|
|
268
|
+
proofscan> cc time
|
|
269
|
+
proofscan> pwd
|
|
270
|
+
Context: connector=time
|
|
271
|
+
|
|
272
|
+
proofscan> up abc123
|
|
273
|
+
Context: session=abc123 (connector=time)
|
|
274
|
+
|
|
275
|
+
# 参照を保存して後で使用
|
|
276
|
+
proofscan> ref add important @this
|
|
277
|
+
proofscan> tool call get_current_time --args '{}'
|
|
278
|
+
proofscan> popl @last --title "本番環境テスト"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### プロキシモード
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
# ターミナル 1: プロキシ起動
|
|
285
|
+
pfscan -v proxy start --connectors server1,server2
|
|
286
|
+
|
|
287
|
+
# ターミナル 2: ステータス確認
|
|
288
|
+
pfscan proxy status
|
|
289
|
+
pfscan log --tail 20
|
|
290
|
+
|
|
291
|
+
# Claude Desktop でプロキシを使用
|
|
292
|
+
# claude_desktop_config.json に追加:
|
|
293
|
+
# {
|
|
294
|
+
# "mcpServers": {
|
|
295
|
+
# "proofscan-proxy": {
|
|
296
|
+
# "command": "pfscan",
|
|
297
|
+
# "args": ["proxy", "start", "--all"]
|
|
298
|
+
# }
|
|
299
|
+
# }
|
|
300
|
+
# }
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## 開発
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
git clone https://github.com/proofofprotocol/proofscan.git
|
|
307
|
+
cd proofscan
|
|
308
|
+
npm install
|
|
309
|
+
npm run build
|
|
310
|
+
npm test
|
|
311
|
+
|
|
312
|
+
# ソースから実行
|
|
313
|
+
node dist/cli.js --help
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## ユースケース
|
|
317
|
+
|
|
318
|
+
- 🔍 **MCP サーバーのデバッグ**: JSON-RPC 通信で何が起きているかを正確に把握
|
|
319
|
+
- 📊 **ツール使用状況の分析**: どのツールがどのくらい呼ばれているかを追跡
|
|
320
|
+
- 🎯 **パフォーマンス監視**: RPC レイテンシを測定しボトルネックを特定
|
|
321
|
+
- 🔐 **セキュリティ監査**: 権限リクエストとデータアクセスをレビュー
|
|
322
|
+
- 📝 **ドキュメント作成**: バグレポート用の公開可能なログを生成
|
|
323
|
+
- 🧪 **テスト**: MCP サーバーの動作とツールスキーマを検証
|
|
324
|
+
- 🎭 **統合**: プロキシモードで複数の MCP サーバーを集約
|
|
325
|
+
|
|
326
|
+
## 関連プロジェクト
|
|
327
|
+
|
|
328
|
+
- **[Model Context Protocol](https://modelcontextprotocol.io)** - 公式 MCP 仕様
|
|
329
|
+
- **[MCP Servers](https://github.com/modelcontextprotocol/servers)** - 公式サーバー実装
|
|
330
|
+
- **[@proofofprotocol/inscribe-mcp-server](https://github.com/proofofprotocol/inscribe-mcp-server)** - ブロックチェーンベースの証明ストレージ
|
|
331
|
+
|
|
165
332
|
## ライセンス
|
|
166
333
|
|
|
167
334
|
MIT
|
|
335
|
+
|
|
336
|
+
## サポート
|
|
337
|
+
|
|
338
|
+
- 📖 **ドキュメント**: [docs/](docs/) ディレクトリを参照
|
|
339
|
+
- 🐛 **バグレポート**: [GitHub Issues](https://github.com/proofofprotocol/proofscan/issues)
|
|
340
|
+
- 💬 **ディスカッション**: [GitHub Discussions](https://github.com/proofofprotocol/proofscan/discussions)
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
**❤️ を込めて [Proof of Protocol](https://github.com/proofofprotocol) が作成**
|