Claude CodeでDatabaseを使う方法をお探しですね。

広告

エンジニアの日常をラクにする!Claude CodeとMCPでデータベース操作を変える方法

エンジニアやデータアナリストの皆さん、データベースを使った作業って意外と面倒じゃないですか?SQLクライアントを開いて、接続情報を入れて、テーブルを確認しながらクエリを書いて、結果をCSVで保存して…。

この一連の流れ、けっこう時間がかかりますよね。

でも実は、Anthropic社の「Claude Code」と、新しい仕組みである「MCP(Model Context Protocol)」を組み合わせると、この作業がびっくりするくらい楽になるんです。

ターミナルで普通に会話するように「先月の売上データを商品別に見せて」と頼むだけで、データの取得から分析、グラフ化までスムーズにできちゃいます。

この記事では、PostgreSQLとDuckDBを例に、Claude Codeからデータベースを安全に、そして便利に使う方法を分かりやすく説明していきます。

Claude CodeとMCPで変わるデータベース操作

今までAIアシスタントを使ってデータベース作業をするときは、テーブルの構造をコピペしてAIに見せて、SQLを作ってもらって、それを自分で実行して…という手順が必要でした。

でもMCPの登場で、Claude Code自体がデータベースと直接「会話」できるようになったんです。

これ、けっこう革命的なことなんですよ。

MCPサーバーを通じて、Claude Codeはデータベースの中身を自分で確認できます。

だから「先月の売上を商品別に集計して」みたいな普通の言葉での指示を、自動的に正しいSQLに変えて実行してくれるんです。

エンジニアは細かいSQL文法やテーブル名の確認から解放されて、「このデータから何が分かるか」という大事な部分に集中できるようになります。

しかも、この仕組みはただSQLを自動で作るだけじゃありません。

開発の流れ全体を変える可能性があります。

たとえばアプリを作っているときに「テストデータがほしいな」と思ったら、今まではスクリプトを書いたり手作業でデータを入れたりしていました。

でもMCPに接続されたClaude Codeなら、「テストユーザーを5人作って、それぞれにランダムな注文履歴をつけて」と言うだけで完了します。

エラーが起きたときも、ログとデータベースの状態を見比べて原因を探す作業を、AIが自分でやってくれるようになります。

MCPは単なる接続の仕組みではなく、AIを「コードを書く助手」から「システム全体を操作できる相棒」に進化させるための大事な土台なんです。

PostgreSQLをClaude Codeにつなげてみよう

実際にClaude CodeからPostgreSQLを使えるようにするには、公式のPostgreSQL用MCPサーバーを設定ファイルに書き込む必要があります。

プロジェクトのフォルダか全体の設定にある`mcp.json`ファイルに、DockerやnpxコマンドでMCPサーバーを起動する設定を追加します。

このとき、データベースへの接続情報(ユーザー名、パスワード、サーバーのアドレス、ポート番号、データベース名)を渡すことになります。

ここで大事なのがセキュリティです。

管理者権限を持つユーザーではなく、必要なテーブルだけ見られる専用のユーザーを作って使うようにしましょう。

設定が終わってClaude Codeを再起動すれば、AIが自動的にデータベースを認識して、会話の中で必要に応じてアクセスしてくれます。

つながった後の使い心地は、今までのデータベースツールとは全然違います。

「ユーザーテーブルにどんな項目があるか教えて」と聞けばすぐに答えてくれますし、「最近ログインしてないユーザーを出して」と頼めば、`last_login`の日付をもとに適切なクエリを作って実行してくれます。

複雑なJOINが必要なクエリでも、AIはテーブル同士の関係を構造から読み取って組み立ててくれるので、ER図とにらめっこしながら悩む必要がなくなります。

もしAIが作ったクエリが心配なら、実行前に内容を確認させることもできますし、結果をもとに「このデータをグラフにするためのJSON形式にして」といった次の作業へスムーズにつなげられるのも、チャット形式ならではの良さです。

DuckDBで実現する安全なローカルデータ分析

サーバーで動くPostgreSQLとは違って、ファイルベースで高速に分析できるDuckDBも、Claude Codeととても相性がいいデータベースです。

特に、数ギガバイトもあるCSVファイルやParquetファイルを分析したいとき、わざわざデータベースサーバーを立ててデータを入れるのは面倒ですよね。

DuckDBならファイルを直接読み込んでSQLを投げられます。

MCPを通じてDuckDBを使えるように設定しておけば、Claude Codeに「このフォルダの売上CSVを読み込んで、月ごとの推移を集計して」と頼むだけで、内部でDuckDBを起動して高速に処理してくれます。

データは自分のパソコンの中にあるので、機密情報をクラウドにアップロードすることなく、安全に分析を進められるのも大きなメリットです。

さらに、データ分析の記録を残すには、DuckDBと一緒に「marimo」のようなPython Notebookツールを使うのがおすすめです。

従来のJupyter NotebookはGitなどのバージョン管理と相性が悪かったんですが、marimoは普通のPythonスクリプトとして保存されるので、Claude Codeでの読み書きや修正が簡単です。

Claude CodeにDuckDBで分析させて、その過程と結果をmarimo形式のスクリプトとして出力させれば、分析作業の自動化と記録を同時にできます。

これで一回きりの分析で終わらせず、チーム全体で使える分析資産として積み重ねていけるようになり、データを活用した開発体制を強化できます。

データベース連携で気をつけたいセキュリティのこと

Claude Codeからデータベースを直接操作できるのは便利ですが、間違った操作でデータを壊したり、大事な情報が漏れたりするリスクもあります。

だから、MCP経由でアクセスするときは、しっかりとしたセキュリティ対策と運用ルールが必要です。

まず技術的に一番大事なのが、AIが使うデータベースユーザーの権限を「読み取り専用(ReadOnly)」に制限することです。

開発環境やローカルの使い捨てコンテナなら書き込み権限を与えてもいい場合もありますが、本番環境や共有の開発データベースにつなぐときは、`UPDATE`や`DELETE`、`DROP`といった危険な操作ができないよう、データベース側でしっかり権限を絞りましょう。

これで、万が一AIが意図しないクエリを実行しようとしても、データベース側でブロックされて事故を防げます。

運用面でのルール作りも大切です。

特に「人間が確認するプロセス」を省略しない姿勢が求められます。

Claude Codeはとても優秀ですが、完璧ではありません。

指示があいまいだと、意図と違うデータを取ってきてしまう可能性もゼロではないんです。

重要な判断に使うデータを取得するときは、AIに任せっきりにせず、作られたSQLクエリを必ず一度自分の目で確認するか、「実行する前に必ず実行計画とクエリ内容を見せて承認を求めて」という指示を徹底しましょう。

さらに、Dockerコンテナを使って、分析のたびに使い捨てのデータベース環境を立ち上げる運用にすれば、環境を汚すリスクを最小限に抑えながら、AIに自由に試行錯誤させられます。

便利さと安全性のバランスを意識しながら環境を作っていきましょう。

広告