MySQL Database Access MCP Server について
MySQL Database Access MCP Serverは、MCPクライアントにMySQLデータベースへの読み取り専用アクセスを提供します。スキーマ確認やデータ検索に使え、クエリ検証、タイムアウト、行数制限で実行を制御します。
主な機能
- 01アクセス可能なデータベースの一覧
- 02データベース内のテーブル一覧
- 03テーブルスキーマの確認
- 04読み取り専用SQLクエリの実行
- 05クエリ検証とリソース制限
活用シーン
- 01MySQLインスタンスのデータベースとテーブルの把握
- 02テーブルのフィールドと構造の確認
- 03SELECTなど読み取り専用クエリの実行
MCP 対応
MCPサーバーとして、データベースとテーブルの一覧表示、テーブルスキーマの確認、読み取り専用SQLクエリの実行ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MySQL データベースアクセス MCP サーバー
この MCP サーバーは、MySQL データベースへの読み取り専用アクセスを提供します。次の操作ができます。
- 利用可能なデータベースを一覧表示する
- データベース内のテーブルを一覧表示する
- テーブルスキーマを表示する
- 読み取り専用の SQL クエリを実行する
セキュリティ機能
- 読み取り専用アクセス:SELECT、SHOW、DESCRIBE、EXPLAIN ステートメントのみを許可します
- クエリの検証:SQL インジェクションを防ぎ、データの変更を試みる操作をすべてブロックします
- クエリのタイムアウト:長時間実行されるクエリによるリソースの消費を防ぎます
- 行数制限:過剰なデータの返却を防ぎます
インストール
1. 次のいずれかの方法でインストールします。
NPM からインストール
# Install globally
npm install -g mysql-mcp-server
# Or install locally in your project
npm install mysql-mcp-server
ソースからビルド
# Clone the repository
git clone https://github.com/allizwellai/mysql-mcp-server.git
cd mysql-mcp-server
# Install dependencies and build
npm install
npm run build
2. 環境変数を設定する
サーバーには、次の環境変数が必要です。
MYSQL_HOST:データベースサーバーのホスト名MYSQL_PORT:データベースサーバーのポート(デフォルト:3306)MYSQL_USER:データベースのユーザー名MYSQL_PASSWORD:データベースのパスワード(任意ですが、安全な接続のために設定することを推奨します)MYSQL_DATABASE:デフォルトのデータベース名(任意)
3. MCP の設定に追加する
次の設定を MCP の設定ファイルに追加します。
npm でインストールした場合(オプション 1):
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-mysql-user",
"MYSQL_PASSWORD": "your-mysql-password",
"MYSQL_DATABASE": "your-default-database"
},
"disabled": false,
"autoApprove": []
}
}
}
ソースからビルドした場合(オプション 2):
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/path/to/mysql-mcp-server/build/index.js"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-mysql-user",
"MYSQL_PASSWORD": "your-mysql-password",
"MYSQL_DATABASE": "your-default-database"
},
"disabled": false,
"autoApprove": []
}
}
}
利用可能なツール
list_databases
MySQL サーバー上でアクセス可能なすべてのデータベースを一覧表示します。
パラメーター:なし
例:
{
"server_name": "mysql",
"tool_name": "list_databases",
"arguments": {}
}
list_tables
指定したデータベース内のすべてのテーブルを一覧表示します。
パラメーター:
database(任意):データベース名(指定しない場合はデフォルトが使用されます)
例:
{
"server_name": "mysql",
"tool_name": "list_tables",
"arguments": {
"database": "my_database"
}
}
describe_table
指定したテーブルのスキーマを表示します。
パラメーター:
database(任意):データベース名(指定しない場合はデフォルトが使用されます)table(必須):テーブル名
例:
{
"server_name": "mysql",
"tool_name": "describe_table",
"arguments": {
"database": "my_database",
"table": "my_table"
}
}
execute_query
読み取り専用の SQL クエリを実行します。
パラメーター:
query(必須):SQL クエリ(SELECT、SHOW、DESCRIBE、EXPLAIN ステートメントのみを許可します)database(任意):データベース名(指定しない場合はデフォルトが使用されます)
例:
{
"server_name": "mysql",
"tool_name": "execute_query",
"arguments": {
"database": "my_database",
"query": "SELECT * FROM my_table LIMIT 10"
}
}
テスト
サーバーには、お使いの MySQL 環境で機能を確認するためのテストスクリプトが含まれています。
1. テストデータベースをセットアップする
このスクリプトは、テスト用のデータベース、テーブル、サンプルデータを作成します。
# Set your MySQL credentials as environment variables
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
# Run the setup script
npm run test:setup
2. MCP ツールをテストする
このスクリプトは、テスト用データベースに対して各 MCP ツールをテストします。
# Set your MySQL credentials as environment variables
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=mcp_test_db
# Run the tools test script
npm run test:tools
3. すべてのテストを実行する
セットアップとツールのテストを両方実行するには、次のコマンドを実行します。
# Set your MySQL credentials as environment variables
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
# Run all tests
npm test
トラブルシューティング
問題が発生した場合は、次の点を確認してください。
- サーバーログにエラーメッセージがないか確認します
- MySQL の認証情報と接続の詳細を確認します
- MySQL ユーザーに適切な権限があることを確認します
- クエリが読み取り専用で、正しく記述されていることを確認します
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。