mcpField
M
MySQL Database Access MCP Server

MySQL Database Access MCP Server

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

MySQL Database Access MCP Server について

MySQL Database Access MCP Serverは、MCPクライアントにMySQLデータベースへの読み取り専用アクセスを提供します。スキーマ確認やデータ検索に使え、クエリ検証、タイムアウト、行数制限で実行を制御します。

主な機能

  1. 01アクセス可能なデータベースの一覧
  2. 02データベース内のテーブル一覧
  3. 03テーブルスキーマの確認
  4. 04読み取り専用SQLクエリの実行
  5. 05クエリ検証とリソース制限

活用シーン

  1. 01MySQLインスタンスのデータベースとテーブルの把握
  2. 02テーブルのフィールドと構造の確認
  3. 03SELECTなど読み取り専用クエリの実行

MCP 対応

MCPサーバーとして、データベースとテーブルの一覧表示、テーブルスキーマの確認、読み取り専用SQLクエリの実行ツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mysql-mcp-server-allizwellai": {
"command": "npx",
"args": [
"-y",
"mysql-mcp-server"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<MYSQL_DATABASE>"
}
}
}
}
起動コマンドnpx -y mysql-mcp-server
設定が必要な環境変数
MYSQL_HOST
MYSQL_PORT
MYSQL_USER
MYSQL_PASSWORDシークレット
MYSQL_DATABASE

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

パッケージ
npmmysql-mcp-server

ツール

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

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

詳細

mysql-mcp-server MCP サーバー

npm version smithery badge

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/allizwellai/mysql-mcp-server.git
cd mysql-mcp-server

# Install dependencies and build
npm install
npm run build
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": []
    }
  }
}

利用可能なツール

list_databases

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

パラメーター:なし

例:

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

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

パラメーター:

  • database(任意):データベース名(指定しない場合はデフォルトが使用されます)

例:

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

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

パラメーター:

  • database(任意):データベース名(指定しない場合はデフォルトが使用されます)
  • table(必須):テーブル名

例:

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

読み取り専用の 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 環境で機能を確認するためのテストスクリプトが含まれています。

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

コメント

MCP は初めてですか?

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

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