MySQL MCP Server について
MySQL MCP Serverは、AIアプリケーションからMySQLデータベースへ制御された形でアクセスするためのプロトコル実装です。テーブルデータやSQLクエリをMCP経由で扱い、環境変数で接続情報を設定できます。
主な機能
- 01MySQLテーブルをリソースとして一覧表示
- 02テーブル内容の読み取り
- 03エラー処理付きSQLクエリ実行
- 04環境変数によるアクセス設定
- 05データベース操作のログ記録
活用シーン
- 01AIアプリケーションでテーブルとデータを確認
- 02MCP経由でデータベースクエリを実行
- 03データベース操作のログを保持
MCP 対応
MCPクライアントに、MySQLテーブルのリソース、内容の読み取り、SQLクエリ機能を提供します。単独実行ではなく、AIアプリケーションへの統合を想定しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MySQL MCP Server
MySQL データベースとの安全なやり取りを可能にする Model Context Protocol(MCP)の実装です。このサーバーコンポーネントは、AI アプリケーション(ホスト/クライアント)と MySQL データベース間の通信を仲介し、制御されたインターフェースを通じて、より安全で構造化されたデータベースの探索と分析を実現します。
注:MySQL MCP Server は単独で使用するサーバーとしてではなく、AI アプリケーションと MySQL データベース間の通信プロトコルの実装として設計されています。
特長
- 利用可能な MySQL テーブルをリソースとして一覧表示します
- テーブルの内容を読み取ります
- 適切なエラー処理を行いながら SQL クエリを実行します
- 環境変数を通じてデータベースへの安全なアクセスを実現します
- 包括的なログ記録を行います
インストール
手動インストール
pip install mysql-mcp-server
Smithery を使ったインストール
Smithery を使用して、Claude Desktop 用の MySQL MCP Server を自動的にインストールするには:
npx -y @smithery/cli install mysql-mcp-server --client claude
設定
次の環境変数を設定します:
MYSQL_HOST=localhost # Database host
MYSQL_PORT=3306 # Optional: Database port (defaults to 3306 if not specified)
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
使用方法
Claude Desktop での使用
これを claude_desktop_config.json に追加します:
{
"mcpServers": {
"mysql": {
"command": "uv",
"args": [
"--directory",
"path/to/mysql_mcp_server",
"run",
"mysql_mcp_server"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
MCP Inspector によるデバッグ
MySQL MCP Server は単独で実行したり、Python でコマンドラインから直接実行したりすることを意図していませんが、MCP Inspector を使ってデバッグできます。
MCP Inspector を使用すると、MCP の実装を簡単にテストおよびデバッグできます:
# Install dependencies
pip install -r requirements.txt
# Use the MCP Inspector for debugging (do not run directly with Python)
MySQL MCP Server は Claude Desktop などの AI アプリケーションに統合するよう設計されており、単独の Python プログラムとして直接実行すべきではありません。
開発
# Clone the repository
git clone https://github.com/yourusername/mysql_mcp_server.git
cd mysql_mcp_server
# Create virtual environment
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
セキュリティに関する考慮事項
- 環境変数や認証情報をコミットしないでください
- 必要最小限の権限を持つデータベースユーザーを使用してください
- 本番環境ではクエリのホワイトリスト登録を検討してください
- すべてのデータベース操作を監視し、ログに記録してください
セキュリティのベストプラクティス
この MCP の実装が機能するには、データベースへのアクセスが必要です。セキュリティを確保するために、次の点に従ってください:
- 専用の MySQL ユーザーを作成する:権限は必要最小限にします
- root の認証情報や管理者アカウントを使用しない
- データベースへのアクセスを制限する:必要な操作のみに限定します
- ログ記録を有効にする:監査に使用します
- データベースアクセスのセキュリティを定期的に確認する
詳しい手順については、MySQL Security Configuration Guide を参照してください:
- 制限付きの MySQL ユーザーの作成
- 適切な権限の設定
- データベースアクセスの監視
- セキュリティのベストプラクティス
⚠️ 重要:データベースアクセスを設定する際は、常に最小権限の原則に従ってください。
ライセンス
MIT License。詳細については LICENSE file を参照してください。
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。