mcp-mysql-client
MySQL MCP
MySQL MCP は、AI アプリケーションを 1 つの MySQL または MariaDB データベースに接続します。構造を確認したり、自然言語でデータに質問したり、遅いクエリを調査したり、そして自分で許可した場合にはデータを変更したりできます。
サーバーは 1 つのデータベースにバインドされています。データベースは構成で指定され、どのツールも別のデータベースにアクセスできません。デフォルトでは読み取り専用です。
6 つのツール。 接続と権限、テーブル一覧、テーブル構造、読み取りクエリ、クエリプラン、変更クエリ。
クエリの種類はサーバーが決定します。 SQL は接続前に解析されます。書き込み権限が有効でも、読み取りツールでの
DELETEは拒否されます。読み取りは書き込みできません。 読み取りクエリは
START TRANSACTION READ ONLY内で実行されます。SQL 解析を回避しようとしても、MySQL 自体が書き込みを拒否します。応答がコンテキストをあふれさせません。 行はストリームで読み取られ、すべてをダウンロードするのではなく制限で打ち切られます。応答には正直な
truncatedフラグが含まれます。権限は外部からのみ。 INSERT、UPDATE、DELETE は環境変数で有効になり、再起動が必要です。ダイアログから取得することはできません。DDL は常に使用できません。
データを読み取るだけのクエリから始めましょう。
データベースの構造を表示して、先週追加されたレコードの数を数えてください。
クイックスタート
Claude Code:
claude mcp add mysql-myapp \
-e MYSQL_HOST=db.example.com \
-e MYSQL_USER=myapp_ro \
-e MYSQL_PASS='пароль' \
-e MYSQL_DB=myapp \
-e MYSQL_SSL=true \
-- npx -y mcp-mysql-clientまたは .mcp.json / claude_desktop_config.json 内:
{
"mcpServers": {
"mysql-myapp": {
"command": "npx",
"args": ["-y", "mcp-mysql-client"],
"env": {
"MYSQL_HOST": "db.example.com",
"MYSQL_PORT": "3306",
"MYSQL_USER": "myapp_ro",
"MYSQL_PASS": "пароль",
"MYSQL_DB": "myapp",
"MYSQL_SSL": "true"
}
}
}
}1 つのサーバーは 1 つのデータベースに接続します。複数のデータベースが必要な場合は、それぞれの資格情報を追加してください。これにより権限が分離され、テストデータベースに接続されたサーバーは本番データベースを物理的に認識できません。
Related MCP server: MySQL MCP Server
実行できること
クエリ | サーバーの動作 |
「このデータベースには何がある?」 |
|
「orders テーブルの構造は?」 |
|
「7月の注文数と合計金額は?」 |
|
「このクエリが遅いのはなぜ?」 |
|
「誰として接続していて、何ができる?」 |
|
「キャンセルされた注文にステータスを設定して」 |
|
変更できること
デフォルトでは何も変更できません。サーバーは読み取り専用モードで起動します。書き込みは操作ごとに有効にします。
"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "false"それでも不可能なこと:
DDL —
CREATE、ALTER、DROP、TRUNCATE、RENAME— いかなる設定でも不可。データベースの変更、
SET、CALL、PREPARE、LOAD DATA、ロック、GRANTなど、次のクエリの意味を変えたり、未検証のテキストを実行したりするもの。SELECT ... INTO OUTFILE— データベースサーバーへのファイル書き込み。WHERE句のないUPDATEおよびDELETE— 呼び出しでallow_full_table=trueの明示的な確認が必要。1 回の呼び出しでの複数ステートメント — 実行されるのは正確に 1 つのみ。
MySQL の権限は、これに加えて別の制限です。ALLOW_UPDATE_OPERATION を許可しても、GRANT UPDATE を持たないユーザーには何も追加されません。実践的な方法は、root ではなく、最小限の権限を持つ専用ユーザーを使用することです。
環境変数
変数 | デフォルト | 説明 |
|
| サーバーのホスト |
|
| ポート |
| — | host/port の代わりの Unix ソケット |
| — | ユーザー (必須) |
| — | パスワード ( |
| — | 変数の代わりにファイルからパスワードを読み取る |
| — | データベース (必須、 |
|
| TLS を要求 |
| — | ルート証明書へのパス。これだけで TLS が有効になります |
|
| サーバー証明書を検証 |
|
| INSERT を許可 |
|
| UPDATE を許可 |
|
| DELETE を許可 |
|
| 1 回の応答の最大行数 |
|
| クエリのタイムアウト |
|
| 接続タイムアウト |
|
| プール内の接続数 |
|
| 接続断とデッドロック時の再試行 |
|
| 読み取りを読み取り専用トランザクションで実行 |
| — |
|
MCP クライアントの構成では、パスワードは平文で保存されます。MYSQL_PASS_FILE を使用すると、適切な権限を持つファイルにパスワードを保持できます。
@benborla29/mcp-server-mysql からの移行
変数名は同じなので、起動コマンドのパッケージを置き換えるだけです。
- "args": ["-y", "@benborla29/mcp-server-mysql"]
+ "args": ["-y", "mcp-mysql-client"]動作の変更点:
MYSQL_DBは必須です。サーバーは常に 1 つのデータベースにバインドされます。応答は
MYSQL_MAX_ROWSに制限され、truncatedとマークされます。書き込み権限が有効でも DDL は使用できません。
WHERE句のないUPDATE/DELETEは呼び出しでの確認が必要です。ツールセットが異なります:
query、execute、explain、list_tables、describe_table、server_info。
診断
まず server_info を確認します。サーバーが何に接続されているか、MySQL ユーザーが持つ権限、有効な制限が表示されます。
症状 | 原因 |
|
|
| ユーザーは存在するが、データベースの権限がない |
| 操作またはテーブルに対する |
| サーバーが TLS を要求: |
| ホスト、ポート、ファイアウォール、または VPN がオフ |
|
|
サーバーが接続できない | 構成エラーはダイアログに直接表示されます。サーバーは資格情報なしでも起動し、何が不足しているかを説明します。 |
技術ドキュメント
ライセンス
Maintenance
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI agents to safely explore and interact with MySQL databases through dynamic tool generation from stored procedures. It provides database discovery capabilities and intelligent procedure categorization while enforcing security restrictions to prevent data modification.
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to safely interact with MySQL/MariaDB databases, supporting read-only queries by default with optional write operations and access control.MIT
- AlicenseAqualityDmaintenanceEnables AI agents to query and manage MySQL databases through a structured MCP interface, supporting SQL execution, table inspection, and database operations.914MIT
- AlicenseNot gradedqualityDmaintenanceA robust MCP server for interacting with MySQL databases through AI agents, providing tools for schema analysis, query execution, and dynamic connection management with read-only security.61MIT
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/gistrec/mcp-mysql-client'
If you have feedback or need assistance with the MCP directory API, please join our Discord server