Skip to main content
Glama
chenkumi

easy-mysql-mcp

by chenkumi

easy-mysql-mcp

AIアシスタントが安全で構造化されたツールインターフェースを通じてMySQLデータベースを調査・クエリできるようにする、軽量な Model Context Protocol (MCP) サーバーです。

このプロジェクトはNode.js、TypeScript、公式のMCP SDK、および mysql2/promise を使用しています。stdio経由で実行されるため、Claude DesktopなどのMCPクライアントから直接使用できます。

機能

  • mysql2/promise によるMySQL接続プーリング

  • データ取得用の読み取り専用クエリツール

  • データ変更ステートメント用の実行ツール

  • テーブル、ビュー、インデックス、トリガーのスキーマ検出ツール

  • EXPLAIN を使用したクエリプランの調査

  • 現在のユーザーと権限の調査

  • MCP以外のログがstdioプロトコルを汚染しないようにするstdout保護

要件

  • Node.js 18以降

  • npm

  • 到達可能なMySQL互換データベース

インストール

npx を使用してサーバーを直接実行します:

npx -y easy-mysql-mcp

リポジトリをクローンした後のローカル開発用:

cd easy-mysql-mcp
npm install
npm run build

設定

環境変数を使用してサーバーを設定します。MCPクライアントの設定を通じて提供するか、ローカルの .env ファイルを作成して設定できます。

変数

必須

デフォルト

説明

MYSQL_HOST

はい

-

MySQLホスト名またはIPアドレス

MYSQL_PORT

いいえ

3306

MySQLポート

MYSQL_USER

はい

-

MySQLユーザー名

MYSQL_PASSWORD

はい

-

MySQLパスワード

MYSQL_DATABASE

はい

-

デフォルトのデータベース/スキーマ

MYSQL_CONNECTION_LIMIT

いいえ

10

アクティブなプール接続の最大数

MYSQL_MAX_IDLE

いいえ

10

アイドル状態のプール接続の最大数

MYSQL_IDLE_TIMEOUT

いいえ

60000

アイドル接続のタイムアウト(ミリ秒)

MYSQL_QUEUE_LIMIT

いいえ

0

キューに入れられる接続リクエストの最大数(0 は無制限)

MYSQL_WAIT_FOR_CONNECTIONS

いいえ

true

すべての接続がビジー状態のときにプールが待機するかどうか

MYSQL_ENABLE_KEEP_ALIVE

いいえ

true

TCPキープアライブを有効にするかどうか

MYSQL_KEEP_ALIVE_INITIAL_DELAY

いいえ

0

TCPキープアライブの初期遅延(ミリ秒)

.env の例:

MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database

使用方法

npx を通じてパッケージを起動するようにMCPクライアントを設定します。

ローカル開発の場合は、まずTypeScriptソースをビルドします:

npm run build

MCPサーバーを起動します:

npm start

サーバーはstdio経由で通信するため、通常は手動で実行するのではなく、MCPクライアントによって起動されます。

Claude Desktopの例

claude_desktop_config.json にサーバーを追加します:

{
  "mcpServers": {
    "easy-mysql-mcp": {
      "command": "npx",
      "args": ["-y", "easy-mysql-mcp"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "root",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database"
      }
    }
  }
}

設定を更新した後、Claude Desktopを再起動してください。

利用可能なツール

ツール

説明

mysql_query

SELECT など、データ取得を目的としたSQLクエリを実行します

mysql_execute

INSERTUPDATEDELETE など、データ変更ステートメントを実行します

explain_query

SQLクエリに対して EXPLAIN を実行し、実行プランを返します

list_tables

現在のデータベース内のベーステーブルを一覧表示します(概算行数とコメントを含む)

list_views

現在のデータベース内のビューを一覧表示します

describe_table

1つ以上のテーブルの列情報を表示します

describe_index

テーブルのインデックスを表示します

list_triggers

現在のデータベース内のトリガーを一覧表示します

get_current_privileges

現在のMySQLユーザーと権限を表示します

セキュリティ上の注意

  • アシスタントが必要とする最小限の権限を持つ専用のMySQLユーザーを使用してください。

  • 調査やレポートのみが必要な場合は、読み取り専用のデータベース認証情報を使用することを推奨します。

  • mysql_execute はデータを変更する可能性があるため、注意して使用してください。

  • .env ファイルや実際のデータベース認証情報をGitHubにコミットしないでください。

  • 本番データに対して実行する前に、生成されたSQLを確認してください。

開発

npm run dev

これはTypeScriptをウォッチモードで実行します。

本番用ビルドを作成するには:

npm run build

プロジェクト構造

src/
  db.ts       MySQL pool and query helpers
  index.ts    MCP server and tool registration
  proxy.ts    stdout protection for stdio-based MCP transport

ライセンス

ISC

Install Server
F
license - not found
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chenkumi/easy-mysql-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server