MySQL MCP Server

MIT License
20
  • Linux
  • Apple

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides environment variable management for configuring database credentials and server settings through .env files.

  • Supports containerized deployment of the MCP server through Docker, allowing configuration of database connection parameters and port mappings.

  • Includes Mermaid diagram support for visualizing the server architecture and data flow between components.

mysql-mcp-server

韓国語 README.md

0. 実行

Dockerで実行する

必要に応じてデータベース接続情報を変更します。

docker run -d --name mcp-mysql \ -e MYSQL_HOST=localhost \ -e MYSQL_PORT=3306 \ -e MYSQL_USER=root \ -e MYSQL_PASSWORD=mcpTest1234!!! \ -e MYSQL_DATABASE=mcp_test \ -e MCP_PORT=8081 \ -p 3306:3306 mineru/mcp-mysql:1.0.0

Docker Composeで実行する

事前に設定されたセットアップで続行されます。

docker-compose up -d

Pythonで直接実行する

pip install -r requirements.txt python mysql_mcp_server/main.py run

カーソルの設定

MCP 機能は、Cursor バージョン 0.46 以降で利用できます。

さらに、MCP 機能は Cursor Pro アカウント ユーザーのみがアクセスできます。

ツール追加のヒント

  • ツールの追加
    • execute関数は実際のロジック実行 (サービス層) を実装します。
    • @toolデコレータは、ツールを MCP (コントローラー レイヤー) に登録するのに役立ちます。
  • 説明
    • mysql_mcp_server/executors下の各ファイルは、単一のツールを表します。
    • 新しいツールが追加された場合は、 mysql_mcp_server/executors/__init__.pyにインポートし、 __all__配列に含める必要があります。
    • これにより、モジュールがTOOLS_DEFINITION変数に自動的に登録されます。

🚧 開発ロードマップ 🚧

  • ⚙️ パラメータオプション
    • [ ] 🔧 ツールごとの有効/無効スイッチ:入力コンテキストのコストを削減する機能を提供する 💰
    • [ ] 🔒 クエリセキュリティレベルの設定: DROP、DELETE、UPDATE など、資産価値を損なう可能性のある機能に対するオプションの制御を提供します🚫
  • ✨ 特徴
    • [x] 📊 データ分析レポート生成: ユーザーの要求に応じてさまざまなチャートを適切に選択できるようにモデルに最適化されたレポート生成機能を提供します 📈
      • [x] 📝 規定フォームのレポート機能
      • [ ] 🖌️ レポートテンプレートの多様化
    • [ ] 🗄️ 拡張された Text2SQL サポート
    • [ ] 🌐 SSH接続サポート: 高度な操作のためにSSH経由の安全なリモートアクセスを有効にします🔑
    • [ ] 📥 ファイル抽出機能
      • [ ] 📄 CSV
      • [ ] 📑 JSON
      • [ ] 📉 エクセル

1. 概要

MCP MySQL Serverは、MCP(Model Context Protocol)に基づいたMySQLデータベース操作用のサーバーアプリケーションです。このサーバーは、AIモデルがMySQLデータベースと連携するためのツールを提供します。

2. システム構成

2.1 主要コンポーネント

  • MCPサーバー: AIモデルと通信するFastMCPサーバー
  • MySQLデータベース:データを管理および保存します
  • ツール: データベース操作を実行するエグゼキュータ

2.2 技術スタック

  • 言語: Python
  • データベース: MySQL 8.0
  • 主要ライブラリ:
    • mcp: AI通信のためのモデルコンテキストプロトコルを実装
    • PyMySQL: MySQLに接続してクエリを実行する
    • pandas: データを処理および分析する
    • python-dotenv: 環境変数を管理する
    • fire: コマンドラインインターフェースを実装する

2.3 デプロイメント環境

  • Docker と Docker Compose によるコンテナ化されたデプロイメント
  • ポート: 8081 (MCP サーバー)、3306 (MySQL)

3. ディレクトリ構造

MCPBoilerPlate/ ├── mysql_mcp_server/ # Main application directory │ ├── executors/ # Database operation executors │ │ ├── create_table.py # Tool for creating tables │ │ ├── desc_table.py # Tool for viewing table schema │ │ ├── explain.py # Tool for query execution plans │ │ ├── insert_query.py # Tool for INSERT query execution │ │ ├── insight_starter.py # Schema verification tools for write reports │ │ ├── invoke_viz_pro.py # Tool for Visualization chart recommendation │ │ ├── select_query.py # Tool for SELECT query execution │ │ └── show_tables.py # Tool for retrieving table lists │ ├── helper/ # Utility modules │ │ ├── db_conn_helper.py # Manages database connections │ │ ├── logger_helper.py # Logging utilities │ │ └── tool_decorator.py # Tool decorator │ └── main.py # Application entry point ├── docker-compose.yml # Docker Compose configuration ├── Dockerfile # Docker image build settings ├── requirements.txt # Dependency package list └── .env.example # Example environment variables file

4. 建築設計

4.1 階層構造

  1. インターフェース層: MCP サーバー (FastMCP)
  2. ビジネスロジック層: ハンドラーとエグゼキューター
  3. データ アクセス層: データベース接続とクエリ実行

4.2 主要なクラスとモジュール

  • MySQLMCPServer : MCPサーバーを初期化して実行するメインサーバークラス
  • DatabaseManager : シングルトンパターンベースのデータベース接続マネージャー
  • Executors : データベース操作用のツールのコレクション
    • execute_create_table: テーブルを作成する
    • execute_desc_table: テーブルスキーマをチェックする
    • execute_explain: クエリ実行プランを提供する
    • execute_insert_query: INSETRクエリを実行する
    • execute_select_query: SELECTクエリを実行する
    • execute_show_tables: テーブルリストを取得します

4.3 通信フロー

  1. AI モデルは、MCP サーバーから利用可能なツールのリストを要求します。
  2. サーバーは利用可能なツールのリストを返します。
  3. AI モデルは特定のツールの実行を要求します。
  4. サーバーは対応するエグゼキュータを呼び出してデータベース操作を実行します。
  5. 実行結果は AI モデルに返されます。

5. スケーラビリティとメンテナンス

  • ツールの追加: executorsディレクトリに新しいツールを実装し、 __init__.pyに登録します。
  • 環境構成: .envファイルを介して環境変数を管理します。
  • ログ記録: logger_helperを使用して一貫したログ記録を確保します。

6. 展開と実行

6.1 ローカル実行

# Setup environment cp .env.example .env # Modify .env file as needed # Install dependencies pip install -r requirements.txt # Run the server python mysql_mcp_server/main.py run

6.2 Dockerのデプロイメント

# Start database using Docker Compose docker-compose up -d db # Build and run mysql-mcp-server with Docker Compose (including rebuilds) docker-compose up -d --build mysql-mcp-server

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

  • 環境変数を介してデータベース資格情報を管理します。
  • 実稼働環境では強力なパスワードを使用します。
  • 必要に応じて、データベース接続に SSL/TLS 暗号化を実装することを検討してください。
ID: 6y836dz8o5