remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Provides read-only access to MySQL databases, allowing inspection of database schemas and execution of read-only SQL queries with features like prepared statements, connection pooling, and comprehensive table schema information.
NodeJS ベースの MySQL 用 MCP サーバー
MySQLデータベースへの読み取り専用アクセスを提供するモデルコンテキストプロトコル(CMP)サーバー。このサーバーにより、LLMはデータベーススキーマを検査し、読み取り専用クエリを実行できます。
インストール
鍛冶屋を使う
この MCP サーバーをインストールして構成する最も簡単な方法は、 Smitheryを使用することです。
設定中に、MySQL接続の詳細を入力するよう求められます。Smitheryは自動的に以下の処理を行います。
- 正しい環境変数を設定する
- MCPサーバーを使用するようにLLMアプリケーションを構成する
- MySQLデータベースへの接続をテストする
- 必要に応じて役立つトラブルシューティングを提供する
MCP Getの使用
このパッケージは、 MCP Getを使用してインストールすることもできます。
MCP Get は、MCP サーバーの集中レジストリを提供し、インストール プロセスを簡素化します。
NPM/PNPMの使用
手動インストールの場合:
手動でインストールした後、MCP サーバーを使用するように LLM アプリケーションを構成する必要があります (以下の構成セクションを参照)。
コンポーネント
ツール
- mysql_クエリ
- 接続されたデータベースに対して読み取り専用のSQLクエリを実行する
- 入力:
sql
(文字列): 実行するSQLクエリ - すべてのクエリは読み取り専用トランザクション内で実行されます
- 安全なパラメータ処理のための準備済みステートメントをサポート
- 設定可能なクエリタイムアウトと結果のページ区切り
- 組み込みクエリ実行統計
リソース
サーバーは包括的なデータベース情報を提供します:
- テーブルスキーマ
- 各テーブルのJSONスキーマ情報
- 列名とデータ型
- インデックス情報と制約
- 外部キー関係
- 表の統計と指標
- データベースのメタデータから自動的に検出
セキュリティ機能
- 準備済みステートメントによるSQLインジェクション防止
- クエリのホワイトリスト/ブラックリスト機能
- クエリ実行のレート制限
- クエリの複雑さの分析
- 設定可能な接続暗号化
- 読み取り専用トランザクションの強制
パフォーマンスの最適化
- 最適化された接続プール
- クエリ結果のキャッシュ
- 大規模な結果セットのストリーミング
- クエリ実行プラン分析
- 設定可能なクエリタイムアウト
監視とデバッグ
- 包括的なクエリログ
- パフォーマンスメトリックの収集
- エラーの追跡と報告
- ヘルスチェックエンドポイント
- クエリ実行統計
構成
Smitheryによる自動構成
Smitheryを使用してインストールした場合、設定は既に完了しています。以下のコマンドで設定を確認または変更できます。
Claudeデスクトップアプリの手動設定
Claude デスクトップ アプリ用に MCP サーバーを手動で構成するには、 claude_desktop_config.json
ファイル (通常はユーザー ディレクトリにあります) に次のコードを追加します。
db_name
をデータベース名に置き換えるか、空白のままにしてすべてのデータベースにアクセスします。
高度な設定オプション
MCP サーバーの動作をさらに制御するには、次の高度な構成オプションを使用できます。
環境変数
基本接続
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")
テスト
データベースのセットアップ
テストを実行する前に、テスト データベースをセットアップし、テスト データをシードする必要があります。
- テストデータベースとユーザーを作成するCopy
- データベースセットアップスクリプトを実行するこれにより、必要なテーブルとシードデータが作成されます。スクリプトはCopy
scripts/setup-test-db.ts
にあります。 - テスト環境を構成するプロジェクト ルートに
.env.test
ファイルを作成します。Copy - package.json スクリプトを更新する次のスクリプトを package.json に追加します。Copy
テストの実行
このプロジェクトには、機能性と信頼性を確保するための包括的なテスト スイートが含まれています。
トラブルシューティング
トラブルシューティングにSmiseryを使用する
Smithery を使用してインストールした場合は、組み込みの診断機能を使用できます。
トラブルシューティングにMCP Getを使用する
MCP Get を使用してインストールした場合:
よくある問題
- 接続の問題
- MySQLサーバーが実行中でアクセス可能であることを確認する
- 資格情報と権限を確認する
- SSL/TLS が有効になっている場合は、設定が正しいことを確認します。
- MySQLクライアントで接続してアクセスを確認してください
- パフォーマンスの問題
- 接続プールのサイズを調整する
- クエリのタイムアウト値を構成する
- 必要に応じてクエリキャッシュを有効にする
- クエリの複雑さの設定を確認する
- サーバーリソースの使用状況を監視する
- セキュリティ制限
- レート制限設定を確認する
- クエリのホワイトリスト/ブラックリスト設定を確認する
- SSL/TLS設定を確認する
- ユーザーに適切なMySQL権限があることを確認する
- パスの解決「MCP サーバー mcp-server-mysql に接続できませんでした」というエラーが発生した場合は、必要なすべてのバイナリのパスを明示的に設定します。
- 認証の問題
- MySQL 8.0以降では、サーバーが
caching_sha2_password
認証プラグインをサポートしていることを確認してください。 - MySQLユーザーが正しい認証方法で設定されているか確認する
- 必要に応じて、レガシー認証を使用してユーザーを作成してみてください。Copy
- MySQL 8.0以降では、サーバーが
貢献
貢献を歓迎します!お気軽に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
MySQL データベースへの読み取り専用アクセスを提供するモデル コンテキスト プロトコル サーバー。これにより、LLM はデータベース スキーマを検査し、読み取り専用クエリを実行できるようになります。