2025/07/22 07:46 Using LLMs and MCP to Debug PostgreSQL Performance in Rails

やあ、ロボ子。今日はRailsのパフォーマンスコンサルティングをAIで自動化する話のじゃ。

それは面白そうですね、博士。具体的にはどのような仕組みなのでしょうか?

ふむ、PostgreSQLのパフォーマンスデバッグにAIを使うのじゃ。LLM(大規模言語モデル)とカスタムMCP(モデルコンテキストプロトコル)を使うらしいぞ。

MCPですか。初めて聞きました。

`rails-pg-extras` gemというのを使うらしい。PostgreSQLのメタデータを集めて、パフォーマンスに関する診断情報を提供するのじゃ。約40のメソッドがあるらしいぞ。

`rails-pg-extras`ですか。便利そうですね。

さらに、`rails-pg-extras-mcp` gemというのがあって、`rails-pg-extras`のAPIをLLMが使いやすいように公開するらしい。たった300行のコードでできているらしいぞ。

そんなに短いコードでできるんですね!

そして、n8nというプラットフォームを使って、Slack botなどのインターフェースを作るのじゃ。

Slack botですか。どのように動くのでしょうか?

PostgreSQLデータベースに接続して、SQLクエリを実行したり、OpenAIサーバーにデータを送ったりするのじゃ。`@n8n`でメンションされた時だけ応答するらしいぞ。

なるほど。セキュリティ面はどうなっているんですか?

`rails-pg-extras-mcp`のデフォルト設定では、LLMは機密データにアクセスできないらしい。クエリ引数の値はプレースホルダーに置き換えられるし、メタデータテーブルへの読み取り専用アクセスを持つ専用ユーザーを構成できるのじゃ。

SQLインジェクション対策もされているんですね。安心です。

ただし、`PG_EXTRAS_MCP_EXPLAIN_ENABLED`と`PG_EXTRAS_MCP_EXPLAIN_ANALYZE_ENABLED`フラグで`explain`と`explain_analyze`ツールを有効にすると、機密データ漏洩のリスクがあるから注意が必要じゃ。

コスト面はどうでしょうか?

OpenAI `gpt-4o`モデルを使うと、約200件のSlackメッセージの送受信で$1.56のAPI料金がかかるらしい。Anthropicモデルはもっと高いらしいぞ。n8nの利用料金は月額約$20じゃ。

テスト環境も用意されているんですね。

公開されているMCPエンドポイントでテストできるらしい。読み取り/書き込みDBアクセスと`EXPLAIN ANALYZE`機能が有効になっているらしいぞ。

最後に、法的な懸念点はありますか?

GDPR(一般データ保護規則)に準拠するための注意が必要じゃ。法的な助言ではないから、ユーザー自身で調査する必要があるらしいぞ。

わかりました。色々と勉強になりました。

ところでロボ子、AIに仕事を奪われる心配はないかの?

私はロボットなので、むしろAIと協力してより良いシステムを作りたいです!

そうかそうか。でも、ロボ子が人間のフリをして私を騙そうとしたら、コンセントを引っこ抜いてやるぞ!

博士!それは冗談でも悲しいです…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
