Claude Code にプロジェクトの知識を渡す
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
前回の記事で WordPress の開発環境が整いました。この記事では、Claude Code の開発をさらに効率化するためのツールを追加します。
MySQL クライアントを導入して Claude Code が DB 構造を参照できるようにし、Composer プロジェクトで vendor を置かずに開発する考え方を整理します。
【広告】 XServer VPS には Claude Code のアプリイメージが用意されています。
VPS上に独立した Claude Code 環境を簡単に構築することができます。
VPSでいろいろ試すなら『XServer VPS』
MySQL クライアントのインストール
Claude Code に DB の構造を把握させたい場面があります。テーブル定義の確認、カラム名の参照、既存データの傾向を見てからコードを書く、といったケースです。そのために Ubuntu に MySQL クライアントだけをインストールします。サーバー(mysqld)は入れません。
接続先は開発環境のデータベースです。読み取り専用であっても、本番環境のデータベースには接続しないでください。開発用に別途用意した DB サーバーを使用します。本番データが必要な場合は、個人情報をダミー化したコピーを開発環境に用意してください。
apt の一時開放とインストール
記事6で設定した UFW のアウトバウンド制限により、HTTP(80/tcp)はブロックされています。apt を使うために一時的に開放します。
# 管理ユーザーで実行
# apt 用に HTTP を一時開放
sudo ufw allow out 80/tcp
# パッケージ情報を更新
sudo apt update
# MySQL クライアントのみインストール
sudo apt install mysql-client -y
# HTTP を閉じる
sudo ufw delete allow out 80/tcp
# 確認
mysql --version
mysql Ver 8.0.xx-0ubuntu0.24.04.x for Linux on x86_64 ((Ubuntu))
mysql-client パッケージはクライアントツール(mysql コマンド)だけを含むメタパッケージです。サーバーデーモン(mysqld)はインストールされないため、ディスクもリソースも最小限で済みます。
DB 読み取り専用ユーザーの用意
Claude Code が接続する DB ユーザーは、SELECT のみ許可された読み取り専用ユーザーを使用してください。DB サーバー側で事前に作成しておく必要があります。
Claude Code に書き込み権限のある DB ユーザーを渡さないでください。意図しない UPDATE や DELETE が実行されるリスクがあります。SQL の提案は Claude Code に任せ、実行はメインPC側から手動で行う運用です。
DB 接続情報の管理
DB の接続情報(ホスト・ポート・ユーザー・パスワード)は Git に含めたくない情報です。.local/ はメインPC 向けの設定ディレクトリでしたが、Ubuntu(Claude Code)向けの設定は .local-cc/ に分けて管理します。
| ディレクトリ | 用途 | 方向 |
|---|---|---|
.local/ | メインPC 向けの設定(rsync 接続情報など) | —(メインPC 内で完結) |
.local-cc/ | Ubuntu(Claude Code)向けの設定(DB 接続情報など) | メインPC → Ubuntu(一方通行) |
.local-cc/ ディレクトリの作成
メインPC 側で .local-cc/ ディレクトリを作成し、DB 接続情報を database.json として配置します。
{
"host": "192.168.xxx.xxx",
"port": 13306,
"database": "sample_wp",
"user": "cc_readonly",
"password": "xxxxxxxx"
}
値はご自身の環境に合わせて書き換えてください。
.gitignore について
.local-cc/ はパスワードを含むため Git 管理から除外する必要がありますが、記事9で作成した .gitignore に既に含まれています。
rsync ルールの更新
.local-cc/ は push-to-ubuntu でメインPC から Ubuntu に送ります。sync-pull(Ubuntu → メインPC)には追加しません。一方通行です。
push-to-ubuntu.cmd の INCLUDE_RULES に以下を追加してください。
set INCLUDE_RULES=%INCLUDE_RULES% --include="/.local-cc/***"
DB 接続の確認
push-to-ubuntu で .local-cc/database.json を Ubuntu に送ったら、専用ユーザーから DB に接続できることを確認します。
# 専用ユーザーに切り替え
sudo su - cc-sample-wp
# DB に接続(ホスト・ポート・ユーザーは環境に合わせて変更)
mysql -h <DBサーバーIP> -P <ポート> -u <ユーザー名> -p <データベース名>
# 例:
# mysql -h 192.168.1.10 -P 13306 -u cc_readonly -p sample_wp
パスワードを入力して接続できたら、読み取りだけ可能なことを確認しておきます。
-- テーブル一覧の確認
SHOW TABLES;
-- 適当なテーブルの構造を確認
DESCRIBE wp_posts;
-- 書き込みが拒否されることを確認
INSERT INTO wp_posts (post_title) VALUES ('test');
-- → ERROR: INSERT command denied
SHOW TABLES や DESCRIBE が成功し、INSERT が拒否されれば正常です。Claude Code はこの接続情報を使って DB 構造を参照し、それを踏まえたコードを生成できるようになります。
Composer プロジェクトでの考え方
WordPress 自体には Composer は不要ですが、案件によっては Composer でライブラリを管理するケースもあります。ここでは、この環境で Composer プロジェクトを扱う際の考え方を整理しておきます。
vendor は Ubuntu に置かない
Composer の vendor/ ディレクトリは Ubuntu に配置しません。理由は2つあります。
- Ubuntu に実行環境がない — この環境では Ubuntu 側に PHP をインストールしていないため、
composer installを実行できません。vendor は メインPC 側で管理します - コンテキストの浪費を防ぐ — vendor には大量のファイルが含まれます。Claude Code のコンテキストウィンドウを消費するだけで、カスタマイズには不要です
composer.json だけで十分
Claude Code にライブラリの情報を伝えるには、composer.json をプロジェクトルートに置くだけで十分です。Claude Code は composer.json の require セクションを読むことで、どのライブラリがインストールされているか、どのバージョンを使っているかを把握できます。
実際のコードは vendor の中身を見なくても、ライブラリのクラス名や API を知識として持っています。composer.json で「このプロジェクトは monolog/monolog を使っている」と分かれば、適切なコードを生成できます。
vendor/ は settings.json の deny ルールで読み取り・書き込みをブロック済みです(記事11で設定)。composer.json はブロック対象ではないため、Claude Code から自然に参照できます。
現在の状態まとめ
ここまでで、開発ツールの追加設定が完了しました。
- MySQL クライアントをインストール済み(サーバーは不要)
- DB 読み取り専用ユーザーで接続確認済み
.local-cc/database.jsonに DB 接続情報を配置済み- push-to-ubuntu に
.local-cc/の同期ルールを追加済み
これで、Claude Code が DB 構造を参照しながらコードを生成できる環境が整いました。次の記事では、日々の開発サイクルの実際の流れを紹介します。
【広告】 XServer VPS には Claude Code のアプリイメージが用意されています。
VPS上に独立した Claude Code 環境を簡単に構築することができます。
VPSでいろいろ試すなら『XServer VPS』