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

  • A
    security
    A
    license
    A
    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 -
    5
    283
    MIT License
  • A
    security
    F
    license
    A
    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 -
    7
  • 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
    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
    288
    7
    • 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