MySQL MCP Server について
MySQL MCP Serverは、MCPクライアントにMySQLとPostgreSQLのスキーマ確認およびクエリへの読み取り専用アクセスを提供します。メタデータ、スキーマの関係、クエリプラン、スキーマ図を扱うツールを備えています。
主な機能
- 01スキーマ、インデックス、制約の確認
- 02スキーマ比較と関係の検出
- 03読み取り専用SQLクエリの実行
- 04パラメーター付きステートメントの準備
- 05クエリ実行計画の確認
- 06JSON、DOT、Mermaid形式でのスキーマ図出力
活用シーン
- 01クエリ前のデータベース構造の確認
- 02テーブル間の関係の調査
- 03読み取り専用クエリ計画の確認
- 04スキーマ図の生成
MCP 対応
MCPクライアントに、MySQLとPostgreSQLの読み取り専用データベース確認・クエリツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MySQL & PostgreSQL MCP サーバー
概要
このプロジェクトは、MySQL および PostgreSQL データベースと連携するための読み取り専用 Model Context Protocol(MCP)サーバーを提供します。MCP に対応したクライアントを使用して、定義済みのツールを通じてデータベーススキーマを調査し、メタデータを取得し、読み取り専用 SQL クエリを実行できます。このサーバーは拡張性を考慮して構築されており、安全性のために読み取り専用操作を強制します。
機能と実装済みツール
このサーバーは、データベースとの連携に使用する複数のツールを MCP 経由で公開します。すべてのツールは読み取り専用操作向けに設計されています。
スキーマとメタデータのツール
get_table_columns:指定したテーブルの列定義を取得します。get_schema:詳細レベルに応じて、テーブル、列、インデックス、制約を含む詳細なスキーマ情報を取得します。get_indexes:指定したテーブルまたはすべてのテーブルのインデックス情報を取得します。get_constraints:指定したテーブルまたはすべてのテーブルの制約情報(主キー、外部キー、一意制約、チェック制約)を取得します。compare_schemas:2つの異なるデータベーススキーマの構造(テーブルと列)を比較します。explain_schema:データベーススキーマのテキスト形式または構造化形式(JSON)の説明を生成します。detect_schema_changes:現在のスキーマのスナップショットを返します。(注:特定の過去の時点との比較は行いません)。find_relationships:明示的な外部キーの関係を検出します。必要に応じて、命名規則に基づく暗黙的な関係の検出も試みます(使用には注意してください)。find_navigation_paths:明示的な外部キーの関係を使用して、2つのテーブル間のパスを検出します(BFS アルゴリズム)。
クエリ実行ツール
execute_query:指定した読み取り専用 SQL クエリ(SELECT、SHOW、DESCRIBE、EXPLAIN)を実行します。execute_batch:複数の読み取り専用 SQL クエリを順番に実行します。最初のエラーで停止することも、すべてのクエリの実行を試みることもできます。prepare_statement:パラメーターを指定して、読み取り専用 SQL ステートメントを準備・実行します。explain_query:指定した SQL ステートメントに対してEXPLAINを実行し、クエリ実行計画を表示します(TEXT または JSON 形式)。get_query_history:プレースホルダーツールです。サーバー側のクエリ履歴は現在実装されていません。
可視化ツール
visualize_schema:ER 図の作成に適した、スキーマの表現(テーブル、列、関係)を JSON、DOT(Graphviz)、または Mermaid 構文で生成します。
パフォーマンスツール
get_performance_metrics:MySQL の選択したグローバルステータス変数(例:稼働時間、スレッド数、クエリ数)を取得します。クエリ固有の履歴は提供しません。
セットアップとインストール
-
前提条件:
- Node.js
- npm
- MySQL または PostgreSQL データベースへのアクセス
-
リポジトリをクローンする:
git clone https://github.com/kaulvimal/mysql-mcp cd mysql-mcp -
依存関係をインストールする:
npm install -
プロジェクトをビルドする:
npm run buildこれにより、コンパイル済みコードを含む
buildディレクトリが作成されます。 -
サーバーを使用する
-
プロジェクトのルート、または使いやすい場所にシェルスクリプト(例:
mysql-mcp.sh)を作成します。#!/bin/bash # 環境変数を設定(.envを使用しない場合、または上書きする場合) export MYSQL_HOST="" export MYSQL_USER="" export MYSQL_PASSWORD="" export MYSQL_PORT="" export PG_HOST="" export PG_USER="" export PG_PASSWORD="" export PG_PORT="" export PG_DATABASE="" node $(dirname "$0")/build/index.js -
スクリプトを実行可能にします:
chmod +x mysql-mcp.sh -
統合例(Cursor)
このサーバーを Cursor と統合するには、サーバーの実行スクリプトを起動するようにクライアントを設定します。
{ "mcpServers": { "mysql-mcp": { "command": "/path/to/your/mysql-mcp.sh" // スクリプトの実際のパスに置き換えてください } } }
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。