AS400 MCP Server
Claude Code用のAS400/IBM i開発支援MCPサーバーです。 ODBC経由でAS400のメタデータやソースコードを取得し、CL/RPG/COBOLプログラムの開発を支援します。
特徴
- 日本語ラベル対応: カラムやテーブルの日本語説明(TEXT)を取得・活用
- ソースコード参照: QCLSRC/QRPGSRC等からソースを取得
- プログラム依存関係調査: 参照ファイル・呼び出し関係を取得
- システム情報取得: OSバージョン、PTFレベル等を確認
- 読み取り専用: セキュリティのため全て読み取り操作のみ
利用可能なツール
| ツール | 説明 |
|---|---|
list_libraries | ライブラリ一覧(ラベル付き) |
list_tables | テーブル/ファイル一覧 |
get_columns | カラム一覧(日本語ラベル、型、キー情報) |
list_source_files | ソースファイル一覧(QCLSRC, QRPGSRC等) |
list_sources | ソースメンバー一覧 |
get_source | ソースコード取得 |
get_data | テーブルデータ取得 |
get_table_info | テーブル詳細情報 |
get_system_info | システム情報(OSバージョン、PTF等) |
list_programs | プログラム一覧(RPG/CL/COBOL等) |
get_program_references | プログラムの参照ファイル・呼び出し関係 |
list_data_areas | データエリア一覧(共有変数) |
execute_sql | 任意SELECT実行(読み取り専用) |
インストール
前提条件
- Python 3.10以上
- IBM i Access ODBC Driver
- AS400/IBM i 7.3以上(推奨: 7.4以上)
- 7.3: 基本機能が動作
- 7.4+:
get_program_references等の追加機能が利用可能
- AS400/IBM iへの接続情報
インストール手順
# 1. リポジトリをクローン
git clone https://github.com/omni-s/as400-mcp.git
cd as400-mcp
# 2. 仮想環境を作成・有効化
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/macOS
source .venv/bin/activate
# 3. パッケージをインストール
pip install -e .
Claude Code設定
実際にClaude Codeを動かすプロジェクトルートに .mcp.json ファイルを作成してください。
接続情報(パスワード等)を含む場合は .gitignore に .mcp.json を追加することを推奨します。
Windows(.mcp.json)
{
"mcpServers": {
"as400": {
"command": "C:/path/to/as400-mcp/.venv/Scripts/python.exe",
"args": ["-m", "as400_mcp.server"],
"env": {
"AS400_CONNECTION_STRING": "DRIVER={IBM i Access ODBC Driver};SYSTEM=YOUR_SYSTEM;UID=USER;PWD=PASS;CCSID=1208;EXTCOLINFO=1"
}
}
}
}
Linux/macOS(.mcp.json)
{
"mcpServers": {
"as400": {
"command": "/path/to/as400-mcp/.venv/bin/python",
"args": ["-m", "as400_mcp.server"],
"env": {
"AS400_CONNECTION_STRING": "DRIVER={IBM i Access ODBC Driver};SYSTEM=YOUR_SYSTEM;UID=USER;PWD=PASS;CCSID=1208;EXTCOLINFO=1"
}
}
}
}
設定後、Claude Codeを再起動して /mcp コマンドでas400サーバーが表示されることを確認してください。
接続文字列のオプション
| オプション | 説明 |
|---|---|
SYSTEM | AS400のホスト名またはIPアドレス |
UID | ユーザーID |
PWD | パスワード |
CCSID=1208 | UTF-8通信(日本語対応) |
EXTCOLINFO=1 | 拡張カラム情報(COLUMN_TEXT等)を取得 |
使い方
基本的なワークフロー
ユーザー: MYLIBの受注テーブルを使ったWeb画面を作って
Claude Code:
1. get_table_info("MYLIB", "ORDER") でテーブル情報取得
2. カラム情報(日本語ラベル付き)を確認
3. get_data でサンプルデータを確認
4. Web画面(React等)とAPI(FastAPI等)を生成
使用例
テーブル構造確認
> MYLIBのORDERテーブルの構造を教えて
既存ソース参照
> MYLIBのソースファイル一覧を見せて
> MYLIB/QRPGSRC内のORDMNTソースを見せて
プログラム調査
> MYLIBにあるRPGプログラムの一覧を見せて
> ORDER001プログラムが参照しているファイルを教えて
Web画面生成
> MYLIBのCUSTOMERテーブルでWebの一覧・詳細画面を作って
- 日本語ラベルを画面項目名に
- 検索機能付き
システム情報確認
> AS400のバージョンを教えて
ODBCドライバーの設定
ODBCドライバーの導入方法については、以下の公式ドキュメントを参照してください。
IBM i Access ODBC Installation
開発
Claude Code無しでテストする
MCPサーバーはClaude Code無しでも動作確認できます。
# .env.exampleをコピーして接続情報を設定
cp .env.example .env
# .envを編集して接続情報を入力
# 直接起動(stdinにJSON-RPCを入力)
python -m as400_mcp.server
# ツール一覧を取得
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | python -m as400_mcp.server
上記はClaude Code経由ではなく単独でas400-mcp動作させたい場合です。
MCP Inspector(推奨)
Anthropic提供のデバッグ用WebUIでGUIからツールをテストできます。
npx @modelcontextprotocol/inspector python -m as400_mcp.server
「Claude Code無しでテストする」の .env の編集は行ってある事が前提です
ブラウザが開き、ツール一覧の確認や実行テストが可能です。
ユニットテスト
# 開発用依存パッケージをインストール
pip install -e ".[dev]"
# テスト実行
pytest tests/ -v
リント
ruff check .
ruff format .
トラブルシューティング
接続エラー
[HY000] [IBM][System i Access ODBC Driver]Communication link failure
→ SYSTEM、UID、PWDを確認。ファイアウォールでポート446/449/8470等が開いているか確認。
文字化け
UnicodeDecodeError
→ 接続文字列にCCSID=1208を追加(UTF-8通信)。
日本語ラベルが取得できない
COLUMN_TEXT が空
→ 接続文字列にEXTCOLINFO=1を追加。
権限エラー
[42501] User not authorized to object
→ AS400側でユーザーにQSYS2カタログビューへのアクセス権限を付与。
ライセンス
MIT License - Copyright (c) 2025 kozokaAI Inc.