MySQL MCP Server for Smithery (Python) について
Smithery 向けの Python 製 MySQL コネクターで、MCP 経由でデータベース構造の確認やクエリ実行を行うユーザー向けです。SQL は読み取り専用に制限され、複数ステートメントのクエリは拒否されます。
主な機能
- 01MySQL データベースへの接続
- 02データベースとテーブルの一覧表示
- 03テーブルスキーマの確認
- 04読み取り専用 SQL クエリの実行
- 05書き込み操作の検証と拒否
活用シーン
- 01アクセス可能なデータベースとテーブルの閲覧
- 02テーブルのカラム構造の確認
- 03SELECT や EXPLAIN クエリの実行
MCP 対応
MCP サーバーは、MySQL 接続、データベースとテーブルの一覧表示、スキーマ確認、読み取り専用クエリ実行のツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Smithery 用 MySQL MCP サーバー(Python)
Python で構築された Smithery 用の MySQL コネクターです。Smithery から MySQL データベースに直接接続できます。
機能
- MySQL データベースへの接続:MySQL データベースを設定して接続します
- データベースの一覧表示:アクセス可能なすべてのデータベースを表示します
- テーブルの一覧表示:指定したデータベース内のすべてのテーブルを表示します
- テーブルの説明:テーブルの詳細なスキーマ情報を取得します
- クエリの実行:読み取り専用の SQL クエリ(SELECT、SHOW、DESCRIBE、EXPLAIN)を実行します
- セキュリティ:組み込みのクエリ検証により、読み取り専用の操作のみが許可されます
Smithery へのインストール
Smithery で MCP サーバーを追加すると、MySQL データベースの認証情報を入力できます。
- ホスト:データベースサーバーのホスト名(デフォルト:localhost)
- ポート:データベースサーバーのポート(デフォルト:3306)
- ユーザー:MySQL のユーザー名
- パスワード:MySQL のパスワード
- データベース:(任意)接続する特定のデータベース
手動でのインストール
- このリポジトリをクローンします:
git clone https://github.com/aqaralife/mysql-mcp-python-server.git
- 依存関係をインストールします:
cd mysql-mcp-python-server
npm install
pip install -r requirements.txt
- スクリプトを実行可能にします(Unix/Linux/Mac):
chmod +x mcp_server.py run.js
手動での使用方法
サーバーを起動するには:
node run.js
または、Python スクリプトを直接実行します:
python mcp_server.py
利用可能なツール
connect_db
MySQL データベースへの接続を確立します。
パラメーター:
- host:データベースサーバーのホスト名
- port:データベースサーバーのポート
- user:データベースのユーザー名
- password:データベースのパスワード
- database:(任意)データベース名
list_databases
アクセス可能なすべてのデータベースを一覧表示します。
パラメーター: なし
list_tables
データベース内のすべてのテーブルを一覧表示します。
パラメーター:
- database:(任意)データベース名。接続済みの場合はデフォルトのデータベースが使用されます
describe_table
テーブルのスキーマを表示します。
パラメーター:
- table:テーブル名
- database:(任意)データベース名。接続済みの場合はデフォルトのデータベースが使用されます
execute_query
読み取り専用の SQL クエリを実行します。
パラメーター:
- query:SQL クエリ(SELECT、SHOW、DESCRIBE、EXPLAIN のみ許可されます)
- database:(任意)データベース名。接続済みの場合はデフォルトのデータベースが使用されます
セキュリティ
サーバーには、読み取り専用の操作のみが許可されるよう、組み込みの検証機能が含まれています。
- SELECT、SHOW、DESCRIBE、EXPLAIN のクエリのみが許可されます
- INSERT、UPDATE、DELETE、DROP などの SQL コマンドを含むクエリは自動的に拒否されます
- 1 つのクエリ内での複数のステートメント(セミコロンで区切られたもの)は許可されません
トラブルシューティング
問題が発生した場合:
-
Python が見つからない:サーバーは
python3またはpythonを自動的に検出します。どちらも動作しない場合は、Python がインストールされており、PATH に設定されていることを確認してください。 -
モジュールが見つからない:サーバーは必要なパッケージの自動インストールを試みます。失敗する場合は、次のコマンドを手動で実行してください:
pip install mysql-connector-python>=8.0.0 -
接続の問題:データベースの認証情報を確認し、MySQL サーバーが起動していてアクセス可能であることを確認してください。
-
Smithery の接続の問題:Smithery の設定にデータベースの認証情報が正しく入力されていることを確認してください。
-
サーバーが応答しない:Smithery のコンソールでログ出力を確認し、エラーがないか調べてください。
ライセンス
MIT
お問い合わせ
ご質問がある場合は、issue を作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。