mcpField
M
mcp_mysql_server

mcp_mysql_server

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

mcp_mysql_server について

mcp_mysql_server_pro は、ロールベースの権限管理により MySQL データベースを安全に操作する MCP サーバーです。基本的な CRUD に加え、データベースの異常分析機能を備えています。STDIO、SSE、Streamable HTTP の各トランスポートに対応し、カスタムツールで拡張できます。

主な機能

  1. 01STDIO、SSE、Streamable HTTP トランスポートに対応
  2. 02OAuth2.0 認証のサポート
  3. 03readonly、writer、admin の3つの権限ロール
  4. 04SQL 実行計画の分析と最適化の提案
  5. 05データベースの健全性とテーブルロックの分析
  6. 06テーブルコメントに基づくテーブル検索

活用シーン

  1. 01AI アシスタントに権限管理された MySQL アクセスを提供
  2. 02低速 SQL の実行計画とインデックスの分析
  3. 03デッドロックやロック競合の調査

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mysql_mcp_server_pro": {
"command": "uvx",
"args": [
"mysql_mcp_server_pro"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<MYSQL_DATABASE>",
"MYSQL_ROLE": "<MYSQL_ROLE>"
}
}
}
}
起動コマンドuvx mysql_mcp_server_pro
設定が必要な環境変数
MYSQL_HOST
MYSQL_PORT
MYSQL_USER
MYSQL_PASSWORDシークレット
MYSQL_DATABASE
MYSQL_ROLE

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

パッケージ
pypimysql_mcp_server_pro

ツール

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

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

詳細

简体中文 English MseeP.ai Security Assessment Badge MCPHub

mcp_mysql_server_pro

はじめに

mcp_mysql_server_pro は、MySQL の CRUD 操作だけでなく、データベースの異常分析機能も備えており、開発者がカスタムツールで簡単に拡張できます。

  • すべての Model Context Protocol(MCP)の転送モード(STDIO、SSE、Streamable Http)をサポート
  • OAuth2.0 をサポート
  • 「;」で区切った複数の SQL 実行をサポート
  • テーブルコメントに基づくデータベースのテーブル名とフィールドの検索をサポート
  • SQL 実行計画の分析をサポート
  • 中国語のフィールド名のピンイン変換をサポート
  • テーブルロック分析をサポート
  • データベースのヘルス状態分析をサポート
  • readonly、writer、admin の3つのロールによる権限制御をサポート
    "readonly": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN"],  # 読み取り専用権限
    "writer": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE"],  # 読み書き権限
    "admin": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", 
             "CREATE", "ALTER", "DROP", "TRUNCATE"]  # 管理者権限
    
  • プロンプトテンプレートの呼び出しをサポート

ツール一覧

ツール名説明
execute_sql権限設定に基づいて、["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", "CREATE", "ALTER", "DROP", "TRUNCATE"] コマンドを実行できる SQL 実行ツール
get_chinese_initials中国語のフィールド名をピンインの頭文字に変換します
get_db_health_runningMySQL の健全性ステータス(接続ステータス、トランザクションステータス、実行ステータス、ロックステータス)を分析します
get_table_descテーブル名に基づいてデータベース内のテーブル構造を検索します。複数テーブルのクエリに対応しています
get_table_indexテーブル名に基づいてデータベース内のテーブルインデックスを検索します。複数テーブルのクエリに対応しています
get_table_lock現在の MySQL サーバーに行レベルまたはテーブルレベルのロックがあるかどうかを確認します
get_table_nameテーブルのコメントと説明に基づいて、データベース内のテーブル名を検索します
get_db_health_index_usage現在接続中の mysql データベースのインデックス使用状況を取得します。冗長なインデックス、パフォーマンスの低いインデックス、およびクエリ時間が 30 秒を超える未使用インデックスの上位 5 件を含みます
optimize_sqlMySQL の実行計画、テーブル構造情報、テーブルデータ量、テーブルインデックスに基づいて、専門的な最適化案を提供する SQL パフォーマンス最適化ツールです。
use_prompt_queryTableData組み込みのプロンプトを使用して、モデルに mcp のツールチェーン呼び出しを構築させます(一般的に使用される固定ツールではありません。有効にするにはコードの変更が必要です。詳細はこのクラスを参照してください)

プロンプト一覧

プロンプト名説明
analyzing-mysql-promptMySQL 関連の問題を分析するためのプロンプトです
query-table-data-promptツールを使ってテーブルデータをクエリするためのプロンプトです。説明が空の場合、MySQL データベースクエリアシスタントとして初期化されます

使用方法

インストールと設定
  1. パッケージをインストール
pip install mysql_mcp_server_pro
  1. 環境変数を設定 次の内容で .env ファイルを作成します。
# MySQL Database Configuration
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
# Optional, default is 'readonly'. Available values: readonly, writer, admin
MYSQL_ROLE=readonly
  1. サービスを起動
# SSE mode
mysql_mcp_server_pro --mode sse --envfile /path/to/.env

## Streamable Http mode (default)
mysql_mcp_server_pro --envfile /path/to/.env

# Streamable Http  oauth Authentication
mysql_mcp_server_pro --oauth true

  1. MCP クライアント

「uv を使用してサービスを起動する」を参照してください。 ^_^

注意:

  • .env ファイルはコマンドを実行するディレクトリに配置するか、--envfile パラメーターを使用してパスを指定してください。
  • これらの変数は、環境に直接設定することもできます。
  • データベースの設定が正しく、接続可能であることを確認してください。
