Skip to main content
Glama

MySQL MCP Server

by caicongyang

MySQL MCP サーバー

英語|中国語

概要

MySQLを介してデータベースとのやり取り機能を提供するモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーでは、SQLクエリの実行、テーブルの作成、データベーススキーマ情報の参照が可能です。

コンポーネント

ツール

サーバーは 5 つのコア ツールを提供します。

クエリツール
  • read_query
    • SELECTクエリを実行してデータベースからデータを読み取ります
    • 入力:
      * query (文字列): 実行するSELECT SQLクエリ
    • 戻り値: クエリ結果をオブジェクトの配列として返します
  • write_query
    • INSERT、UPDATE、またはDELETEクエリを実行する
    • 入力:
      * query (文字列): SQL変更クエリ
    • 戻り値: { affected_rows: number }
  • create_table
    • データベースに新しいテーブルを作成する
    • 入力:
      * query (文字列): CREATE TABLE SQL ステートメント
    • 戻り値: テーブル作成の確認
スキーマツール
  • list_tables
    • データベース内のすべてのテーブルのリストを取得する
    • 入力不要
    • 戻り値: テーブル名の配列
  • describe_table
    • 特定のテーブルのスキーマ情報を表示する
    • 入力:
      * table_name (文字列): 記述するテーブルの名前
    • 戻り値: 名前と型を持つ列定義の配列

インストール

前提条件

  • Python 3.10以上
  • MySQLデータベース
  • 必要な Python パッケージ:
    • mcp (モデルコンテキストプロトコル)
    • sqlalchemy
    • pymysql (または他のMySQLドライバ)
    • python-dotenv
    • uvicorn (HTTP トランスポート用)

Condaを使ったセットアップ

まず、conda 環境を作成してアクティブ化します。

# Create environment conda create --name mcp-demo python=3.12 # Activate environment conda activate mcp-demo

次に、必要な依存関係をインストールします。

# Method 1: Using pip pip install "mcp[cli]>=0.1.0" "pymysql>=1.1.0" "sqlalchemy>=2.0.0" "python-dotenv>=1.0.0" "uvicorn>=0.27.0" # Method 2: Using uv uv pip install "mcp[cli]>=0.1.0" "pymysql>=1.1.0" "sqlalchemy>=2.0.0" "python-dotenv>=1.0.0" "uvicorn>=0.27.0"

構成

次を使用してサーバーを構成できます。

環境変数ファイル (.env)

  1. .env.templateファイルをコピーし、名前を.envに変更します。
cp .env.template .env
  1. 設定に合わせて.envファイルを編集します。
# Database configuration DB_URL=mysql+pymysql://username:password@localhost:3306/dbname

コマンドライン引数

コマンドライン引数を使用して構成を上書きすることもできます。

python src/mysql/server.py --db-url mysql+pymysql://username:password@localhost:3306/dbname

使用法

サーバーの起動

# Using .env file configuration python src/mysql/server.py # Using command line arguments python src/mysql/server.py --db-url mysql+pymysql://username:password@localhost:3306/dbname --transport http

MCP Inspectorによるテスト

MCP Inspector ツールを使用してサーバーをテストできます。

npx @modelcontextprotocol/inspector uv run /Users/caicongyang/IdeaProjects/tom/mcp-demo/src/mysql/server.py

これによりサーバーが起動し、利用可能なツールを対話的にテストできるようになります。

ワークフローの例

  1. MySQLデータベース接続でサーバーを起動します
  2. MCPクライアントを使用してAIモデルをサーバーに接続する
  3. 利用可能なテーブルを確認するには、 list_tablesツールを使用します。
  4. 必要に応じてcreate_tableでテーブルを作成する
  5. write_queryでデータを挿入する
  6. read_queryでデータをクエリする

Claude Desktopでの使用

紫外線

claude_desktop_config.jsonにサーバーを追加します。

"mcpServers": { "mysql": { "command": "uv", "args": [ "--directory", "path_to_mcp_demo", "run", "python", "src/mysql/server.py", "--db-url", "mysql+pymysql://username:password@localhost/dbname" ] } }

ドッカー

claude_desktop_config.jsonにサーバーを追加します。

"mcpServers": { "mysql": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "mcp-mysql:/mcp", "mcp/mysql", "--db-url", "mysql+pymysql://username:password@localhost/dbname" ] } }

パッケージのインストール

pip を使用してパッケージをインストールすることもできます。

# Install in development mode pip install -e . # Run using the installed package mcp-mysql --db-url mysql+pymysql://username:password@localhost/dbname

カーソルIDE

CursorはAI支援IDEです。このMCPサーバーをCursorと統合することで、コーディング中にMySQLデータベースに直接クエリを実行できます。

カーソルで設定

  1. MCPサーバーを起動する
    python src/mysql/server.py
  2. カーソル設定でMCPを構成するMCP サーバーの URL を追加します:
    http://localhost:8000
  3. カーソルコマンドを使用してMCPにアクセスするカーソル エディターでは、次を使用します。
    /mcp mysql-query {"query": "SELECT * FROM users LIMIT 5"}
    パラメータ化されたクエリの場合:
    /mcp mysql-query {"query": "SELECT * FROM users WHERE age > :min_age", "params": {"min_age": 30}}

APIリファレンス

入力形式

{ "query": "SELECT * FROM users WHERE age > :min_age", "params": { "min_age": 30 } }

出力形式

{ "results": [ {"id": 1, "name": "John", "age": 35}, {"id": 2, "name": "Jane", "age": 42} ], "columns": ["id", "name", "age"], "rowcount": 2 }

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

  • このサーバーは任意のSQLクエリを許可するため、信頼できる環境で実行する必要があります。
  • 本番環境では、適切なアクセス制御と入力検証を実装します。
  • 実行できるSQLコマンドの種類を制限することを検討する
  • 重要: 機密情報を含む.envファイルをバージョン管理にコミットしないでください。

発達

プロジェクト構造

  • src/mysql/server.py : メインサーバーの実装
  • pyproject.toml : パッケージ構成
  • README.md : このドキュメント

新機能の追加

新しい機能でサーバーを拡張するには:

  1. @mcp.tool()デコレータを使用して新しいツールを追加する
  2. MySQLDatabaseクラスを使用してツールロジックを実装する
  3. 新しい機能を反映するようにドキュメントを更新する

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。

Related MCP Servers

  • -
    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
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI models to interact with both MySQL and MongoDB databases through a standardized interface, supporting comprehensive database operations including queries, schema management, and CRUD operations.
    Last updated -
    14
    6
    JavaScript
    MIT License
  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that allows AI agents to execute SQL queries against a MySQL database, supporting operations like reading data, creating tables, inserting, updating, and deleting records.
    Last updated -
    6
    419
    1
    JavaScript
    • Apple

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/caicongyang/mcp-demo'

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