先日一念発起して、亡き祖父の軍歴を取り寄せました。わたしが物心つく前に亡くなったので直接はきいてないのですが、太平洋戦争中に徴兵され戦後数年して復員したとはきいてて、その歴史の一端を子孫として知りたくなったのです。
参考:
祖父の本籍の都道府県に問い合わせて、いつなんという部隊に所属していて、どう復員したかの経歴がわかりましたので、裏取りのためにアジア歴史資料センターと国立公文書館のデータベースを検索するも、なかなか骨折りでした。。 www.jacar.go.jp
https://www.digital.archives.go.jp:site
タブが増えていく。同じような資料名が並ぶ。目当ての記録がどのページにあったか分からなくなる。そして辿り着いたとしても手書き文書のスキャン画像。わたしのリサーチと読解スキルでは相当難儀。
さらに当時の文書では部隊名より通称号(第8300部隊みたいなの)が使われることが多く、秘匿効果が現代にも刺さります。
そこで、検索ヘルパーを作ることにしました。
検索のゴールから逆算すると、集めたデータを横断的にサマリーすること、意味合いのつながりで調べること、取得した内容を吟味すること、検索して取得すること....そういうさまざまなことを繰り返す必要があります。非決定論的な部分が多いためClaudeを活用しよう。Claudeが活用しやすい仕組みとしてはMCPだなということで、ローカルMCPサーバーになっています。
JACAR と国立公文書館をブラウザから検索して、結果を SQLite にキャッシュして、そのまま Claude にサマリーや横断検索をしてもらう仕組みです。
スキャン画像の OCR は Mac の Vision framework を使います。Swift でアクセスコードを書いて、MCP ツールから呼べるようにしました。
たとえば「xxxxx部隊の指揮官の変遷と、yyyyyy部隊へのへの転属命令書を探してください」とプロンプトを渡したら、検索、文字認識、収集、意味的な読み解き、横断的なサマリーまで、人間の指示なしに走り切りました。