MySQL Readonly MCP Server について
MySQL Readonly MCP Serverは、MCP経由でMySQLに読み取り専用アクセスを提供します。行数制限、パラメーター化クエリ、書き込み操作の防止が必要なデータベース利用向けです。
主な機能
- 01MySQLの読み取り専用クエリ
- 02コネクションプール管理
- 03パラメーター化クエリ
- 04返却行数の自動制限
- 05書き込み操作のチェック
活用シーン
- 01エージェントによる安全なデータ取得
- 02既定の行数上限内でクエリ結果を確認
MCP 対応
安全なMySQL読み取り専用クエリを公開するMCPサーバーです。読み取り以外の操作を制限し、返却行数を制御します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MySQL 読み取り専用 MCP サーバー
これは MCP(Model Context Protocol)に基づく MySQL 読み取り専用クエリサーバーです。安全な読み取り専用クエリインターフェースを通じて、MySQL データベースにアクセスできます。
機能
- MySQL データベースの読み取り専用クエリ操作に対応
- 接続プールを使用してデータベース接続を管理
- クエリ結果の件数を自動的に制限
- パラメーター化クエリに対応
- 書式設定されたクエリ結果を出力
- 読み取り専用以外の操作を防止するセキュリティチェックを内蔵
動作環境
- Python 3.10+
- MySQL 5.7+
- aiomysql
インストール
git clone https://github.com/the-nine-nation/mysql-mcp.git
pip install -e .
使用方法
cursor を例に説明します。以下の辞書を config.json に追加してください。sys.executable は Python 仮想環境の実行ファイルを指します。通常の Python、conda、uv のいずれでも使用できます。 mysql_mcp_py は main.py ファイルの絶対パスです。
"mysql": {
"command": sys.executable,
"args": [mysql_mcp_py],
"env": {
"MYSQL_ENABLED": "true",
"MYSQL_HOST": "mysql数据库的ip",
"MYSQL_PORT": "mysql数据库的端口",
"MYSQL_DATABASE": "mysql数据库的名称",
"MYSQL_USERNAME": "mysql数据库的用户名",
"MYSQL_PASSWORD": "mysql数据库的密码",
"MYSQL_POOL_MINSIZE": "1",
"MYSQL_POOL_MAXSIZE": "10",
"MYSQL_RESOURCE_DESC_FILE": "mysql数据库的资源描述文件路径"
}
}
注意:1. MYSQL_RESOURCE_DESC_FILE は説明ファイルです。データベース内の情報(各テーブルの用途など)を記載すると、モデルの理解度を高められます。 2. MYSQL_ENABLED はデフォルトでは設定する必要はありません。
セキュリティ機能
- 読み取り専用操作のみを許可
- 複数ステートメントの実行を防止
- クエリ結果の件数を自動的に制限
- SQL インジェクションを防ぐため、パラメーター化クエリを使用
注意事項
- データベースユーザーに読み取り専用権限のみがあることを確認してください
- リソース記述ファイルは必須です。利用可能なクエリインターフェースの定義に使用します
- クエリ結果はデフォルトで20行に制限されます。環境変数で変更できます
貢献
Issue や Pull Request の投稿を歓迎します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。