MCPサーバー不要! databasemixでMySQLテーブル情報を1ファイル化してAI簡単連携

メディア統括本部 サービスリライアビリティグループ(SRG)の鬼海雄太(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、databasemixというツールをつかってMySQLのテーブル情報を1ファイルにまとめることで、AI活用で役立っているという話を書いています。
なにかの役に立てば幸いです。
 

databasemixとは


コーディング支援のAIからMySQLのテーブル情報を参照させたいとき、みなさんはどうしていますか?
データベース情報をコピペで貼り付ける方法では、毎回入力するのも面倒ですし入力する内容が最新の情報なのか気をつける必要があります。
MCPサーバー経由でDBに直接アクセスさせるの方法は、セキュリティに配慮して利用する必要があることと、そもそも利用者ごとにMCPサーバーを用意する手間があります。
 
今回紹介するdatabasemixを使った仕組みを整えると、MCPサーバー不要で常に最新のMySQLテーブル情報にAIがアクセスする環境が構築できます。
 
databasemixはMySQLアンカンファレンス#010@tom__bo さんが発表していたOSSで、repomixから着想を得て開発されており、MySQLの情報を1ファイルにまとめて出力できる機能をもっています。
 
ユーザーやロール情報や、テーブル構成、MySQLサーバーの変数などから選択して1ファイルに出力させることができます。
詳細は@tom__boさんのブログをご参照ください。

databasemixの出力を楽にAI活用させる方法


構成イメージ図

 
EC2サーバー上でdatabasemixを実行し、その出力結果のファイルをGitHubリポジトリ上に配置しています。出力にはDBユーザー情報やロール情報は含まず、テーブル構成情報のみとしています。
私の利用環境の都合上、多数のDBクラスタが存在しているため、その分多数のmarkdownファイルが生成されます。
AIで利用する際にクラスタごとにファイルが分かれていると面倒だったので、すべてのクラスタのテーブル構成情報を一つのファイルとして( 00_all-tables.md )連結して出力する処理をいれています。

Claude Codeに利用させる

~/.claude/CLAUDE.mdのルールに、クエリ関連の質問はすべてのファイルを検索するように指示しています。
例)CLAUDE.mdのルール
また、テーブル構成情報は日々更新されるものですので、Claude CodeのHooks機能をつかって、常に最新の情報をpullしてくるような処理もいれてみました。
例) ~/.claude/settings.jsonで特定パスのファイルへのReadとGrep時に自動でpullする処理追加
 
こうすることで、Claude Codeなどのコーディング支援AIが、常に最新のテーブル情報を参照したうえで回答をしてくれるようになります。
 

まとめと今後の期待


GitHubリポジトリをCloneしてくるだけで、常に最新のMySQLテーブル情報にAIがアクセスできるようになりました。
MCPサーバーの用意が不要という点が一番メリットだと思うので、これから多くの利用者(プロダクト開発チーム)に使ってもらおうと思います。
 
現時点では未対応ですが、Aurora MySQL利用時にIAMデータベース認証に対応されたら、RDS Data APIが使えるようになり、踏み台不要でGithub Actionsからそのまま実行できるようなことも考えられます。
また、MySQL以外のデータベースへの対応も期待しています!
 
 

SRGにご興味ありましたらぜひこちらからご連絡ください。