MariaDB / MySQL Database Access MCP Server について
MariaDB と MySQL のデータベースに MCP クライアントからアクセスするための MCP サーバーです。データベースやテーブルの確認、スキーマ参照、SQL 実行に対応し、既定では読み取り専用で、書き込み権限も設定できます。
主な機能
- 01データベースとテーブルの一覧
- 02テーブルスキーマの確認
- 03SQL クエリの実行
- 04既定で読み取り専用
- 05書き込みとクエリ制限の設定
活用シーン
- 01アクセス可能なデータベースの確認
- 02照会前のテーブル構造の確認
- 03MariaDB または MySQL での制限付き照会
- 04特定の書き込み操作の有効化
MCP 対応
MariaDB と MySQL のデータベース一覧、テーブル一覧、スキーマ確認、SQL 実行を MCP ツールとして公開します。既定では読み取り専用で、書き込み権限を設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mariadb-mcp-serverMARIADB_HOSTMARIADB_PORTMARIADB_USERMARIADB_PASSWORDシークレットMARIADB_DATABASEMARIADB_ALLOW_INSERTMARIADB_ALLOW_UPDATEMARIADB_ALLOW_DELETEMARIADB_TIMEOUT_MSMARIADB_ROW_LIMITローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
MariaDB / MySQL MCP サーバー
この MCP サーバーは、Claude Desktop、VS Code、その他の互換性のあるツールなどの MCP クライアントから、MariaDB および MySQL のデータベースを利用できるようにします。
次のツールを提供します:
- 利用可能なデータベースの一覧表示
- データベース内のテーブルの一覧表示
- テーブルスキーマの確認
- SQL クエリの実行
特長
- デフォルトで安全な動作:読み取り専用アクセスがデフォルトで有効です
- 許可されていないステートメントをブロックし、インジェクションのリスクを低減するクエリ検証
- 環境変数による書き込み権限の設定
- タイムアウトと行数制限による保護
- MariaDB ドライバーから返される挿入 ID と BIGINT 値の数値安全性
インストール
オプション 1:npm からインストール
npm install -g mariadb-mcp-server
オプション 2:ローカルにインストール
npm install mariadb-mcp-server
オプション 3:ソースからビルド
git clone https://github.com/rjsalgado/mariadb-mcp-server.git
cd mariadb-mcp-server
npm install
npm run build
設定
サーバーを起動する前に、次の環境変数を設定してください:
MARIADB_HOST:データベースのホストMARIADB_PORT:データベースのポート(デフォルト:3306)MARIADB_USER:データベースのユーザー名MARIADB_PASSWORD:データベースのパスワードMARIADB_DATABASE:デフォルトのデータベース名(任意)MARIADB_ALLOW_INSERT:INSERTステートメントを有効にします(true/false)MARIADB_ALLOW_UPDATE:UPDATEステートメントを有効にします(true/false)MARIADB_ALLOW_DELETE:DELETEステートメントを有効にします(true/false)MARIADB_TIMEOUT_MS:クエリのタイムアウト時間(ミリ秒、デフォルト:10000)MARIADB_ROW_LIMIT:返される行の最大数(デフォルト:1000)
例:
export MARIADB_HOST=localhost
export MARIADB_PORT=3306
export MARIADB_USER=myuser
export MARIADB_PASSWORD=mypassword
export MARIADB_DATABASE=mydb
export MARIADB_ALLOW_INSERT=false
export MARIADB_ALLOW_UPDATE=false
export MARIADB_ALLOW_DELETE=false
export MARIADB_TIMEOUT_MS=10000
export MARIADB_ROW_LIMIT=1000
MCP の設定
npm パッケージを使用
{
"mcpServers": {
"mariadb": {
"command": "npx",
"args": ["mariadb-mcp-server"],
"env": {
"MARIADB_HOST": "your-host",
"MARIADB_PORT": "3306",
"MARIADB_USER": "your-user",
"MARIADB_PASSWORD": "your-password",
"MARIADB_DATABASE": "your-database",
"MARIADB_ALLOW_INSERT": "false",
"MARIADB_ALLOW_UPDATE": "false",
"MARIADB_ALLOW_DELETE": "false",
"MARIADB_TIMEOUT_MS": "10000",
"MARIADB_ROW_LIMIT": "1000"
},
"disabled": false,
"autoApprove": []
}
}
}
ビルド済みのローカルサーバーを使用
{
"mcpServers": {
"mariadb": {
"command": "node",
"args": ["/absolute/path/to/mariadb-mcp-server/dist/index.js"],
"env": {
"MARIADB_HOST": "your-host",
"MARIADB_PORT": "3306",
"MARIADB_USER": "your-user",
"MARIADB_PASSWORD": "your-password",
"MARIADB_DATABASE": "your-database",
"MARIADB_ALLOW_INSERT": "false",
"MARIADB_ALLOW_UPDATE": "false",
"MARIADB_ALLOW_DELETE": "false",
"MARIADB_TIMEOUT_MS": "10000",
"MARIADB_ROW_LIMIT": "1000"
},
"disabled": false,
"autoApprove": []
}
}
}
利用可能なツール
サーバーは次の MCP ツールを登録します:
list_databases
設定されたユーザーがアクセスできるすべてのデータベースを一覧表示します。
list_tables
指定したデータベースのテーブルを一覧表示します。
パラメーター:
database(任意):確認するデータベース名
describe_table
指定したテーブルのスキーマを返します。
パラメーター:
database(任意):データベース名table(必須):テーブル名
execute_query
SQL クエリを実行します。
パラメーター:
database(任意):データベース名query(必須):実行する SQL ステートメント
テスト
このリポジトリには、MariaDB または MySQL のインスタンスに対してサーバーを検証するスクリプトが含まれています。
npm run test:setup
npm run test:tools
または、すべてをまとめて実行します:
npm test
注意事項
- このサーバーはデフォルトで安全に動作し、書き込みフラグを明示的に有効にしない限り、読み取り専用の操作のみを許可します。
- 書き込み操作にも、クエリ検証と実行時の制限が適用されます。
トラブルシューティング
問題が発生した場合:
- サーバーログでエラーメッセージを確認します
- MariaDB/MySQL の認証情報と接続の詳細を確認します
- MariaDB/MySQL のユーザーに適切な権限があることを確認します
- クエリが読み取り専用で、正しく書式設定されていることを確認します
着想元 https://github.com/dpflucas/mysql-mcp-server
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。