Mcp Mysql Server について
mcp-mysql-server は、MySQL データベース操作を提供する MCP サーバーで、AI モデルが標準化されたインターフェースを通じてデータベースを照会・更新できます。プリペアドステートメントや EXPLAIN 分析を備え、AI クライアントから MySQL にアクセスしたい開発者向けです。
主な機能
- 01MySQL データベースへの接続
- 02SELECT と INSERT/UPDATE/DELETE の実行
- 03プリペアドステートメントのパラメーター対応
- 04テーブル一覧と構造の確認
- 05SHOW 文と EXPLAIN による実行計画の分析
活用シーン
- 01AI クライアントから MySQL 内の業務データを照会する
- 02低速なクエリの実行計画を分析する
- 03データベースの状態と変数設定を確認する
MCP 対応
MCP サーバーであり、接続、クエリ実行、テーブル構造の確認、SHOW、EXPLAIN などのツールをクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| host | string | はい | データベースホスト |
| user | string | はい | データベースユーザー |
| password | string | はい | データベースパスワード |
| database | string | はい | データベース名 |
| port | number | いいえ | データベースポート(任意) |
詳細
@fhuang/mcp-mysql-server
[英語 | 中国語ドキュメント]
中国語ドキュメントについては、README.zh-CN.mdをご覧ください。
MySQL データベースの操作を提供する Model Context Protocol サーバーです。このサーバーを使用すると、AI モデルが標準化されたインターフェースを通じて MySQL データベースとやり取りできます。
インストール
Smithery 経由でインストール
Smithery 経由で Claude Desktop 用の MySQL Server を自動的にインストールするには:
npx -y @smithery/cli install @fhuang/mcp-mysql-server --client claude
手動インストール
npx @fhuang/mcp-mysql-server
設定
MCP 設定ファイルで、以下の環境変数を設定する必要があります。
推奨設定
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@fhuang/mcp-mysql-server", "mysql://user:password@localhost:port/database"],
}
}
}
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@fhuang/mcp-mysql-server"],
"env": {
"MYSQL_HOST": "your_host",
"MYSQL_USER": "your_user",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
評価の実行
評価パッケージは MCP クライアントを読み込み、その後 index.ts ファイルを実行するため、テストのたびに再ビルドする必要はありません。npx コマンドの前に環境変数を指定して読み込めます。詳しいドキュメントはこちらをご覧ください。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
利用可能なツール
1. connect_db
指定された認証情報を使用して、MySQL データベースへの接続を確立します。
use_mcp_tool({
server_name: "mysql",
tool_name: "connect_db",
arguments: {
host: "localhost",
user: "your_user",
password: "your_password",
database: "your_database"
}
});
2. query
オプションのプリペアドステートメントパラメーターを使用して、SELECT クエリを実行します。
use_mcp_tool({
server_name: "mysql",
tool_name: "query",
arguments: {
sql: "SELECT * FROM users WHERE id = ?",
params: [1]
}
});
3. execute
オプションのプリペアドステートメントパラメーターを使用して、INSERT、UPDATE、または DELETE クエリを実行します。
use_mcp_tool({
server_name: "mysql",
tool_name: "execute",
arguments: {
sql: "INSERT INTO users (name, email) VALUES (?, ?)",
params: ["John Doe", "[email protected]"]
}
});
4. list_tables
接続中のデータベースにあるすべてのテーブルを一覧表示します。
use_mcp_tool({
server_name: "mysql",
tool_name: "list_tables",
arguments: {}
});
5. describe_table
特定のテーブルの構造を取得します。
use_mcp_tool({
server_name: "mysql",
tool_name: "describe_table",
arguments: {
table: "users"
}
});
6. show_statement
SHOW STATUS、SHOW VARIABLES などの SHOW ステートメントを実行します。
use_mcp_tool({
server_name: "mysql",
tool_name: "show_statement",
arguments: {
sql: "SHOW VARIABLES"
}
});
7. explain
EXPLAIN を使用して SQL クエリのパフォーマンスを分析します。アクセス種別、検査対象の行数、最適化の候補など、実行計画の詳細を返します。
use_mcp_tool({
server_name: "mysql",
tool_name: "explain",
arguments: {
sql: "SELECT * FROM users WHERE id = ?"
}
});
機能
- 自動クリーンアップによる安全な接続処理
- クエリパラメーター向けのプリペアドステートメント対応
- 包括的なエラー処理と検証
- TypeScript 対応
- 自動接続管理
セキュリティ
- SQL インジェクションを防ぐためにプリペアドステートメントを使用
- 環境変数による安全なパスワード管理に対応
- 実行前にクエリを検証
- 処理完了時に接続を自動的に閉じる
エラー処理
このサーバーは、次のような一般的な問題について詳細なエラーメッセージを表示します。
- 接続失敗
- 無効なクエリ
- パラメーター不足
- データベースエラー
貢献
貢献を歓迎します。https://github.com/huangfeng19820712/mcp-mysql-server へのプルリクエストをお気軽にお送りください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。