uvx で実行する場合のクライアント設定
  • この方法は、ソースコードをダウンロードする必要がなく、MCP 対応クライアントで直接使用できます。たとえば、Tongyi Qianwen プラグイン、trae エディターなどです。
{
	"mcpServers": {
		"mysql": {
			"command": "uvx",
			"args": [
				"--from",
				"mysql_mcp_server_pro",
				"mysql_mcp_server_pro",
				"--mode",
				"stdio"
			],
			"env": {
				"MYSQL_HOST": "192.168.x.xxx",
				"MYSQL_PORT": "3306",
				"MYSQL_USER": "root",
				"MYSQL_PASSWORD": "root",
				"MYSQL_DATABASE": "a_llm",
				"MYSQL_ROLE": "admin"
			}
		}
	}
}
Streamable Http モードでのローカル開発
  • uv を使用してサービスを起動

cursor、cline などの MCP クライアントツールに、次の内容を追加します。

mcp json は次のとおりです。

{
  "mcpServers": {
    "mysql_mcp_server_pro": {
      "name": "mysql_mcp_server_pro",
      "type": "streamableHttp",
      "description": "",
      "isActive": true,
      "url": "http://localhost:3000/mcp/"
    }
  }
}

.env ファイルの内容を変更し、ご利用のデータベース接続情報に更新します。

# MySQL Database Configuration
MYSQL_HOST=192.168.xxx.xxx
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_DATABASE=a_llm
MYSQL_ROLE=admin

起動コマンド:

# Download dependencies
uv sync

# Start
uv run -m mysql_mcp_server_pro.server

# Custom env file location
uv run -m mysql_mcp_server_pro.server --envfile /path/to/.env

# oauth Authentication
uv run -m mysql_mcp_server_pro.server --oauth true
SSE モードでのローカル開発
  • uv を使用してサービスを起動

cursor、cline などの MCP クライアントツールに、次の内容を追加します。

mcp json は次のとおりです。

{
  "mcpServers": {
    "mysql_mcp_server_pro": {
      "name": "mysql_mcp_server_pro",
      "description": "",
      "isActive": true,
      "url": "http://localhost:9000/sse"
    }
  }
}

.env ファイルの内容を変更し、ご利用のデータベース接続情報に更新します。

# MySQL Database Configuration
MYSQL_HOST=192.168.xxx.xxx
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_DATABASE=a_llm
MYSQL_ROLE=admin

起動コマンド:

# Download dependencies
uv sync

# Start
uv run -m mysql_mcp_server_pro.server --mode sse

# Custom env file location
uv run -m mysql_mcp_server_pro.server --mode sse --envfile /path/to/.env
STDIO モードでのローカル開発

cursor、cline などの MCP クライアントツールに、次の内容を追加します。

mcp json は次のとおりです。

{
  "mcpServers": {
      "operateMysql": {
        "isActive": true,
        "name": "operateMysql",
        "command": "uv",
        "args": [
          "--directory",
          "/Volumes/mysql_mcp_server_pro/src/mysql_mcp_server_pro",    # Replace this with your project path
          "run",
          "-m",
          "mysql_mcp_server_pro.server",
          "--mode",
          "stdio"
        ],
        "env": {
          "MYSQL_HOST": "localhost",
          "MYSQL_PORT": "3306",
          "MYSQL_USER": "root", 
          "MYSQL_PASSWORD": "123456",
          "MYSQL_DATABASE": "a_llm",
          "MYSQL_ROLE": "admin"
       }
    }
  }
} 

カスタムツールの拡張

  1. handles パッケージに新しいツールクラスを追加し、BaseHandler を継承して、get_tool_description メソッドと run_tool メソッドを実装します。

  2. init.py で新しいツールをインポートし、サーバーで使用できるようにします。

OAuth2.0 認証

  1. 認証サービスを起動します。デフォルトでは、組み込みの OAuth 2.0 パスワードモード認証を使用します。認証サービスのアドレスは、env ファイルで変更できます。
uv run -m mysql_mcp_server_pro.server --oauth true
  1. http://localhost:3000/login で認証サービスにアクセスします。デフォルトのユーザー名とパスワードは env ファイルで設定されています。 image

  2. トークンをコピーして、リクエストヘッダーに追加します。例: image

{
  "mcpServers": {
    "mysql_mcp_server_pro": {
      "name": "mysql_mcp_server_pro",
      "type": "streamableHttp",
      "description": "",
      "isActive": true,
      "url": "http://localhost:3000/mcp/",
      "headers": {
        "authorization": "bearer TOKEN_VALUE"
      }
    }
  }
}

例

  1. 新しいテーブルを作成してデータを挿入します。プロンプトの形式は次のとおりです。
# Task
   Create an organizational structure table with the following structure: department name, department number, parent department, is valid.
# Requirements
 - Table name: department
 - Common fields need indexes
 - Each field needs comments, table needs comment
 - Generate 5 real data records after creation

image image

  1. テーブルコメントに基づいてデータをクエリします。プロンプトは次のとおりです。
Search for data with Department name 'Executive Office' in Department organizational structure table

image

  1. 遅い SQL を分析します。プロンプトは次のとおりです。
select * from t_jcsjzx_hjkq_cd_xsz_sk xsz
left join t_jcsjzx_hjkq_jcd jcd on jcd.cddm = xsz.cddm 
Based on current index situation, review execution plan and provide optimization suggestions in markdown format, including table index status, execution details, and optimization recommendations
  1. SQL のデッドロック問題を分析します。プロンプトは次のとおりです。
update t_admin_rms_zzjg set sfyx = '0' where xh = '1' is stuck, please analyze the cause

image

  1. ヘルスステータスを分析します。プロンプトは次のとおりです。
Check the current health status of MySQL

image

コメント

MCP は初めてですか?

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

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