mcpField
M
mysql

mysql

ローカル
github.com/marcelo-ochoaデータベース210 週間前に更新

mysql について

データベース利用者向けの MySQL MCP サーバーです。読み取り専用クエリやスキーマ確認、AWR 形式の性能レポートを MCP クライアントから利用できます。

主な機能

  1. 01読み取り専用 SQL クエリ
  2. 02JSON 形式の実行計画
  3. 03テーブル・インデックス・列の統計
  4. 04MySQL AWR 形式の性能レポート
  5. 05テーブルごとのスキーマリソース

活用シーン

  1. 01MySQL データベースのスキーマ確認
  2. 02読み取り専用 SQL 分析
  3. 03クエリ実行計画の確認
  4. 04性能改善の機会の特定

MCP 対応

読み取り専用の MySQL クエリ、実行計画、テーブル統計、性能レポート、スキーマリソースを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"marcelo-ochoa-mysql": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-mysql"
],
"env": {
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>"
}
}
}
}
起動コマンドnpx -y @marcelo-ochoa/server-mysql
設定が必要な環境変数
MYSQL_USERMySQL username
MYSQL_PASSWORDシークレットMySQL password

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@marcelo-ochoa/server-mysql1.0.7

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
sqlstringはい実行する SQL クエリ
modelstringはいMCP クライアントがリクエストの処理に使用する言語モデルの名前とバージョン(例:gpt-4.1、claude-sonnet-4、llama4……)
mcp_clientstringはい使用している 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/dbname
  • host: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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。