CursorでMySQL用MCPサーバーを使ってみる

Created: Apr 15, 2025 | Lastmod: Apr 16, 2025 min read

はじめに

皆さん、Cursorは使っていますでしょうか。 自分は最近Cursorを導入し、大変便利だと感じたため、Pro会員に課金しました。

そして最近、こうしたAIチャットツールと外部ツールを連携するための、MCPサーバーなるものがあることを知りました。 試しにMySQLのMCPサーバーを導入してみたところ、Cursorのチャットから直接MySQLのデータベースへアクセスできるようになりました。 これによって、Cursorが直接データベースにアクセスして、クエリを実行してくれるようになります。 エラー時にデータベースへアクセスしてデータを取得したり、テーブル定義を変更したりしてくれます。 非常に便利です。

この記事では、備忘録も兼ねて、MySQLのMCPサーバーを導入する方法と、CursorからMCPサーバーにアクセスする方法を紹介します。

MCPサーバーとは

そもそもMCPサーバーとは何かというと、自分の理解では「AI生成ツール」と「外部ツール」を連携するためのものです。

これまでも、ChatGPTのFunctionCallingやプラグインなど、類似の仕組みは存在していました。 しかし、これらの仕組みは、今や多数存在する他の生成AI(Claude、DeepSeek、etc…)に対して普遍的に使えるようなものではありません。 そのため、他の生成AIに対して連携しようとすると、その度に新しくコードを書き直さなければなりませんでした。

ところが、MCPサーバーの登場によって、こういった規格が統一されました。 つまり、一度規格に従って生成AIと外部ツールとの連携用のコードを書いたら、ClaudeだろうがDeepSeekだろうが、後はずっとそれを使いまわせるようになったということです。

この部分に筆を割き過ぎると、この記事の主題から外れてしまうので、詳しく知りたい方は以下のような記事を参考にしてください。 https://zenn.dev/nanami_bitwise/articles/966efd5438e75b

MySQLのMCPサーバーを使ってみる

今回、こちらのネットで検索して一番上に出てきた、こちらのMCPサーバーを使うことにします。

https://github.com/designcomputer/mysql_mcp_server

Github Desktop、コマンドライン、Visual Studioなど、お好みの方法で落としてきてください。

前提: 実行環境

自身の実行環境は以下の通りです。

  • Windows 11
  • Cursor 0.48.9
  • PowerShell 7.5.0
  • 方法1の場合
    • python 3.13
    • pip 25.0.1
    • uv 0.6.13
  • 方法2の場合
    • npm 10.9.2

MCPサーバーを利用するに際して、pythonとpipとuv、またはnpmが必要となります。 各自、ローカル環境で実行できるようにしておいてください。

方法1: MCPサーバーアプリケーションをローカルに持ってきて起動

まずは、ローカルで以下のコマンドを実行します。 後々このコマンドを実行したパスを使用することになるので、自分で管理しやすい任意の場所に保存しておいてください。

pip install mysql-mcp-server

次に、Cursorの設定から、MCP→Add new global MCP serverを選択し、以下の通り設定します。

{
  "mcpServers": {
    "mysql": {
      "command": "uvへのフルパス",
      "args": [
        "--directory",
        "src\\mysql_mcp_serverへのフルパス",
        "run",
        "mysql_mcp_server"
      ],
      "env": {
        "MYSQL_HOST": "ホスト名",
        "MYSQL_PORT": "3306(ホスト側の設定に合わせてください)",
        "MYSQL_USER": "ユーザー名",
        "MYSQL_PASSWORD": "パスワード",
        "MYSQL_DATABASE": "データベース名"
      }
    },
  }
}

いくつか注意点を挙げます。

uvへのフルパスを記載する

Windows環境では、uvとだけ記載すると、コマンドを見つけることができないという旨のエラーが出ました。 そのため、uvコマンド(uv.exe)へのフルパスを記載する必要がありました。 おそらく、C:\\Users\\ユーザー名\\.local\\bin\\uvのような記載になるはずです。

パスの記載方法について

Windows環境では、\(バックスラッシュ)を用いるべきケースがほとんどですが、どうやら現在のWindowsのシェルはそのあたりを上手く変換してくれるようです。 そのため、/(スラッシュ)でも問題なく認識してくれます。 自分は念のためバックスラッシュ2つ(jsonでのエスケープのため)で記載していますが、お好みでいいと思います。 このあたりは今後検証してみたいです。

MySQLのホスト名とデータベース名

自分はこの部分を勘違いしており、かなり時間を取ってしまいました。 今回、自分が接続しようとしていたデータベースのURLは、プログラム上だと以下のような文字列になっていました。

jdbc:mysql://hoge.com:3306/fuga

上記文字列は、hoge.comにあるfugaテーブルに対して、jdbcでmysqlに接続する、という意味です。 つまりこの時、ホスト名はhoge.comであり、データベース名はfugaとなります。 Cursorの設定ファイルで言うと、MYSQL_HOSTにはhoge.com、MYSQL_DATABASEにはfugaを指定する必要があります。

方法2: Smitheryを通して起動

こちらの方法を使えば、ローカルにデータを落としてくる必要がなくなるようなのですが、自分の環境だと上手く動作しませんでした。 挑戦したい方は、以下から確認してみてください。

https://smithery.ai/server/mysql-mcp-server

動作確認

まず、CursorのMCP設定欄が以下のようになっていることを確認してください。 緑色の丸が付いていたら一旦問題ないです。

CursorのMCP設定画面スクリーンショット

次に、Cursorのチャットで、以下のように問い合わせてみてください。

〇〇テーブルからデータを取得してください

以下のようにデータを返してくれたら成功です。

CursorでMySQLのデータ取得スクリーンショット

上手く動かない場合

Ctrl + Shift + U で「出力」を開き、右上のプルダウンから「Cursor MCP」を開いてください。 MCPに関連するログが出力されているので、エラー解決のヒントになるはずです。

また、それでも上手く動かない場合は、CursorのMCPの設定から更新ボタンを押すか、Cursorを再起動してみると上手く動く可能性があります。 Cursorは絶賛開発中のエディタなので、このあたりの挙動はやや不安定なのかもしれません。

まとめ

Cursorが非常に便利だと感じる一方、ここまで便利ならデータベース側の操作も自動でやってくれないだろうかと思っていました。 このMCPサーバーを使うことで、データベースの操作までもAIが行ってくれるようになります。 実際に業務で使用する場合は、セキュリティやハルシネーションなどの課題を検討する必要があると思いますが、とても可能性を感じる素晴らしいMCPサーバーだと思いました。

comments powered by Disqus