MCP Server for MySQL
NodeJS ベースの MySQL 用 MCP サーバー

MySQLデータベースへの読み取り専用アクセスを提供するモデルコンテキストプロトコル(CMP)サーバー。このサーバーにより、LLMはデータベーススキーマを検査し、読み取り専用クエリを実行できます。
インストール
鍛冶屋を使う
この MCP サーバーをインストールして構成する最も簡単な方法は、 Smitheryを使用することです。
# Install the MCP server
npx -y @smithery/cli@latest install @benborla29/mcp-server-mysql --client claude設定中に、MySQL接続の詳細を入力するよう求められます。Smitheryは自動的に以下の処理を行います。
正しい環境変数を設定する
MCPサーバーを使用するようにLLMアプリケーションを構成する
MySQLデータベースへの接続をテストする
必要に応じて役立つトラブルシューティングを提供する
MCP Getの使用
このパッケージは、 MCP Getを使用してインストールすることもできます。
npx @michaellatman/mcp-get@latest install @benborla29/mcp-server-mysqlMCP Get は、MCP サーバーの集中レジストリを提供し、インストール プロセスを簡素化します。
NPM/PNPMの使用
手動インストールの場合:
# Using npm
npm install -g @benborla29/mcp-server-mysql
# Using pnpm
pnpm add -g @benborla29/mcp-server-mysql手動でインストールした後、MCP サーバーを使用するように LLM アプリケーションを構成する必要があります (以下の構成セクションを参照)。
Related MCP server: MCP Server for MySQL
コンポーネント
ツール
mysql_クエリ
接続されたデータベースに対して読み取り専用のSQLクエリを実行する
入力:
sql(文字列): 実行するSQLクエリすべてのクエリは読み取り専用トランザクション内で実行されます
安全なパラメータ処理のための準備済みステートメントをサポート
設定可能なクエリタイムアウトと結果のページ区切り
組み込みクエリ実行統計
リソース
サーバーは包括的なデータベース情報を提供します:
テーブルスキーマ
各テーブルのJSONスキーマ情報
列名とデータ型
インデックス情報と制約
外部キー関係
表の統計と指標
データベースのメタデータから自動的に検出
セキュリティ機能
準備済みステートメントによるSQLインジェクション防止
クエリのホワイトリスト/ブラックリスト機能
クエリ実行のレート制限
クエリの複雑さの分析
設定可能な接続暗号化
読み取り専用トランザクションの強制
パフォーマンスの最適化
最適化された接続プール
クエリ結果のキャッシュ
大規模な結果セットのストリーミング
クエリ実行プラン分析
設定可能なクエリタイムアウト
監視とデバッグ
包括的なクエリログ
パフォーマンスメトリックの収集
エラーの追跡と報告
ヘルスチェックエンドポイント
クエリ実行統計
構成
Smitheryによる自動構成
Smitheryを使用してインストールした場合、設定は既に完了しています。以下のコマンドで設定を確認または変更できます。
smithery configure @benborla29/mcp-server-mysqlClaudeデスクトップアプリの手動設定
Claude デスクトップ アプリ用に MCP サーバーを手動で構成するには、 claude_desktop_config.jsonファイル (通常はユーザー ディレクトリにあります) に次のコードを追加します。
{
"mcpServers": {
"mcp_server_mysql": {
"command": "npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "",
"MYSQL_DB": "db_name"
}
}
}
}db_nameをデータベース名に置き換えるか、空白のままにしてすべてのデータベースにアクセスします。
高度な設定オプション
MCP サーバーの動作をさらに制御するには、次の高度な構成オプションを使用できます。
{
"mcpServers": {
"mcp_server_mysql": {
"command": "/path/to/npx/binary/npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
// Basic connection settings
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "",
"MYSQL_DB": "db_name",
"PATH": "/path/to/node/bin:/usr/bin:/bin",
// Performance settings
"MYSQL_POOL_SIZE": "10",
"MYSQL_QUERY_TIMEOUT": "30000",
"MYSQL_CACHE_TTL": "60000",
// Security settings
"MYSQL_RATE_LIMIT": "100",
"MYSQL_MAX_QUERY_COMPLEXITY": "1000",
"MYSQL_SSL": "true",
// Monitoring settings
"MYSQL_ENABLE_LOGGING": "true",
"MYSQL_LOG_LEVEL": "info",
"MYSQL_METRICS_ENABLED": "true"
}
}
}
}環境変数
基本接続
MYSQL_HOST: MySQLサーバーのホスト(デフォルト: "127.0.0.1")MYSQL_PORT: MySQLサーバーのポート(デフォルト: "3306")MYSQL_USER: MySQLユーザー名(デフォルト: "root")MYSQL_PASS: MySQLパスワードMYSQL_DB: ターゲットデータベース名
パフォーマンス構成
MYSQL_POOL_SIZE: 接続プールのサイズ(デフォルト: "10")MYSQL_QUERY_TIMEOUT: クエリタイムアウト(ミリ秒)(デフォルト: "30000")MYSQL_CACHE_TTL: キャッシュの有効期間(ミリ秒)(デフォルト: "60000")
セキュリティ構成
MYSQL_RATE_LIMIT: 1分あたりの最大クエリ数(デフォルト: "100")MYSQL_MAX_QUERY_COMPLEXITY: クエリの複雑さの最大スコア(デフォルト: "1000")MYSQL_SSL: SSL/TLS暗号化を有効にする(デフォルト: "false")
監視構成
MYSQL_ENABLE_LOGGING: クエリのログ記録を有効にする (デフォルト: "false")MYSQL_LOG_LEVEL: ログレベル(デフォルト: "info")MYSQL_METRICS_ENABLED: パフォーマンスメトリックを有効にする (デフォルト: "false")
テスト
データベースのセットアップ
テストを実行する前に、テスト データベースをセットアップし、テスト データをシードする必要があります。
テストデータベースとユーザーを作成する
-- Connect as root and create test database CREATE DATABASE IF NOT EXISTS mcp_test; -- Create test user with appropriate permissions CREATE USER IF NOT EXISTS 'mcp_test'@'localhost' IDENTIFIED BY 'mcp_test_password'; GRANT ALL PRIVILEGES ON mcp_test.* TO 'mcp_test'@'localhost'; FLUSH PRIVILEGES;データベースセットアップスクリプトを実行する
# Run the database setup script pnpm run setup:test:dbこれにより、必要なテーブルとシードデータが作成されます。スクリプトは
scripts/setup-test-db.tsにあります。テスト環境を構成するプロジェクト ルートに
.env.testファイルを作成します。MYSQL_HOST=127.0.0.1 MYSQL_PORT=3306 MYSQL_USER=mcp_test MYSQL_PASS=mcp_test_password MYSQL_DB=mcp_testpackage.json スクリプトを更新する次のスクリプトを package.json に追加します。
{ "scripts": { "setup:test:db": "ts-node scripts/setup-test-db.ts", "pretest": "pnpm run setup:test:db", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage" } }
テストの実行
このプロジェクトには、機能性と信頼性を確保するための包括的なテスト スイートが含まれています。
# First-time setup
pnpm run setup:test:db
# Run all tests
pnpm testトラブルシューティング
トラブルシューティングにSmiseryを使用する
Smithery を使用してインストールした場合は、組み込みの診断機能を使用できます。
# Check the status of your MCP server
smithery status @benborla29/mcp-server-mysql
# Run diagnostics
smithery diagnose @benborla29/mcp-server-mysql
# View logs
smithery logs @benborla29/mcp-server-mysqlトラブルシューティングにMCP Getを使用する
MCP Get を使用してインストールした場合:
# Check the status
mcp-get status @benborla29/mcp-server-mysql
# View logs
mcp-get logs @benborla29/mcp-server-mysqlよくある問題
接続の問題
MySQLサーバーが実行中でアクセス可能であることを確認する
資格情報と権限を確認する
SSL/TLS が有効になっている場合は、設定が正しいことを確認します。
MySQLクライアントで接続してアクセスを確認してください
パフォーマンスの問題
接続プールのサイズを調整する
クエリのタイムアウト値を構成する
必要に応じてクエリキャッシュを有効にする
クエリの複雑さの設定を確認する
サーバーリソースの使用状況を監視する
セキュリティ制限
レート制限設定を確認する
クエリのホワイトリスト/ブラックリスト設定を確認する
SSL/TLS設定を確認する
ユーザーに適切なMySQL権限があることを確認する
パスの解決「MCP サーバー mcp-server-mysql に接続できませんでした」というエラーが発生した場合は、必要なすべてのバイナリのパスを明示的に設定します。
{
"env": {
"PATH": "/path/to/node/bin:/usr/bin:/bin"
}
}認証の問題
MySQL 8.0以降では、サーバーが
caching_sha2_password認証プラグインをサポートしていることを確認してください。MySQLユーザーが正しい認証方法で設定されているか確認する
必要に応じて、レガシー認証を使用してユーザーを作成してみてください。
CREATE USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
貢献
貢献を歓迎します!お気軽にhttps://github.com/benborla/mcp-server-mysqlにプルリクエストを送信してください。
開発セットアップ
リポジトリをクローンする
依存関係をインストールします:
pnpm installプロジェクトをビルドします:
pnpm run buildテストを実行:
pnpm test
プロジェクトロードマップ
MCPサーバーの機能強化に積極的に取り組んでいます。計画されている機能の詳細については、 CHANGELOG.mdをご覧ください。
準備されたステートメントによるクエリ機能の強化
高度なセキュリティ機能
パフォーマンスの最適化
包括的な監視
拡張スキーマ情報
これらのいずれかの分野に貢献したい場合は、GitHub の問題を確認するか、新しい問題を開いてアイデアについて話し合ってください。
変更の送信
リポジトリをフォークする
機能ブランチを作成します:
git checkout -b feature/your-feature-name変更をコミットします:
git commit -am 'Add some feature'ブランチにプッシュ:
git push origin feature/your-feature-nameプルリクエストを送信する
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。詳細はLICENSEファイルをご覧ください。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/zhaoxin34/mcp-server-mysql'
If you have feedback or need assistance with the MCP directory API, please join our Discord server