はじめに
こんにちは。MCPを使ったデータ分析をやって感動したのでシェアします。
私は、社内チームで使えるLLMサービス(以下、部内ツール)をチームメンバー限定で運用しています。
日毎の利用状況はどうか?どのLLMが使われていなくて置き換えた方がいいのか?よく使うユーザーは誰か?など、知りたいとは思っていても、なかなかSQLを叩いて分析するのは面倒だなと感じていました。
(部内ツールのDBはSQLiteなので)SQLite MCPを導入してからというもの、日本語で分析して欲しいことを指示するだけで、これらのデータ分析がものの2分でできるようになりました!とにかくデータ分析をするのが楽で、楽しくなりました。
本記事では、MCPの導入、実際の分析のやり方を説明します。
筆者の環境
- M4 Macbook Pro: Sequoia 15.6.1
- Claude Code: 1.0.100
- sqlite3: 3.43.2
- Node.js: 21.6.2
- npx: 10.5.2
前提条件について
私はClaude CodeでMCPを使っています。お使いのクライアント(Claude Desktop等)のMCP設定方法に読み替えてください。
npxでMCPサーバが起動するため、Node.jsのインストールが必要になっています。Node.jsのインストール後、npx --version
でバージョンが表示されることを確認してください。
データベース系MCPの導入
メジャーなRDBのMCPの接続方法について記載します。
MySQL, PostgreSQL, SQL Server, MariaDB, SQLiteに接続できるMCPサーバーのDBHubについて紹介します。
SSL接続やSSH Tunnelもサポートしているようなので、気になった方はGitHubのページを見てください。
Claude CodeでMCPを起動するには、プロジェクトのルートディレクトリに.mcp.json
を書く必要があります。
各DBの.mcp.json
の書き方は以下のようになります。
SQLiteの場合
sqlite://
以下のDBファイルを書き換えてください。
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"-y",
"@bytebase/dbhub",
"--transport",
"stdio",
"--dsn",
"sqlite:///Users/yshikeda/sqlite-mcp-test/conversations.db"
]
}
}
}
PostgreSQLの場合
ユーザー名・パスワード・ホスト・ポートを書き換えて使ってください。
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"-y",
"@bytebase/dbhub",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname?sslmode=disable"
]
}
}
}
MySQLの場合
ユーザー名・パスワード・ホスト・ポートを書き換えて使ってください。
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"-y",
"@bytebase/dbhub",
"--transport",
"stdio",
"--dsn",
"mysql://user:password@localhost:3306/dbname?sslmode=disable"
]
}
}
}
安全な実行のために設定すること
[注意] DBHubはexecute_sqlという権限のみでやっているので、これをClaude Codeで自動承認してしまうと勝手にSQLが実行されます
ということで、データを勝手に書き換えられないようにするため、DBHubのREADモードを設定します。
先ほどの .mcp.json
に--readonly
を加えてください。
"args": [
"-y",
"@bytebase/dbhub",
"--readonly",
"--transport",
...
]
データ分析を実演
部内ツールのデータベースのテーブル構成は以下のようになっています。
- users - ユーザー情報
- conversations - 会話データ
- messages - メッセージデータ
- shared_conversations - 共有会話
- その他のFTS(全文検索)関連テーブル
日毎の利用状況はどうか?どのLLMが使われていなくて置き換えた方がいいのか?よく使うユーザーは誰か?
を分析してみます。
Tips: 最初に「テーブルの構造を確認してください。」と実行してから、分析したいことを送ると成功確率が上がります
claude
とプロジェクトルートで実行します。Claude Codeが起動したら、/mcp
と打って、MCPサーバと接続できているかチェックします。
connectedになっていれば、正常です。
日別の利用状況は?
いいですね。日別の会話数がちゃんと表示されました。
よく使われているモデルは何?
いいですね。使用率も出力してくれました。
よく使うユーザーは誰?
ちゃんとユーザーIDごとに出力してくれました。とても便利ですね。
まとめ
- 日本語での自然な指示だけでSQLクエリを自動生成・実行できる
- データ分析が格段に簡単で楽しくなった
- 複雑なSQL知識なしでも高度な分析が可能
MCPを活用することでデータ分析の敷居を大幅に下げ、楽しく分析することができます。ぜひ、やってみてください。