Skip to main content
Glama

MySQL MCP Server

by Mineru98
MIT License
20
  • Linux
  • Apple

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 暗号化を実装することを検討してください。
-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

AI モデルがモデル制御プロトコルを介して MySQL データベースと対話できるようにし、テーブル作成、スキーマ検査、クエリ実行、データ取得のためのツールを提供するサーバー。

  1. 実行
    1. Dockerで実行する
    2. Docker Composeで実行する
    3. Pythonで直接実行する
    4. カーソルの設定
    5. ツール追加のヒント
  2. 🚧 開発ロードマップ 🚧
    1. 概要
      1. システム構成
        1. 2.1 主要コンポーネント
        2. 2.2 技術スタック
        3. 2.3 デプロイメント環境
      2. ディレクトリ構造
        1. 建築設計
          1. 4.1 階層構造
          2. 4.2 主要なクラスとモジュール
          3. 4.3 通信フロー
        2. スケーラビリティとメンテナンス
          1. 展開と実行
            1. 6.1 ローカル実行
            2. 6.2 Dockerのデプロイメント
          2. セキュリティに関する考慮事項

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              This server enables AI models to interact with MySQL databases through a standardized interface.
              Last updated -
              5
              646
              61
              JavaScript
              MIT License
              • Linux
              • Apple
            • A
              security
              F
              license
              A
              quality
              Enables AI models to perform MySQL database operations through a standardized interface, supporting secure connections, query execution, and comprehensive schema management.
              Last updated -
              7
              35
              22
              JavaScript
            • -
              security
              -
              license
              -
              quality
              A Model Context Protocol server that enables AI models to interact with MySQL databases, providing tools for querying, executing statements, listing tables, and describing table structures.
              Last updated -
              MIT License
            • -
              security
              -
              license
              -
              quality
              A Model Context Protocol server that enables AI models to interact with MySQL databases through a standardized interface, providing tools for querying, executing commands, and managing database schemas.
              Last updated -
              JavaScript

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mineru98/mysql-mcp-server'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server