4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude CodeでIBM i(AS/400)を触るのにMCPはいらなかった話

4
Last updated at Posted at 2026-03-04

Claude CodeでIBM i を操作する方法として、以前書いた記事「バイブコーディングでIBM i にあるRPGソースをWebアプリに移植してみた 」のように、MCPサーバーを構築するアプローチがあります。確かに強力ですが、Python環境の構築、ODBC環境構築、MCPサーバーの設置、設定ファイル…正直、手順が多い。とても面倒くさい。

もっと簡単な方法があります。 それは SSHを利用して Claude Code から IBM i を操作する方法 です。

この記事の前提

  • IBM i に db2utilのyumパッケージを導入していること ⭐️オプションですが推奨
  • IBM i にSSHでアクセスできること
  • SSH鍵認証が使えること(Claude Codeはパスワード入力ができないため)
  • bash環境があること(Windows環境ではClaude Codeの利用にGit Bash or WSLが必要なので、入っているはずです)

鍵認証がまだの場合は、以下の手順で設定できます(Git BashやWSLで実行してください)。わからなければシステム管理者の方に相談してくださいね。

Mac/Linuxの人でもやり方は一緒です

SSH鍵認証の設定手順

PC側: 鍵の生成

ssh-keygen -t ed25519 -f ~/.ssh/ibmi_key

~/.ssh/ibmi_key(秘密鍵)と ~/.ssh/ibmi_key.pub(公開鍵)が作られます。パスフレーズは空にしてください(Claude Codeが非対話で使うため)。

IBM i 側: 公開鍵の登録

SSHまたはqp2term等でIBM i にログインし、以下を実行します。作業は SSH で接続するユーザーで実施してください。

事前確認(重要)

公開鍵を登録する前に、ホームディレクトリの状態を確認してください。

IBM i 環境では、IFS の所有者やパーミッションが適切でない場合、OpenSSH が鍵認証を拒否することがあります。

確認コマンド
ls -ld /home/YOUR_USER

YOUR_USERはご自分のユーザー名に変えてください

確認ポイント
  • ホームディレクトリが存在していること(存在しない場合は IBM i 管理者に作成を依頼してください)
  • 所有者が SSH でログインするユーザー本人であること
  • group または other に w(書き込み) 権限が付いていないこと

出力例:

drwxr-xr-x  5 YOUR_USER  group  4096 Jan 10 10:00 /home/YOUR_USER

drwxr-xr-x 5 YOUR_USERYOUR_USER がユーザー本人であることを確認してください。
異なるユーザー(例: QSECOFR)になっている場合は、IBM i 管理者に依頼して所有者を変更してください。

drwxr-xr-x の部分の権限表示は次の順です:

owner  group  other

それぞれの意味:

  • r = read(読み取り)
  • w = write(書き込み)
  • x = execute(実行/ディレクトリの場合は「入れる」)

⚠ OpenSSH は group / other に write 権限がある場合、鍵認証を拒否することがあります。

修正が必要な場合
chmod go-w /home/YOUR_USER

セキュリティを重視する場合は、以下の設定を推奨します。

chmod 700 /home/YOUR_USER

YOUR_USERはご自分のユーザー名に変えてください

パーミッションや所有者の意味が不明な場合は、IBM i 管理者に確認してください。

公開キーの登録

mkdir -p /home/YOUR_USER/.ssh
chmod 700 /home/YOUR_USER/.ssh

YOUR_USERはご自分のユーザー名に変えてください

PC側の公開鍵をエディタ等で開き、中身をコピーします。

# 中身は以下のような1行のテキストです
ssh-ed25519 AAAAC3Nza... YOUR_USER@PC名

IBM i 側で authorized_keys に追加します。

echo "ここにコピーした公開鍵を貼り付け" >> /home/YOUR_USER/.ssh/authorized_keys
chmod 600 /home/YOUR_USER/.ssh/authorized_keys

YOUR_USERはご自分のユーザー名に変えてください。

接続テスト

ssh -i ~/.ssh/ibmi_key YOUR_USER@your-ibmi-host "echo 'OK'"

YOUR_USER、your-ibmi-hostはご自分の環境にあわせて変更してください。

パスワードを聞かれずに OK と返ってくれば成功です。

接続するために用意するもの

SSHの鍵認証ができるようになっていれば、設定は2ファイルだけです。

