プロジェクト简介

MySQL MCP Serverは、Model Context Protocol(MCP)に準拠したアプリケーションです。ローカル環境のMySQLデータベースに接続し、大規模言語モデル(LLM)がデータベース操作や情報取得をツール経由で行えるようにします。ポートを開放せず、標準入出力を介して安全に通信します。

主要功能点

  • LLMからの要求を受けてSQLクエリを実行します。
  • データベース一覧、テーブル一覧、テーブル構造などの情報を取得します。
  • 複数のMySQL接続設定をプロファイルとして保存・管理し、簡単に切り替えることができます。
  • MCPプロトコルに準拠しており、Stdio通信方式でLLMクライアントと連携します。

インストール手順

  1. Node.js (v20.0.0以上) と MySQL (v5.7以上) または MariaDB が必要です。
  2. 特別なインストール作業は不要です。Node.jsがインストールされていれば、'npx' コマンドを使用して直接実行できます。

サーバー配置

MCPクライアントからこのサーバーを利用するには、クライアントの設定ファイルに、MCPサーバーの起動コマンドと引数を記述する必要があります。MCPクライアントは、このコマンドを実行してサーバープロセスを起動し、標準入出力(Stdio)で通信を行います。

MCPクライアント向けの設定例(実際のファイル形式はクライアントにより異なります):

{
  "name": "mysql-mcp-server",
  "command": "npx",
  "args": [
    "-y", "https://github.com/yuki777/mysql-mcp-server",
    "--host", "<your_mysql_host>",  // 接続先MySQLサーバーのホスト名またはIPアドレス (例: 127.0.0.1)
    "--port", "<your_mysql_port>",  // 接続先MySQLサーバーのポート番号 (例: 3306)
    "--user", "<your_mysql_user>",  // MySQL接続に使用するユーザー名 (例: root)
    "--password", "<your_mysql_password>", // MySQLユーザーのパスワード (任意)
    "--database", "<your_mysql_database>", // 起動時にデフォルトで接続するデータベース名 (任意)
    "--auto-connect", // 起動時に上記接続情報で自動的にデータベースに接続する場合に指定
    "--debug", // サーバーのデバッグ情報を有効にする場合 (任意)
    "--query-timeout", "30000", // SQLクエリのタイムアウト時間 (ミリ秒単位, 任意)
    "--max-results", "1000" // SQLクエリの最大結果行数 (任意)
  ]
}

注: 上記はMCPクライアント側の設定例であり、そのまま実行するコードではありません。コマンド ('command') と引数 ('args') の部分を、お使いのMCPクライアントの設定に合わせて記述してください。MCPサーバー起動後、データベースへの接続は 'connect_database' ツールを使用してLLMから制御することも可能です。その場合は、起動時の '--host', '--port', '--user', '--password', '--database', '--auto-connect' オプションは省略または最小限の指定で起動し、ツールで詳細な接続情報を渡します。詳細はクライアントのドキュメントを参照してください。

基本使用方法

  1. 上記「サーバー配置」で示したような起動コマンドと引数を、お使いのMCPクライアントの設定ファイルに記述します。
  2. MCPクライアントを起動します。クライアントがMCPサーバープロセスを自動的に起動し、標準入出力チャネルを介して接続を確立します。
  3. LLMに対して、利用可能なツール(例: 'execute_query' によるSQL実行、'get_tables' によるテーブル情報取得、'connect_database' によるデータベース接続など)を使用してデータベース操作を行うよう指示します。
  4. クライアントがLLMからのツール呼び出し要求をMCP形式に変換し、サーバーに送信します。
  5. サーバーは要求されたツールを実行し、その結果をクライアント経由でLLMに返します。

信息

分类

数据库与文件