MySQL MCP Server
MySQL Model Context Protocol(MCP)サーバーは、ローカル環境のMySQLデータベースに接続し、大規模言語モデル(LLM)がSQLクエリを実行できるようにするツールです。
要件
Node.js: 20.0.0以上
MySQL: 5.7以上のMySQLまたはMariaDBサーバー
機能
MySQLクエリの実行: LLMからSQLクエリを直接実行
データベース情報の取得: データベース一覧、テーブル一覧、テーブル構造の確認
MCP準拠: Model Context Protocol に対��し、LLMと統合可能
stdio通信: 標準入出力を使用してLLMと通信、ポートバインドなし
接続プロファイル管理: 複数の接続設定をプロファイル名で管理し切り替え
接続情報の保存: データベース接続情報をローカルに保存し再利用
インストールと使用方法
NPXでの一時実行
オプション
オプション | 説明 | デフォルト値 |
| MySQLホスト | localhost |
| MySQLポート | 13306 |
| MySQLユーザー | root |
| MySQLパスワード | (空文字) |
| デフォルトデータベース | (オプション) |
| 設定ファイルパス | (オプション) |
| サーバー起動時に自動的にデータベースに接続 | false |
| MCPサーバーポート(stdioモードでは使用されません) | 3000 |
| MCPサーバーホスト(stdioモードでは使用されません) | localhost |
| クエリタイムアウト(ミリ秒) | 30000 |
| 最大結果行数 | 1000 |
| デバッグモード | false |
接続情報の保存と再利用
MySQL MCP Serverは、正常に接続したデータベースの情報を名前付きプロファイルとしてローカルに保存します。これにより、次回の起動時に接続情報を名前で指定して再利用できます。保存された接続情報は、ユーザーのホームディレクトリにある .mysql-mcp-connections.json
ファイルに保存されます。
各接続プロファイルには以下が含まれます:
プロファイル名
ホスト名
ポート番号
ユーザー名
パスワード
データベース名(設定されている場合)
複数のデータベース接続をプロファイル名で管理し、簡単に切り替えることが可能です。
設定ファイルの使用
設定ファイル(JSON形式)を使用して接続情報を設定することもできます:
設定ファイルを使用する場合:
通信方式
MySQL MCP ServerはMCP (Model Context Protocol) に準拠した「stdio」モードで動作します。これにより特定のポートにバインドせず、標準入出力を介して通信します。これには次のような利点があります:
ポート競合の回避: 特定のポートを使用しないため、ポート競合の問題が発生しません
セキュリティ向上: ネットワーク通信を使用しないため、ネットワークレベルの攻撃リスクが軽減
簡素なプロセス間通信: LLMとの通信がシンプル化
注意点
stdioモードでは、JSON形式のメッセージをやり取りします
一行に一つのJSONメッセージを送信する必要があります
エラー情報と接続ログは標準エラー(stderr)に出力されます
提供されるMCPツール
データベース接続管理
ツール名 | 説明 | 必須パラメータ |
connect_database | データベースに接続します | host, port, user |
connect_by_profile | 保存済みプロファイル名で接続します | profileName |
disconnect_database | 現在のデータベース接続を切断します | なし |
get_connection_status | データベース接続の状態を取得します | なし |
接続プロファイル管理
ツール名 | 説明 | 必須パラメータ |
list_profiles | 保存済みのプロファイル一覧を取得します | なし |
get_profile | プロファイルの詳細を取得します | profileName |
add_profile | 新しいプロファイルを追加します | profileName, host, port, user |
remove_profile | プロファイルを削除します | profileName |
SQLクエリ操作
ツール名 | 説明 | 必須パラメータ |
execute_query | MySQLクエリを実行します | query: SQL文 |
get_databases | 利用可能なデータベースの一覧を取得します | なし |
get_tables | 指定したデータベース内のテーブル一覧を取得します | database (オプション) |
describe_table | 指定したテーブルの構造を取得します | table |
接続管理機能
MySQL MCP Serverでは、サーバーの起動とデータベース接続を分離することができます。このアプローチにより以下のメリットがあります:
接続情報なしでの起動: サーバーはデータベース接続情報がなくても起動可能
複数データベースへの接続: サーバー起動後に異なるデータベースへ接続の切り替えが可能
シンプルなインストール:
npx -y https://github.com/yuki777/mysql-mcp-server
だけで実行可能
接続管理の使用方法
自動接続なしでサーバーを起動:
npx -y https://github.com/yuki777/mysql-mcp-server接続ツールを使用してデータベースに接続(プロファイル名を指定して保存):
{ "type": "tool_call", "request_id": "req_1", "tool": "connect_database", "arguments": { "host": "localhost", "port": 3306, "user": "root", "password": "your_password", "database": "your_db", "profileName": "my-db" } }プロファイル一覧の取得:
{ "type": "tool_call", "request_id": "req_2", "tool": "list_profiles", "arguments": {} }プロファイル名で接続:
{ "type": "tool_call", "request_id": "req_3", "tool": "connect_by_profile", "arguments": { "profileName": "my-db" } }新しいプロファイルの追加(接続は行わない):
{ "type": "tool_call", "request_id": "req_4", "tool": "add_profile", "arguments": { "profileName": "production-db", "host": "prod.example.com", "port": 3306, "user": "prod_user", "password": "prod_password", "database": "production" } }接続状態の確認:
{ "type": "tool_call", "request_id": "req_5", "tool": "get_connection_status", "arguments": {} }接続の切断:
{ "type": "tool_call", "request_id": "req_6", "tool": "disconnect_database", "arguments": {} }
テスト用スクリプト
リポジトリには test-connection-management.js
というテストスクリプトが含まれています。このスクリプトを使用して、接続管理機能をテストできます:
開発者向け情報
開発環境のセットアップ
ビルド
ライセンス
ISC
貢献
バグレポートや機能リクエスト、プルリクエストを歓迎します。
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
A tool that connects to local MySQL databases and enables large language models (LLMs) to execute SQL queries through the Model Context Protocol (MCP).
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol (MCP) server that enables AI assistants to interact with MySQL databases by executing SQL queries and checking database connectivity.Last updated -MIT License
YugabyteDB MCP Serverofficial
-securityAlicense-qualityAn MCP server implementation that allows Large Language Models to directly interact with YugabyteDB databases, supporting table listing and read-only SQL queries.Last updated -8Apache 2.0- -securityFlicense-qualityA Model Context Protocol (MCP) server that converts natural language queries into SQL statements, allowing users to query MySQL databases using conversational language instead of writing SQL code.Last updated -3
- -securityFlicense-qualityAn MCP server that enables interaction with MySQL databases through the Model Context Protocol, allowing execution of SQL queries and database table listing operations from Cline AI.Last updated -