> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# MySQL 用 vsql_mcp 拡張機能

> vsql_mcp 拡張機能は、スキーマの閲覧、読み取り専用クエリ、テーブルの許可リスト、および行数の上限を備え、Model Context Protocol 経由で MySQL を AI エージェントに提供します。

`vsql_mcp` は、サーバープロセス内のリスナーから、Model Context Protocol 経由でデータベースを AI エージェントに提供します。エージェントはスキーマの一覧表示、テーブルの説明、および読み取り専用クエリの実行ができます。書き込みは有効にするまで無効のままで、クエリ経路はあなたが指名したデータベースアカウントを通るため、エージェントはそのアカウントに付与した権限そのものを得ます。

| | |
| - | - |
| **メンテナー** | VillageSQL |
| **ソースと完全なドキュメント** | [villagesql/vsql-mcp](https://github.com/villagesql/vsql-mcp) |
| **ライセンス** | GPL-2.0 |
| **実装言語** | Rust |
| **機能** | プレビュー |

> [!WARNING]
>
> この拡張機能は 4 つのプレビュー機能を使用するため、サーバーを `--vsql_allow_preview_extensions=ON` で起動する必要があります。そうでない場合、`INSTALL EXTENSION` は拒否されます。

## インストール

`vsql_mcp` はサーバーに同梱されていないため、まずリポジトリからビルドし、生成された `vsql_mcp.veb` をシステム変数 `veb_dir` が示すディレクトリにコピーします。その後、インストールします。

```sql theme={null}
INSTALL EXTENSION vsql_mcp;
```

インストールされたことを確認します。

```sql theme={null}
SELECT EXTENSION_NAME
FROM INFORMATION_SCHEMA.EXTENSIONS
WHERE EXTENSION_NAME = 'vsql_mcp';
```

```
+----------------+
| EXTENSION_NAME |
+----------------+
| vsql_mcp       |
+----------------+
```

ビルド手順は[リポジトリ](https://github.com/villagesql/vsql-mcp)にあります。

## 追加される機能

リスナーの状態を報告する SQL 関数 `info()` を 1 つ追加します。それ以外はすべて設定と MCP トラフィックです。

```sql theme={null}
SELECT CONVERT(info() USING utf8mb4) AS info;
```

```
{"enabled":false,"http_port":0,"https_port":0,"port":3100,"protocol_version":"2025-06-18","schema":"","sessions_active":0,"ssl_port":3143,"starting":false}
```

`starting` は、`vsql_mcp.vsql_mcp_enabled` が `ON` に設定された瞬間から、25 ms ごとに訪れるバックグラウンドワーカーの次の起床までの間、`true` になります。この間の呼び出しは、リスナーがまだバインドしていないため、`"enabled":false` を報告することもあります。

| 設定 | デフォルト | 制御内容 |
| - | - | - |
| `vsql_mcp.vsql_mcp_enabled` | `OFF` | リスナーを実行するかどうか |
| `vsql_mcp.schema` | 空 | 提供するデータベース |
| `vsql_mcp.db_url` | 空 | query、write、および explain ツールが接続に使うアカウント |
| `vsql_mcp.allowed_tables` | 空 | それらのツールが触れてよいテーブル |
| `vsql_mcp.allow_write` | `OFF` | write ツールをそもそも存在させるかどうか |
| `vsql_mcp.max_rows` | `1000` | 1 つの結果の行数上限 |
| `vsql_mcp.query_timeout` | `30` | 1 つのクエリが実行できる時間 (秒) |
| `vsql_mcp.port` | `3100` | HTTP ポート |
| `vsql_mcp.ssl_port` | `3143` | HTTPS ポート |
| `vsql_mcp.ssl_cert`, `vsql_mcp.ssl_key` | 空 | HTTPS 用の証明書と鍵 |
| `vsql_mcp.require_auth` | `OFF` | リクエストにベアラートークンを必須とするかどうか |
| `vsql_mcp.bearer_token` | 空 | そのトークン |
| `vsql_mcp.session_ttl` | `1800` | アイドル状態のエージェントセッションを保持する時間 (秒) |

## 例

リスナーをデータベースに向けて起動します。

```sql theme={null}
SET GLOBAL vsql_mcp.schema = 'shop';
SET GLOBAL vsql_mcp.db_url = 'mysql://agent:secret@127.0.0.1:3306/shop';
SET GLOBAL vsql_mcp.allowed_tables = 'orders,customers';
SET GLOBAL vsql_mcp.vsql_mcp_enabled = ON;
```

エージェントは、MCP Streamable HTTP 経由で `http://127.0.0.1:3100` に接続します。各エージェント向けのクライアント設定はリポジトリにあります。

> [!WARNING]
>
> `db_url` のアカウントがエージェントにできることの上限を決めます。また、すべてのデータベースアカウントが `SHOW VARIABLES` でパスワードを含む `db_url` を読めるため、必要最小限の権限だけを付与し、本当に必要になるまで `allow_write` を無効のままにしてください。ポートが localhost 以外から到達可能になる前に、ベアラートークンを設定して `require_auth` を有効にしてください。`SHOW VARIABLES` はそのトークンもすべてのアカウントに見せます。

> [!NOTE]
>
> `SET PERSIST` で書き込んだ設定は再起動後も残りますが、`UNINSTALL EXTENSION` はそれを削除します。アンインストールと再インストールの後は、すべての設定がデフォルトに戻り、再起動しても古い値は戻りません。

## 関連項目

* [MCP 経由で MySQL を AI エージェントに提供する](https://villagesql.com/docs/en/guides/mysql-ai-agents-mcp.md) — エージェントの接続と、エージェントに見えるもの
* [拡張機能の管理](https://villagesql.com/docs/ja/extensions/managing.md) — 拡張機能の設定の読み書き方法
* [プレビュー機能](https://villagesql.com/docs/ja/extensions/build/preview-capabilities.md) — プレビューフラグが有効にするものと、それが約束するもの
* [利用可能な拡張機能](https://villagesql.com/docs/ja/extensions/catalog) — 完全なカタログ
* [villagesql/vsql-mcp](https://github.com/villagesql/vsql-mcp) — ソース、クライアントの設定、および既知の制限事項


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.