~/.ssh/config(Windows: C:\Users\ユーザー名\.ssh\config

以下を追記してibmiという名前でSSHアクセスできるようにします。ファイルがなければ新規作成してください。

Host ibmi
    HostName your-ibmi-host
    User YOUR_USER
    IdentityFile ~/.ssh/ibmi_key

YOUR_USER、your-ibmi-hostはご自分の環境にあわせて変更してください。IdentityFileはSSHにアクセスするための証明書になります。一応流れでibmi_keyというファイル名を使用していますが、こちらもご自分の環境にあわせて変更してください。

CLAUDE.md(Claude Codeを起動する作業ディレクトリに配置)

既存の CLAUDE.md があればそこに追記、なければ新規作成してください。

# IBM i

- SSH接続先: `ibmi`(.ssh/configで定義済み)
- バージョン: IBM i 7.5
- 利用可能コマンド: `system`(CLコマンド実行)、`/QOpenSys/pkgs/bin/db2util`(SQL実行)

これだけです。 CLAUDE.mdはたった4行。バージョンはご利用の環境で変えてください。

db2utilのyumパッケージの導入がされていない環境の場合、db2utilの記述を消してください。ただSQL経由の方がClaude Codeは効率よくデータを取得できます。

なぜこれで動くのか?

Claude Code → ssh ibmi "コマンド" → IBM i

Claude Codeはターミナルコマンドを実行できるので、SSHが通りさえすれば、その先のサーバー上のコマンドをssh経由で実行できます。

そしてClaude CodeはIBM i の知識を既に持っているので、CLコマンド体系、QSYSのライブラリ構造、SQLによるデータアクセス、RPG/COBOLのソース管理、これを全部知っています。

CLAUDE.mdにIBM i のバージョンを渡しているのはなるべく間違えないようにするためです

そのため CLAUDE.mdには systemdb2util の情報だけは記述しましたが、 lscatgrep などのUnixコマンドは書く必要すらなく、Claude Codeが勝手に判断してSSH越しに実行します。もし他に使ってほしいコマンドがあれば CLAUDE.mdに追加すればいいだけです。

やってみる

Claude Codeを起動して、話しかけるだけです。

「IBM i のホームディレクトリのファイル一覧を見せて」
→ CLAUDE.mdに書いていないunixコマンドも使ってくれます。

Q01-1.png

「IBM i のシステム日付を教えて」
→ CLコマンド(ここではDSPSYSVAL)も使って情報を取得できています。

Q02-1.png

「アクティブなジョブの状況を教えて」
→ システム的な情報も取得できます。ここではSQLで取得していますね。

Q03-1.png

「DEMQUERYライブラリのテーブル一覧を取得して」
→ ライブラリ、テーブル、カラム等の情報も取得できます。ちゃんとラベル( TABLE_TEXT )も取得してくれていますね。

Q04-1.png

「デモ商品マスタの先頭10件を見せて」
→ テーブルの情報も取得してラベルも使ってデータを10件表示してくれています。先程の質問もしているので自動的に DEMQUERYライブラリの デモ商品マスタ を見に行ってくれていますね。賢いです。

Q05-1.png

おまけ: もっと広げたいなら

IBM i にはyum/rpmでOSSパッケージをインストールできます。まずは何が入っているか確認してみましょう。

IBM i にインストールされているyumパッケージを確認して

Claude Codeは ssh ibmi "yum list installed" を実行して一覧を取得します。

そしてそのまま続けて

IBM i の操作に役立つものだけ厳選して、用途のコメントつきでCLAUDE.mdの利用可能なコマンドに追記して

これだけで、Claude Codeがパッケージ一覧を見て、python3やNode.js、gitなど活用できそうなコマンドを判断し、CLAUDE.mdに追記してくれます。

pythonなどがインストールされているとわかると、更にClaude Codeの幅が広がります。

OMAKE.png

要するに自分でCLAUDE.mdを書く必要すらありません。Claude Codeに環境を調べさせて、勝手に設定を整えてもらいましょう。

注意点

SSHで操作させるため、基本的になんでもできてしまいます。そのため以下のことは気をつけてください

  • IBM i 側のユーザー権限は必要最小限に
  • まずは開発・検証環境で試しましょう
  • 面倒くさいですがコマンドは毎回確認しましょう

まとめ

Claude Codeが導入されていれば、.ssh/config と4行の CLAUDE.md。たったこれだけで、Claude CodeがIBM i を操作できるようになります。

「なんでもできてしまう」という怖さはありますが、MCPサーバーの構築より簡単にClaude CodeによるIBM i の操作を試すことができます。コマンドやSQLの勉強にもなると思います。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?