Skip to main content
Glama

MySQL Database Access

npmバージョン 鍛冶屋のバッジ

MySQLデータベースアクセスMCPサーバー

このMCPサーバーは、MySQLデータベースへの読み取り専用アクセスを提供します。これにより、以下のことが可能になります。

  • 利用可能なデータベースの一覧

  • データベース内のテーブルを一覧表示する

  • テーブルスキーマを説明する

  • 読み取り専用SQLクエリを実行する

セキュリティ機能

  • 読み取り専用アクセス: SELECT、SHOW、DESCRIBE、および EXPLAIN ステートメントのみが許可されます

  • クエリ検証: SQLインジェクションを防ぎ、データ変更の試みをブロックします

  • クエリタイムアウト: 長時間実行されるクエリがリソースを消費するのを防ぎます

  • 行制限: 過剰なデータ返送を防止

Related MCP server: MCP Server for MySQL

インストール

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/dpflucas/mysql-mcp-server.git cd mysql-mcp-server # Install dependencies and build npm install npm run build

Smithery経由でインストール

Smithery経由で Claude AI 用の MySQL データベース アクセス MCP サーバーを自動的にインストールするには:

npx -y @smithery/cli install @dpflucas/mysql-mcp-server --client claude

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": [] } } }

利用可能なツール

データベース一覧

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

パラメータ: なし

{ "server_name": "mysql", "tool_name": "list_databases", "arguments": {} }

リストテーブル

指定されたデータベース内のすべてのテーブルを一覧表示します。

パラメータ:

  • database (オプション): データベース名(指定されていない場合はデフォルトを使用)

{ "server_name": "mysql", "tool_name": "list_tables", "arguments": { "database": "my_database" } }

テーブルの説明

特定のテーブルのスキーマを表示します。

パラメータ:

  • database (オプション): データベース名(指定されていない場合はデフォルトを使用)

  • table (必須): テーブル名

{ "server_name": "mysql", "tool_name": "describe_table", "arguments": { "database": "my_database", "table": "my_table" } }

クエリ実行

読み取り専用の 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 接続プールの動作をさらに制御するには、追加のパラメータを設定できます。

{ "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", "MYSQL_CONNECTION_LIMIT": "10", "MYSQL_QUEUE_LIMIT": "0", "MYSQL_CONNECT_TIMEOUT": "10000", "MYSQL_IDLE_TIMEOUT": "60000", "MYSQL_MAX_IDLE": "10" }, "disabled": false, "autoApprove": [] } } }

これらの詳細オプションを使用すると、次のことが可能になります。

  • MYSQL_CONNECTION_LIMIT : プール内の接続の最大数を制御します(デフォルト: 10)

  • MYSQL_QUEUE_LIMIT : キューに入れる接続リクエストの最大数を設定する(デフォルト: 0、無制限)

  • MYSQL_CONNECT_TIMEOUT : 接続タイムアウトをミリ秒単位で調整します(デフォルト: 10000)

  • MYSQL_IDLE_TIMEOUT : 接続が解放されるまでのアイドル時間を設定します(ミリ秒単位)

  • MYSQL_MAX_IDLE : プールに保持するアイドル接続の最大数を設定します。

テスト

サーバーには、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

トラブルシューティング

問題が発生した場合:

  1. サーバーログでエラーメッセージを確認してください

  2. MySQLの資格情報と接続の詳細を確認する

  3. MySQLユーザーに適切な権限があることを確認する

  4. クエリが読み取り専用であり、適切にフォーマットされていることを確認してください

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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/dpflucas/mysql-mcp-server'

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