mcpField
@
@enemyrr/mcp-mysql-server

@enemyrr/mcp-mysql-server

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

@enemyrr/mcp-mysql-server について

@enemyrr/mcp-mysql-server は、標準化されたインターフェースを通じて AI モデルに MySQL データベース操作を提供する MCP サーバーです。モデルからクエリや変更を行いたいユーザー向けです。

主な機能

  1. 01クエリ、書き込み、スキーマ管理のツール
  2. 02データベーススキーマを参照する MCP リソース
  3. 03SQL 生成のための MCP プロンプト
  4. 04URL、ワークスペース、直接接続による接続方法
  5. 05クエリパラメータのプリペアドステートメント対応

活用シーン

  1. 01AI モデルによる MySQL テーブルのクエリ
  2. 02Cursor IDE からの MySQL データベースの操作
  3. 03テーブル構造、インデックス、外部キーの確認

MCP 対応

このプロジェクトは MCP サーバーであり、MySQL のクエリとスキーマ操作のツールに加え、リソースとプロンプトを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mysql-server-enemyrr": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

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

パッケージ
npm@smithery/cli

ツール

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

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

詳細

@enemyrr/mcp-mysql-server

smithery badge

MySQL データベース操作を提供する Model Context Protocol サーバーです。このサーバーにより、AI モデルは標準化されたインターフェースを通じて MySQL データベースを操作できます。

MCP-MySQL Server MCP server

Cursor IDE のインストールとセットアップ

Smithery 経由でインストールする

Smithery 経由で Claude Desktop に MySQL Database Server を自動的にインストールするには:

npx -y @smithery/cli install @enemyrr/mcp-mysql-server --client claude
手動でインストールする
  1. プロジェクトをクローンしてビルドします:
git clone https://github.com/enemyrr/mcp-mysql-server.git
cd mcp-mysql-server
npm install
npm run build
  1. Cursor IDE の設定でサーバーを追加します:
    • コマンドパレットを開きます(Cmd/Ctrl + Shift + P)
    • 「MCP: Add Server」を検索します
    • 各項目に入力します:
      • 名前:mysql
      • 種類:command
      • コマンド:node /absolute/path/to/mcp-mysql-server/build/index.js

注:/absolute/path/to/ を、プロジェクトをクローンしてビルドした実際のパスに置き換えてください。

データベースの設定

データベース接続は、次の 3 通りの方法で設定できます:

  1. .env のデータベース URL(推奨):
DATABASE_URL=mysql://user:password@host:3306/database
  1. .env の個別パラメーター:
DB_HOST=localhost
DB_USER=your_user
DB_PASSWORD=your_password
DB_DATABASE=your_database
  1. ツール経由の直接接続:
use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    url: "mysql://user:password@host:3306/database"
    // OR
    workspace: "/path/to/your/project" // Will use project's .env
    // OR
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

利用可能なツール

1. connect_db

URL、ワークスペースパス、または直接指定した認証情報を使用して MySQL データベースに接続します。

2. query

オプションのプリペアドステートメントパラメーターを指定して、SELECT クエリを実行します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?",
    params: [1]
  }
});
3. execute

オプションのプリペアドステートメントパラメーターを指定して、INSERT、UPDATE、または DELETE クエリを実行します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES (?, ?)",
    params: ["John Doe", "[email protected]"]
  }
});
4. list_tables

接続中のデータベース内のすべてのテーブルを一覧表示します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "list_tables"
});
5. describe_table

指定したテーブルの構造を取得します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});
6. create_table

指定したフィールドとインデックスを含む新しいテーブルを作成します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "create_table",
  arguments: {
    table: "users",
    fields: [
      {
        name: "id",
        type: "int",
        autoIncrement: true,
        primary: true
      },
      {
        name: "email",
        type: "varchar",
        length: 255,
        nullable: false
      }
    ],
    indexes: [
      {
        name: "email_idx",
        columns: ["email"],
        unique: true
      }
    ]
  }
});
7. add_column

既存のテーブルに新しいカラムを追加します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "add_column",
  arguments: {
    table: "users",
    field: {
      name: "phone",
      type: "varchar",
      length: 20,
      nullable: true
    }
  }
});
8. alter_column

既存のカラム(型、NULL 許容、デフォルト値、または名前)を変更します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "alter_column",
  arguments: {
    table: "users",
    column: "phone",
    type: "varchar",
    length: 50,
    nullable: false,
    newName: "phone_number" // optional: rename column
  }
});
9. drop_column

テーブルからカラムを削除します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "drop_column",
  arguments: {
    table: "users",
    column: "phone_number"
  }
});
10. drop_table

テーブルを削除します(確認が必要です)。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "drop_table",
  arguments: {
    table: "old_table",
    confirm: true
  }
});
11. truncate_table

テーブルのすべての行を削除します(確認が必要です)。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "truncate_table",
  arguments: {
    table: "logs",
    confirm: true
  }
});
12. list_databases

サーバー上でアクセス可能なすべてのデータベースを一覧表示します。

13. get_indexes

テーブルのすべてのインデックスを一覧表示します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "get_indexes",
  arguments: {
    table: "users"
  }
});
14. get_foreign_keys

テーブルのすべての外部キー関係を一覧表示します。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "get_foreign_keys",
  arguments: {
    table: "orders"
  }
});

MCP リソース

データベーススキーマをリソースとして参照できます:

URI説明
mysql://schemaデータベースの概要(テーブル数、サイズ)
mysql://tablesメタデータを含むすべてのテーブルの一覧
mysql://tables/{name}テーブルの詳細(カラム、インデックス、FK)
mysql://tables/{name}/columnsカラム定義
mysql://tables/{name}/indexesインデックス定義
mysql://tables/{name}/sampleテーブルから取得したサンプル 5 行

MCP プロンプト

一般的な操作向けの事前作成済みプロンプト:

プロンプト説明
generate-selectテーブル用の SELECT クエリを作成
generate-insertINSERT テンプレートを生成
generate-updateUPDATE テンプレートを生成
explain-schema自然言語によるスキーマの説明
suggest-indexesテーブル向けのインデックスを推奨

機能

  • 14 個のデータベースツール:クエリ、スキーマ管理などに対応
  • MCP リソース:データベーススキーマを参照
  • MCP プロンプト:SQL クエリを生成
  • 複数の接続方法(URL、ワークスペース、直接接続)
  • 自動クリーンアップによる安全な接続処理
  • クエリパラメーター用のプリペアドステートメントをサポート
  • 包括的なエラー処理と検証
  • TypeScript をサポート

セキュリティ

  • SQL インジェクションを防ぐためにプリペアドステートメントを使用
  • 環境変数を通じた安全なパスワード管理をサポート
  • 実行前にクエリを検証
  • 処理完了時に接続を自動的に閉じます

エラー処理

サーバーは、以下のエラーに関する詳細なメッセージを提供します。

  • 接続の失敗
  • クエリまたはパラメーターが無効
  • 設定の不足
  • データベースエラー
  • スキーマ検証エラー

貢献

貢献を歓迎します!お気軽に https://github.com/enemyrr/mcp-mysql-server へプルリクエストを送信してください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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