mcp-mysql-connector について
mcp-mysql-connectorは、MySQL操作をLLMエージェントやAIアシスタント向けのツールとして公開するMCPサーバーです。クエリ、スキーマやユーザーの管理、トランザクション制御に対応し、メタデータもリソースとして提供します。
主な機能
- 01MySQLへの接続と切断
- 02SQLクエリの実行
- 03データベース、テーブル、列、インデックスの管理
- 04ユーザー作成と権限管理
- 05トランザクションのコミットとロールバック
- 06データベースとテーブルのメタデータ確認
活用シーン
- 01MySQLデータベースへのクエリ実行
- 02テーブルのスキーマとインデックスの確認
- 03データベースユーザーと権限の管理
- 04データベース変更の適用または取り消し
MCP 対応
MySQL操作をMCPツールとして、データベースとテーブルのメタデータをMCPリソースとして公開します。MCPクライアントから、接続先データベースの照会や管理に利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-mysql-connector
LLM エージェント向けに、MySQL データベースの機能をツールとして提供する MCP サーバーです。
mcp-name: io.github.daedalus/mcp-mysql-connector
概要
mcp-mysql-connector は、LLM エージェント向けに MySQL データベース操作をツールとして提供する Model Context Protocol(MCP)サーバーです。標準化されたプロトコルを通じて AI アシスタントが MySQL データベースを操作でき、次の機能を利用できます。
- データベースとテーブルの管理
- クエリの実行
- ユーザー認証と権限管理
- スキーマの調査
- トランザクション制御
インストール
pip install mcp-mysql-connector
クイックスタート
サーバーの実行
# Run with stdio transport (default)
mcp-mysql-connector
# Or run programmatically
python -c "from mcp_mysql import mcp; mcp.run()"
設定
connect ツールを使用して MySQL に接続します。
{
"host": "localhost",
"port": 3306,
"user": "root",
"password": "your_password",
"database": "your_database"
}
MCP ツール
接続管理
| ツール | 説明 |
|---|---|
connect | MySQL データベースに接続します |
disconnect | MySQL から切断します |
is_connected | 接続状態を確認します |
commit | 現在のトランザクションをコミットします |
rollback | 現在のトランザクションをロールバックします |
クエリの実行
| ツール | 説明 |
|---|---|
execute_query | SQL クエリをそのまま実行し、結果を返します |
データベース操作
| ツール | 説明 |
|---|---|
list_databases | サーバー上のすべてのデータベースを一覧表示します |
create_database | 新しいデータベースを作成します |
drop_database | データベースを削除します |
database_exists | データベースが存在するか確認します |
テーブル操作
| ツール | 説明 |
|---|---|
list_tables | データベース内のテーブルを一覧表示します |
describe_table | テーブルのスキーマを取得します |
create_table | 新しいテーブルを作成します |
drop_table | テーブルを削除します |
table_exists | テーブルが存在するか確認します |
カラムとインデックスの操作
| ツール | 説明 |
|---|---|
show_columns | カラムの詳細を表示します |
show_indexes | インデックスの詳細を表示します |
create_index | インデックスを作成します |
drop_index | インデックスを削除します |
ユーザー管理
| ツール | 説明 |
|---|---|
create_user | MySQL ユーザーを作成します |
drop_user | MySQL ユーザーを削除します |
grant_privileges | ユーザーに権限を付与します |
revoke_privileges | ユーザーの権限を取り消します |
show_privileges | ユーザーの権限を表示します |
サーバー情報
| ツール | 説明 |
|---|---|
server_status | MySQL サーバーの状態を取得します |
MCP リソース
サーバーは、データベースとテーブルのメタデータを動的なリソースとして提供します。
database://{name}- テーブル一覧を含むデータベースのメタデータtable://{db}/{table}- スキーマ、カラム、インデックスを含むテーブルのメタデータ
使用例
接続してクエリを実行
# First, connect to database
connect(host="localhost", user="root", password="secret", database="mydb")
# Execute a query
execute_query(sql="SELECT * FROM users WHERE active = true")
# List all tables
list_tables(database="mydb")
データベースとテーブルの作成
# Create a database
create_database(name="newapp")
# Create a table
create_table(name="users", schema="id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255) UNIQUE")
ユーザー管理
# Create a new user with password
create_user(username="app_user", host="localhost", password="secure_password")
# Grant privileges
grant_privileges(privileges="SELECT,INSERT,UPDATE,DELETE", on="newapp.*", username="app_user", host="localhost")
トランザクション制御
# Start transaction
execute_query(sql="BEGIN")
# Execute operations
execute_query(sql="INSERT INTO accounts (balance) VALUES (100)")
# Commit or rollback
commit() # or rollback()
環境変数
サーバーは環境変数による設定に対応しています。
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASSWORD=secret
export MYSQL_DATABASE=mydb
開発
# Clone repository
git clone https://github.com/daedalus/mcp-mysql-connector.git
cd mcp-mysql-connector
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -e ".[test]"
# Run tests
pytest
# Format code
ruff format src/ tests/
# Lint
ruff check src/ tests/
# Type check
mypy src/
アーキテクチャ
mcp-mysql-connector/
├── src/mcp_mysql/
│ ├── core/models.py # Data models (QueryResult, TableSchema, etc.)
│ ├── adapters/mysql.py # MySQL connection & pooling
│ ├── services/connection.py # Connection manager
│ ├── tools/mysql_tools.py # MCP tool implementations
│ └── mcp.py # FastMCP server setup
└── tests/ # Test suite
要件
- Python 3.11+
- fastmcp >= 2.0.0
- pymysql >= 1.1.0
- sqlparse >= 0.4.0
ライセンス
MIT License — 詳細については LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。