mcpField
M
MySQL MCP Server

MySQL MCP Server

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

MySQL MCP Server について

MySQL MCP Server は、AI アシスタントや他の MCP クライアントに一部の MySQL 操作を公開します。クエリやデータ挿入、テーブル確認に対応し、パラメーター化クエリと SELECT 件数の自動制限を備えています。

主な機能

  1. 01SELECT、INSERT、SHOW、DESCRIBE の実行
  2. 02パラメーター化によるデータ挿入
  3. 03テーブル一覧とスキーマ確認
  4. 04パラメーター化クエリと自動件数制限
  5. 05コネクションプーリング

活用シーン

  1. 01MCP クライアントから MySQL データを検索
  2. 02指定した値でレコードを挿入
  3. 03利用可能なテーブルとスキーマを確認

MCP 対応

MySQL 操作を MCP ツールとして公開し、データベースのメタデータとテーブル構造をリソースとして提供します。

設定

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

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

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

パッケージ
npmmysql-mcp-server

ツール

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

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

詳細

MySQL MCP サーバー

AI アシスタントやその他の MCP クライアントに安全な MySQL データベース操作を提供する、Model Context Protocol(MCP)サーバーです。

機能

🛠️ ツール
  • execute_query - 安全な SQL クエリ(SELECT、INSERT、SHOW、DESCRIBE)を実行します
  • get_table_info - テーブル構造の詳細情報を取得します
  • insert_data - パラメーターの自動設定による便利なデータ挿入機能です
  • list_tables - データベース内のすべてのテーブルを一覧表示します
📊 リソース
  • データベース情報(mysql://database/info)- データベースのメタデータとテーブル一覧
  • テーブル構造(mysql://table/{table_name})- テーブルスキーマの詳細情報
🔒 セキュリティ機能
  • 操作の制限:安全な操作(SELECT、INSERT、SHOW、DESCRIBE)のみを許可します
  • SQL インジェクション対策:パラメーター化クエリを使用します
  • LIMIT の自動追加:SELECT クエリに LIMIT 句を追加し、大量のデータのダンプを防ぎます
  • コネクションプーリング:データベース接続を効率的に管理します

インストール

npm install mysql-mcp-server

設定

サーバーは環境変数を使用して設定できます。

変数デフォルト値説明
MYSQL_HOSTlocalhostMySQL サーバーのホスト名
MYSQL_PORT3306MySQL サーバーのポート
MYSQL_USERrootMySQL のユーザー名
MYSQL_PASSWORD(empty)MySQL のパスワード
MYSQL_DBmysqlデフォルトのデータベース名
MYSQL_TIMEZONE+00:00MySQL のタイムゾーン

MCP クライアントでの使用

Claude Desktop

Claude Desktop の設定ファイルに追加します。

macOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["mysql-mcp-server"],
      "env": {
        "MYSQL_HOST": "your-mysql-host",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "your-username",
        "MYSQL_PASSWORD": "your-password",
        "MYSQL_DB": "your-database"
      }
    }
  }
}
その他の MCP クライアント

その他の MCP クライアントでは、stdio トランスポートを使用してサーバーを利用します。

npx mysql-mcp-server

開発

前提条件
  • Node.js 18+
  • TypeScript
  • MySQL データベースへのアクセス
セットアップ
  1. リポジトリをクローンします。
git clone https://github.com/your-username/mysql-mcp-server.git
cd mysql-mcp-server
  1. 依存関係をインストールします。
npm install
  1. 環境変数を設定します。
cp .env.example .env
# Edit .env with your database configuration
  1. サーバーをビルドします。
npm run build
開発コマンド
# Build the server
npm run build

# Watch mode for development
npm run watch

# Debug with MCP Inspector
npm run inspector
テスト

MCP Inspector を使用してサーバーをテストできます。

npm run inspector

これにより Inspector が起動し、ブラウザーでサーバーをテストするための URL が表示されます。

使用例

MCP クライアント経由で接続すると、次の操作ができます。

  1. すべてのテーブルを一覧表示:

    Use the list_tables tool
    
  2. テーブル構造を取得:

    Use get_table_info with table_name: "users"
    
  3. データをクエリ:

    Use execute_query with sql: "SELECT * FROM users LIMIT 10"
    
  4. データを挿入:

    Use insert_data with table_name: "users" and data: {"name": "John", "email": "[email protected]"}
    

セキュリティに関する考慮事項

このサーバーはセキュリティを考慮して設計されています。

  • 読み取り中心の操作:SELECT、INSERT、SHOW、DESCRIBE の操作のみを許可します
  • 破壊的な操作の禁止:UPDATE と DELETE は明示的に禁止されています
  • パラメーター化クエリ:すべてのユーザー入力を適切にエスケープします
  • 接続数の制限:リソースの枯渇を防ぐため、コネクションプーリングを使用します
  • クエリの制限:LIMIT 句を自動的に追加し、大量のデータのダンプを防ぎます

貢献

貢献を歓迎します。お気軽にプルリクエストを送信してください。

ライセンス

MIT License。詳細については LICENSE ファイルをご覧ください。

関連項目

コメント

MCP は初めてですか?

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

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