AWS公式からAurora MySQL MCP Serverがリリース!自然言語でクエリ実行可能

メディア統括本部 サービスリライアビリティグループ(SRG)の鬼海雄太(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、AWS公式がリリースしたAurora MySQL MCP Serverを検証してみた記事になります。
なにかの役に立てば幸いです。
 

awslabs AWS MCP Servers


AWS公式のMCPサーバー郡がこちらにあります。
リリース当初は数種類しかなかったのですが、最近見てみたらすごい種類が増えていました。
 
最近リリースされたものから、気になったものをピックアップするだけでもこれだけあります。

Amazon Aurora MySQL MCP Server


特に気になっているAmazon Aurora MySQL MCP Serverを検証してみました。
導入に必要な情報のドキュメントはこちらにあります。
 
上記ドキュメントから特徴を引用します。
Features Natural language to MySQL SQL query Converting human-readable questions and commands into structured MySQL-compatible SQL queries and executing them against the configured Aurora MySQL database.
📖
機能
自然言語からMySQL SQLクエリへの変換 人間が読みやすい質問やコマンドを、構造化されたMySQL互換のSQLクエリに変換し、設定されたAurora MySQLデータベースに対して実行します。
 
クエリの実行には を利用しているようです。
RDS Data APIの利用制限として
  • バースト可能インスタンスクラス(t3,t4)では利用不可
  • Aurora MySQL version 3.07以降が必要
がある点に注意が必要です。
 
上記を満たしている既存クラスタでRDS Data APIを有効化するには、
既存クラスタの「接続とセキュリティ」タブを一番下までスクロールしたら出てくる設定を変更します。
RDS Data APIの有効化を押します。
 

検証用テーブルの作成


Aurora MySQLに接続し、検証用のテーブルを2つ作成しておきます。
それぞれのテーブルに適当なデータを数十件INSERTしておきます。
サンプルINSERT文

CursorでのMCP設定して自然言語でクエリ実行させてみる


ここではMCPの設定としてCursorをつかった例を掲載しています。
作業しているディレクトリに.cursor/mcp.jsonを作成します。
 
cursorのチャット欄に指示を出します。
 
すると、mcp.jsonに定義したdockerの起動許可が求められるので、「Run」を押します。
 
無事起動したら、「」と命令してみます。
 
MCPによって、を実行すると出ているので「Run tool」を押します。
 
💡
上記のように提案してきたクエリの末尾に ; がついていると現状エラーになります
これはmysql-mcp-serverの実装でエラーを出しているようです。
 
関数をさらに見ていくと、クエリにが含まれるとエラーで弾くようになっているようです。
 
いったん、プロンプトでを付与しないように命令するとうまくいきます。
 
特定テーブルの構造を確認することも可能です。

スローログを自動で集計して改善案を提案してもらう


スローログを自動で集計して、改善案としてINDEX追加を提案してもらいます。
 
まずは指示通り、mysqldumpslowでの集計をおこなってくれました。
ここからさらに自動で実際のテーブルの状況をMCPで確認しにいってくれます。
※サンプルクエリでは数十件しかINSERTしてませんでしたが、スロークエリにするために数百万件レコード追加しています。
 
分析結果をこのように表示してくれました。
そして推奨のINDEXについても情報を出してくれています。
 
最後にINDEX追加による注意点も記載してくれています。

リスクについて


自然言語でクエリを実行できることは非常に便利です。今回はMCP serverをread-onlyで起動しており、参照クエリしか許可していないため大きな事故は起きづらいかと思います。
しかし、利用者の環境ごとにMCP serverを設定する必要があり、read-onlyを外して起動される場合もあると思います。
その対策としては、MCP serverで利用するDBユーザー情報を適切な権限のものに制限しておくなどが必要かと考えられます。
また、今回は検証環境でしか利用していませんが、本番相当の環境で利用する場合はMCP サーバーが利用するIAMユーザーの権限などを適切に絞って利用することが望ましいです。

終わりに


Amazon Aurora MySQL MCP Serverだけでも非常に便利そうだということがわかりました。
今回は手動でスロークエリログを与えて解析させてみましたが、Amazon Cloudwatch Logs MCP Serverと組み合わせたら、自然言語でログの取得からクエリ解析まで一貫して行えるのではないかと夢が膨らんでいます!
ぜひみなさんもawslabsの公式MCPサーバーを色々試してみて下さい。
 
SRG では一緒に働く仲間を募集しています。 ご興味ありましたらぜひこちらからご連絡ください。