MySQL MCP Server について
MySQL MCP Serverは、エージェント経由でMySQLを操作したい開発者向けのデータベース接続手段です。クエリ結果をJSONで返し、読み書き操作とトランザクションログに対応します。
主な機能
- 01SELECTクエリの実行
- 02データベーステーブルの作成
- 03データの挿入・更新・削除
- 04クエリ結果のJSON出力
- 05一意ID付きトランザクションログ
活用シーン
- 01エージェント経由でMySQLデータを検索
- 02データベーステーブルの作成と管理
- 03MySQLレコードの書き込みや変更
- 04データベース操作ログの監査
MCP 対応
MCPサーバーは、SQLクエリ、テーブル作成、データの挿入・更新・削除など、MySQL操作のツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MySQL MCP サーバー
これは、MySQL データベースへのアクセスを提供する Model Context Protocol(MCP)サーバーです。エージェントは MySQL データベースに対して SQL クエリを実行できます。
機能
- MySQL データベースに対して SQL クエリを実行します:
- データの読み取り(SELECT 文)
- テーブルの作成(CREATE TABLE 文)
- データの挿入(INSERT INTO 文)
- データの更新(UPDATE 文)
- データの削除(DELETE FROM 文)
- クエリ結果を JSON 形式で返します
- データベース接続設定を構成できます
- 一意の ID を使用してトランザクションをログに記録します
前提条件
- Node.js(v14 以降)
- MySQL サーバー
- MCP SDK
インストール
- このリポジトリをクローンまたはダウンロードします
- 依存関係をインストールします:
cd mysql-mcp-server
npm install
- サーバーをビルドします:
npm run build
設定
MySQL MCP サーバーでは、以下の環境変数を使用して設定します:
MYSQL_HOST:MySQL サーバーのホスト名(デフォルト:'localhost')MYSQL_PORT:MySQL サーバーのポート(デフォルト:3306)MYSQL_USER:MySQL のユーザー名(デフォルト:'mcp101')MYSQL_PASSWORD:MySQL のパスワード(デフォルト:'123qwe')MYSQL_DATABASE:MySQL のデータベース名(デフォルト:'mcpdb')
データベースのセットアップ
- MySQL データベースを作成します:
CREATE DATABASE mcpdb;
- データベースへのアクセス権を持つ MySQL ユーザーを作成します:
CREATE USER 'mcp101'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON mcpdb.* TO 'mcp101'@'localhost';
FLUSH PRIVILEGES;
- サンプルデータを含むテストテーブルを作成します:
USE mcpdb;
CREATE TABLE test_users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO test_users (name, email) VALUES
('John Doe', '[email protected]'),
('Jane Smith', '[email protected]'),
('Bob Johnson', '[email protected]');
MCP の設定
MCP 設定ファイルに MySQL MCP サーバーを追加します:
VSCode(Claude Extension)
ファイル:~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
MySQL の設定に合わせて args を変更してください
{
"mcpServers": {
"mysql-mcp-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/mysql-mcp-server/build/index.js"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "mcp101",
"MYSQL_PASSWORD": "123qwe",
"MYSQL_DATABASE": "mcpdb"
},
"transportType": "stdio"
}
}
}
Claude Desktop App
ファイル:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mysql-mcp-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/mysql-mcp-server/build/index.js"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "mcp101",
"MYSQL_PASSWORD": "123qwe",
"MYSQL_DATABASE": "mcpdb"
},
"transportType": "stdio"
}
}
}
使い方
設定が完了すると、Claude との会話で MySQL MCP サーバーを使用できます。たとえば、次のように質問できます:
「test_users テーブルにあるすべてのユーザーを表示してもらえますか?」
Claude は run_sql_query ツールを使用して、次のクエリを実行します:
SELECT * FROM test_users
利用可能なツール
run_sql_query
MySQL データベースに対して読み取り専用の SQL クエリ(SELECT 文のみ)を実行します。
パラメーター:
query:実行する SQL SELECT クエリ。
例:
{
"query": "SELECT * FROM test_users"
}
create_table
MySQL データベースに新しいテーブルを作成します。
パラメーター:
query:実行する SQL CREATE TABLE クエリ。
例:
{
"query": "CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2))"
}
insert_data
MySQL データベースのテーブルにデータを挿入します。
パラメーター:
query:実行する SQL INSERT INTO クエリ。
例:
{
"query": "INSERT INTO products (name, price) VALUES ('Laptop', 999.99), ('Smartphone', 499.99)"
}
update_data
MySQL データベースのテーブルのデータを更新します。
パラメーター:
query:実行する SQL UPDATE クエリ。
例:
{
"query": "UPDATE products SET price = 899.99 WHERE name = 'Laptop'"
}
delete_data
MySQL データベースのテーブルからデータを削除します。
パラメーター:
query:実行する SQL DELETE FROM クエリ。
例:
{
"query": "DELETE FROM products WHERE name = 'Smartphone'"
}
セキュリティに関する考慮事項
- MCP サーバーには、適切な権限を持つ専用の MySQL ユーザーを使用してください
- データのクエリのみが必要な場合は、読み取り専用権限の使用を検討してください
- データベースの認証情報などの機密情報は安全に保管してください
- 監査のため、すべての操作を一意のトランザクション ID とともにログに記録します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。