mcpField
P
Production Safe Mysql Mcp Server

Production Safe Mysql Mcp Server

ローカル
github.com/turkeryildirimデータベース124 週間前に更新

Production Safe Mysql Mcp Server について

Production Safe Mysql Mcp Serverは、AIエージェントにMySQLのクエリ、スキーマ、データベース管理操作を提供します。トランザクションと複数データベースに対応し、指定された高リスクコマンドを遮断します。破壊的なDDLは明示的な有効化が必要です。

主な機能

  1. 01パラメーター化クエリとアトミックなトランザクション
  2. 02テーブルとデータベースの管理
  3. 03スキーマ確認とサーバー情報の取得
  4. 041セッションで複数データベースに対応
  5. 05高リスクコマンドの遮断と破壊的DDLの制限

活用シーン

  1. 01エージェントからMySQLデータを照会・更新
  2. 02複数のステートメントを一括トランザクションで実行
  3. 03テーブルとカラム定義の確認
  4. 04破壊的操作が既定で無効の状態でデータベースを管理

MCP 対応

MCPクライアント向けに、MySQLのクエリ、トランザクション、スキーマ、データベース管理ツールを公開するMCPサーバーです。各ツールのデータベース指定により、1セッションで複数のデータベースにアクセスできます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mysql-mcp

AI エージェントが MySQL データベースに直接アクセスできるようにする、Model Context Protocol(MCP)サーバーです。

できること

データのクエリと変更
  • execute_query — パラメーター化クエリ(? プレースホルダー)に対応し、SELECT、INSERT、UPDATE、DELETE ステートメントを実行します
  • execute_transaction — 複数のステートメントをアトミックなバッチとして実行します。いずれかのステートメントが失敗すると、トランザクション全体が自動的にロールバックされます
スキーマ管理
  • create_table — 新しいテーブルを作成します
  • alter_table — カラムの追加・削除、カラム名の変更、インデックスの追加などを行います
  • drop_table — テーブルを削除します(ALLOW_DESTRUCTIVE_DDL=true が必要です)
  • show_tables — データベース内のすべてのテーブルを一覧表示します
  • describe_table — テーブルのカラム構造を表示します
データベース管理
  • list_databases — すべてのユーザーデータベースを一覧表示します(システムデータベースを除く)
  • create_database — 文字セットと照合順序を任意で指定して、新しいデータベースを作成します
  • drop_database — データベースを削除します(ALLOW_DESTRUCTIVE_DDL=true が必要です)
内部情報の取得
  • ping — MySQL 接続の状態を確認します
  • show_columns — テーブルの詳細なカラム情報を表示します
  • get_server_info — MySQL のバージョン、文字セット、照合順序を返します(読み取り専用)
複数データベースのサポート

すべてのツールで database パラメーターを使用できます。追加の設定なしで、同じセッション内から異なるデータベースにクエリを実行できます。


できないこと

以下の操作はセキュリティフィルターによって恒久的にブロックされており、いかなる状況でも回避できません。

カテゴリブロックされるコマンド
MySQL の設定SET GLOBAL、SET @@global.*、SET @@SESSION.sql_mode
ユーザー管理CREATE USER、DROP USER、ALTER USER、RENAME USER
権限管理GRANT、REVOKE
システムコマンドFLUSH、KILL、SHUTDOWN
レプリケーションRESET MASTER/REPLICA、START/STOP SLAVE/REPLICA、CHANGE MASTER
ファイルアクセスLOAD DATA INFILE、SELECT INTO OUTFILE/DUMPFILE
プラグインINSTALL PLUGIN、UNINSTALL PLUGIN

その他の制約:

  • 1 回の呼び出しで ; で区切った複数のステートメントは実行できません。代わりに execute_transaction を使用してください
  • drop_table と drop_database はデフォルトで無効になっており、ALLOW_DESTRUCTIVE_DDL=true が設定されていない場合はエラーを返します
  • クエリ結果の行数は MAX_ROWS に制限されます(デフォルト:1000)。大きなテーブルでは LIMIT 句を追加してください

インストール

要件: Node.js 20+

git clone https://github.com/turkeryildirim/mysql-mcp
cd mysql-mcp
npm install
npm run build

環境変数のサンプルファイルをコピーし、認証情報を入力します。

cp .env.example .env
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=mcp_user
MYSQL_PASSWORD=your_password

# Optional
MYSQL_DATABASE=default_db
MYSQL_POOL_SIZE=10
MAX_ROWS=1000
ALLOW_DESTRUCTIVE_DDL=false
専用 MySQL ユーザーの作成(推奨)

MCP サーバー用に、最小限の権限を持つ MySQL ユーザーを作成します。

CREATE USER 'mcp_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX
  ON *.* TO 'mcp_user'@'localhost';
FLUSH PRIVILEGES;

SUPER、FILE、RELOAD、GRANT OPTION は付与しないでください。


Claude Desktop との連携

Claude Desktop の設定ファイルを開きます。

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

mcpServers の下に次のブロックを追加します。

{
  "mcpServers": {
    "mysql": {
      "command": "node",
      "args": ["/absolute/path/to/mysql-mcp/dist/index.js"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "mcp_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "",
        "MAX_ROWS": "1000",
        "ALLOW_DESTRUCTIVE_DDL": "false"
      }
    }
  }
}

Claude Desktop を再起動します。ツールパネルに mysql サーバーが表示されます。


Claude CLI との連携

オプション 1:.mcp.json — プロジェクト単位(推奨)

プロジェクトのルートに .mcp.json ファイルを作成します。

{
  "mcpServers": {
    "mysql": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/mysql-mcp/dist/index.js"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "mcp_user",
        "MYSQL_PASSWORD": "your_password",
        "ALLOW_DESTRUCTIVE_DDL": "false"
      }
    }
  }
}

このディレクトリから claude を実行すると、サーバーが自動的に読み込まれます。

オプション 2:グローバル設定
claude mcp add mysql -- node /absolute/path/to/mysql-mcp/dist/index.js

環境変数を含めるには、次のようにします。

claude mcp add mysql \
  -e MYSQL_HOST=localhost \
  -e MYSQL_USER=mcp_user \
  -e MYSQL_PASSWORD=your_password \
  -- node /absolute/path/to/mysql-mcp/dist/index.js

設定を確認します。

claude mcp list
claude mcp get mysql

プロンプトの例

接続したら、自然言語でエージェントに指示できます。

Show me the structure of the users table in testdb
Fetch the last 10 orders from testdb.orders
Create a products table in testdb with id, name, price, and stock columns
Run the following two INSERTs as a single transaction: ...

開発

npm run dev        # Watch mode (rebuilds on change)
npm test           # Unit tests (no MySQL connection required)
npm run build      # Production build → dist/

コメント

MCP は初めてですか?

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

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