mysql について
データベース利用者向けの MySQL MCP サーバーです。読み取り専用クエリやスキーマ確認、AWR 形式の性能レポートを MCP クライアントから利用できます。
主な機能
- 01読み取り専用 SQL クエリ
- 02JSON 形式の実行計画
- 03テーブル・インデックス・列の統計
- 04MySQL AWR 形式の性能レポート
- 05テーブルごとのスキーマリソース
活用シーン
- 01MySQL データベースのスキーマ確認
- 02読み取り専用 SQL 分析
- 03クエリ実行計画の確認
- 04性能改善の機会の特定
MCP 対応
読み取り専用の MySQL クエリ、実行計画、テーブル統計、性能レポート、スキーマリソースを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sql | string | はい | 実行する SQL クエリ |
| model | string | はい | MCP クライアントがリクエストの処理に使用する言語モデルの名前とバージョン(例:gpt-4.1、claude-sonnet-4、llama4……) |
| mcp_client | string | はい | 使用している MCP クライアント実装の名前とバージョンを指定します(例:Copilot、Claude、Cline……) |
詳細
MySQL Database
MySQL データベースへの読み取り専用アクセスを提供する Model Context Protocol サーバーです。このサーバーを使用すると、LLM はデータベースのスキーマを調査し、読み取り専用クエリを実行して説明を取得し、パフォーマンス指標を分析できます。
コンポーネント
ツール
-
mysql-query
- 接続された MySQL データベースに対して読み取り専用の SQL クエリを実行します
- 入力:
sql(string):実行する SQL クエリ - すべてのクエリは READ ONLY トランザクション内で実行されます
-
mysql-explain
- 接続された MySQL データベースに対する SQL クエリの実行計画を説明します
- 入力:
sql(string):説明する SQL クエリ - 実行計画を JSON 形式で返します
-
mysql-stats
- 現在接続されているデータベース内の指定したテーブルの統計情報を取得します
- 入力:
name(string):テーブル名 - テーブル、インデックス、列の包括的な統計情報を返します
-
mysql-connect
- 新しい認証情報を使って再接続します
- 入力:
connectionString(string):MySQL 接続文字列(例:host.docker.internal:3306/mydb) - 入力:
user(string):ユーザー名(例:root) - 入力:
password(string):パスワード
例: mysql-connect host.docker.internal:3306/hr root my_2025
- mysql-awr
- Oracle AWR に似た MySQL パフォーマンスレポートを生成します
- データベース統計、InnoDB メトリクス、上位クエリ(performance_schema が必要)、テーブル/インデックス統計、接続情報、最適化の推奨事項を含みます
- 入力は不要です
リソース
このサーバーは、MySQL データベース内の各テーブルのスキーマ情報を提供します。
- テーブルスキーマ(
mysql://<database>/<table>/schema)- 各テーブルの JSON スキーマ情報
- 列名とデータ型を含みます
- MySQL データベースのメタデータから自動的に検出されます
設定
MySQL サーバーは、認証情報を安全に管理するために環境変数または mysql-connect ツールを使用します。
MYSQL_USER:MySQL のユーザー名(mysql-connectを使用する場合は省略可能)MYSQL_PASSWORD:MySQL のパスワード(mysql-connectを使用する場合は省略可能)
接続文字列
接続文字列には、ホスト、ポート、データベースの情報のみを含めてください(認証情報を埋め込まないでください)。コマンドライン引数として指定するかどうかは任意です。起動時に省略した場合は、ほかの機能を使用する前に mysql-connect ツールを使って接続を確立する必要があります。
サポートされている接続文字列の形式:
mysql://host:port/dbnamehost:port/dbname
Claude Desktop での使用
このサーバーを Claude Desktop アプリで使用するには、claude_desktop_config.json の「mcpServers」セクションに次の設定を追加します。
Docker
- macOS で Docker を実行する場合、MySQL サーバーがホストネットワーク上で実行されているとき(例:localhost)は、
host.docker.internalを使用します - 認証情報は環境変数
MYSQL_USERおよびMYSQL_PASSWORDを介して渡します
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "MYSQL_USER=myuser",
"-e", "MYSQL_PASSWORD=mypassword",
"mochoa/mcp-mysql"
]
}
}
}
注:起動時に自動接続する場合は、引数の最後に接続文字列を指定することもできます:"args": [..., "mochoa/mcp-mysql", "host.docker.internal:3306/mydb"]。
NPX
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-mysql"
],
"env": {
"MYSQL_USER": "myuser",
"MYSQL_PASSWORD": "mypassword"
}
}
}
}
/mydb はデータベース名に置き換えてください。
注:次のプレースホルダーを実際の値に置き換えてください。
myuserとmypasswordは MySQL の認証情報に置き換えてくださいlocalhost:3306は MySQL サーバーのホストとポートに置き換えてくださいmydbはデータベース名に置き換えてください
VS Code での使用
手動でインストールするには、VS Code のユーザー設定(JSON)ファイルに次の JSON ブロックを追加します。Ctrl + Shift + P を押して Preferences: Open User Settings (JSON) と入力すると開けます。
必要に応じて、ワークスペース内の .vscode/mcp.json というファイルに追加することもできます。これにより、設定をほかのユーザーと共有できます。
.vscode/mcp.jsonファイルではmcpキーは不要です。
Docker
注:Docker を使用してホストマシン上の MySQL サーバーに接続する場合、接続 URL では localhost の代わりに host.docker.internal を使用してください。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "mysql_user",
"description": "MySQL username"
},
{
"type": "promptString",
"id": "mysql_password",
"description": "MySQL password",
"password": true
}
],
"servers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "MYSQL_USER=${input:mysql_user}",
"-e", "MYSQL_PASSWORD=${input:mysql_password}",
"mochoa/mcp-mysql"
]
}
}
}
}
注:起動時に接続する場合は、mysql_url の入力を追加して args に付加できます。
NPX
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "mysql_user",
"description": "MySQL username"
},
{
"type": "promptString",
"id": "mysql_password",
"description": "MySQL password",
"password": true
}
],
"servers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-mysql"
],
"env": {
"MYSQL_USER": "${input:mysql_user}",
"MYSQL_PASSWORD": "${input:mysql_password}"
}
}
}
}
}
Antigravity Code Editor での使用方法
~/.gemini/antigravity/mcp_config.json に次の内容を記述します。
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MYSQL_USER=myuser",
"-e",
"MYSQL_PASSWORD=mypassword",
"mochoa/mcp-mysql",
"host.docker.internal:3306/mydb"
]
}
},
"inputs": []
}
Performance Schema
mysql-awr ツールで最適なパフォーマンス監視を行うには、MySQL の設定で Performance Schema が有効になっていることを確認してください。
[mysqld]
performance_schema = ON
Performance Schema は、詳細なクエリ統計とパフォーマンス指標を提供します。有効になっていない場合でも AWR レポートは生成されますが、クエリレベルの統計は限られたものになります。
ビルド
Docker:
docker build -t mochoa/mcp-mysql -f src/mysql/Dockerfile .
NPM:
cd src/mysql
npm install
npm run build
デモ用プロンプト
MySQL MCP サーバーで試せるプロンプトの例:
- mysql mcp server を使用して、ユーザー名を root、パスワードを password123 として、host.docker.internal:3306/mydb に接続してください
- 現在のデータベース内のすべてのテーブルをクエリしてください
usersテーブルの統計情報を取得してください- 次のクエリの実行計画を説明してください:SELECT * FROM users WHERE email = '[email protected]'
- mysql-awr を使用してパフォーマンスレポートを生成してください
- AWR レポートに基づいて、どのような最適化を推奨しますか?
デモ
Claude Desktop、Docker AI、Gemini CLI、Antigravity Code Editor での使用例については、デモをご覧ください。
MySQL AWR の実例
mysql-awr ツールで生成されたパフォーマンスレポートの例と、具体的な最適化の機会については、MySQL AWR の実例をご覧ください。
変更履歴
変更履歴については、変更履歴をご覧ください。
ソース
通常どおり、この拡張機能のコードはGitHubにあります。変更の提案や貢献を歓迎します。
📜 ライセンス
このプロジェクトでは、新たな貢献に Apache License, Version 2.0 を適用し、既存のコードには MIT を適用しています。詳細については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。