mcpField
G
go-mcp-mysql

go-mcp-mysql

ローカル
github.com/optimisticdurデータベース074 週間前に更新

go-mcp-mysql について

go-mcp-mysqlは、MySQLデータベースやテーブルを操作するGo製MCPサーバーです。スキーマ管理とCRUDツールを備え、読み取り専用モードや任意のクエリプラン検査に対応しますが、READMEでは本番利用の準備が整っていない可能性が示されています。

主な機能

  1. 01データベースとテーブルの一覧
  2. 02テーブルの作成と変更
  3. 03データの読み取りと更新
  4. 04読み取り専用モード
  5. 05EXPLAINによるプラン検査

活用シーン

  1. 01MySQLスキーマの確認
  2. 02データベースレコードの検索
  3. 03テーブル定義の管理
  4. 04読み取り操作に限定

MCP 対応

MCPクライアントにMySQLのスキーマおよびデータ操作ツールを提供します。読み取り専用モードを使えるほか、クエリ実行時にEXPLAINによるプラン検査を行えます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

go-mcp-mysql

概要

MySQL との連携や自動化にすぐ使える、負担のない Model Context Protocol(MCP)サーバーです。Node.js や Python の環境は必要ありません。このサーバーは、MySQL データベースやテーブルに対する CRUD 操作用のツールと、予期しない書き込み操作を防ぐ読み取り専用モードを提供します。また、--with-explain-check フラグを追加すると、クエリの実行前に EXPLAIN ステートメントを使用してクエリプランを確認するよう、MCP サーバーに設定できます。

このプロジェクトは開発中のため、まだ本番環境での使用には適さない場合があります。

インストール

  1. 最新のリリースを入手し、$PATH または簡単にアクセスできる場所に配置します。

  2. または、Go がインストールされている場合は、ソースからビルドできます。

go install -v github.com/optimisticdur/go-mcp-mysql@latest

使い方

方法 A:コマンドライン引数を使用する
{
  "mcpServers": {
    "mysql": {
      "command": "go-mcp-mysql",
      "args": [
        "--host", "localhost",
        "--user", "root",
        "--pass", "password",
        "--port", "3306",
        "--db", "mydb"
      ]
    }
  }
}
方法 B:カスタムオプションを指定した DSN を使用する
{
  "mcpServers": {
    "mysql": {
      "command": "go-mcp-mysql",
      "args": [
        "--dsn", "username:password@tcp(localhost:3306)/mydb?parseTime=true&loc=Local"
      ]
    }
  }
}

詳しくはMySQL DSNを参照してください。

注:バイナリを $PATH の外に配置した場合は、go-mcp-mysql をバイナリへのフルパスに置き換える必要があります。たとえば、バイナリを Downloads フォルダーに配置した場合は、次のパスを使用できます。

{
  "mcpServers": {
    "mysql": {
      "command": "C:\\Users\\<username>\\Downloads\\go-mcp-mysql.exe",
      "args": [
        ...
      ]
    }
  }
}
オプションのフラグ
  • --read-only フラグを追加すると、読み取り専用モードが有効になります。このモードでは、list、read_、desc_ で始まるツールのみが使用できます。このフラグを追加した後は、MCP サーバーを更新または再起動してください。
  • デフォルトでは、生成されたクエリプランが想定されるパターンと一致するかどうかを確認するため、CRUD クエリは最初に EXPLAIN ? ステートメントで実行されます。この動作を無効にするには、--with-explain-check フラグを追加します。

ツール

スキーマツール
  1. list_database

    • MySQL サーバー内のすべてのデータベースを一覧表示します。
    • パラメーター:なし
    • 戻り値:一致するデータベース名の一覧。
  2. list_table

    • MySQL サーバー内のすべてのテーブルを一覧表示します。
    • パラメーター:
      • name:指定した場合、指定された名前を含むテーブルを一覧表示します。SQL の SHOW TABLES LIKE '%name%' と同じです。指定しない場合は、すべてのテーブルを一覧表示します。
    • 戻り値:一致するテーブル名の一覧。
  3. create_table

    • MySQL サーバーに新しいテーブルを作成します。
    • パラメーター:
      • query:テーブルを作成する SQL クエリ。
    • 戻り値:影響を受けた行数。
  4. alter_table

    • MySQL サーバー内の既存のテーブルを変更します。既存のテーブルやカラムを削除しないよう、LLM に指示されています。
    • パラメーター:
      • query:テーブルを変更する SQL クエリ。
    • 戻り値:影響を受けた行数。
  5. desc_table

    • テーブルの構造を説明します。
    • パラメーター:
      • name:構造を確認するテーブルの名前。
    • 戻り値:テーブルの構造。
データツール
  1. read_query

    • 読み取り専用の SQL クエリを実行します。
    • パラメーター:
      • query:実行する SQL クエリ。
    • 戻り値:クエリの結果。
  2. write_query

    • 書き込み用の SQL クエリを実行します。
    • パラメーター:
      • query:実行する SQL クエリ。
    • 戻り値:影響を受けた行数、最後に挿入された ID:<last_insert_id>。
  3. update_query

    • 更新用の SQL クエリを実行します。
    • パラメーター:
      • query:実行する SQL クエリ。
    • 戻り値:影響を受けた行数。
  4. delete_query

    • 削除用の SQL クエリを実行します。
    • パラメーター:
      • query:実行する SQL クエリ。
    • 戻り値:影響を受けた行数。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。