Skip to main content
Glama

MySQL Database Access

MIT License
419
17
  • Linux
  • Apple

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

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

  • 利用可能なデータベースの一覧
  • データベース内のテーブルを一覧表示する
  • テーブルスキーマを説明する
  • 読み取り専用SQLクエリを実行する

セキュリティ機能

  • 読み取り専用アクセス: SELECT、SHOW、DESCRIBE、および EXPLAIN ステートメントのみが許可されます
  • クエリ検証: SQLインジェクションを防ぎ、データ変更の試みをブロックします
  • クエリタイムアウト: 長時間実行されるクエリがリソースを消費するのを防ぎます
  • 行制限: 過剰なデータ返送を防止

インストール

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ファイルを参照してください。

You must be authenticated.

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

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

MySQL データベースへの読み取り専用アクセスを提供する MCP サーバー。

  1. セキュリティ機能
    1. インストール
      1. 次のいずれかの方法でインストールします。
      2. 環境変数を設定する
      3. MCP設定に追加
    2. 利用可能なツール
      1. データベース一覧
      2. リストテーブル
      3. テーブルの説明
      4. クエリ実行
    3. 高度な接続プール構成
      1. テスト
        1. テストデータベースのセットアップ
        2. MCPツールのテスト
        3. すべてのテストを実行する
      2. トラブルシューティング
        1. ライセンス

          Related MCP Servers

          • -
            security
            A
            license
            -
            quality
            MCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.
            Last updated -
            129
            Apache 2.0
          • -
            security
            A
            license
            -
            quality
            An MCP server that integrates with MySQL databases, enabling secure read and write operations through LLM-driven interfaces with support for transaction handling and performance monitoring.
            Last updated -
            48
            3
            JavaScript
            MIT License
          • -
            security
            A
            license
            -
            quality
            An MCP server that enables MySQL database integration with Claude. You can execute SQL queries and manage database connections.
            Last updated -
            1
            Python
            MIT License
            • Apple
          • -
            security
            A
            license
            -
            quality
            Open source MCP server specializing in easy, fast, and secure tools for Databases.
            Last updated -
            1,375
            Go
            Apache 2.0
            • Linux

          View all related MCP servers

          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