valv icon

valv

valvは、構造化クエリを検証し、呼び出し元ごとのポリシーを適用してSQLを実行し、AIエージェントに安全で限定的なデータベースアクセスを提供する開発者向けツールです。

valv

AI エージェントのための安全なデータベースアクセス

valv は、AI エージェントに安全で限定的なデータベースアクセスを与えるための開発者向けツールです。モデルは生の SQL を書かず、代わりに構造化クエリを出力します。valv はそれをライブスキーマに対して検証し、現在の呼び出し元に合わせてスコープを設定し、SQL に変換して実行します。

この製品は、エージェントがデータベース内の実データにアクセスする必要がある一方で、データベースのすべてを見せたくない場面向けに作られています。ポリシーはコードで定義され、アクセスは deny-by-default で、同じクエリでも呼び出し元のテナントやロールによって異なる結果を返せます。

valv が選ばれる理由

サーバー側の検証

エージェントは生の SQL の代わりに構造化クエリを送信します。valv はサーバー側で SQL が実行される前に、それを再構築し、ライブスキーマに照らして再検証します。

呼び出し元ごとのポリシー

ポリシーは TypeScript で記述され、呼び出し元ごとに行と列の範囲を制御できます。ドキュメントでは、推奨される既定値としてすべて拒否し、アクセスは明示的に追加する方式が説明されています。

分析向けのクエリ

クエリ層はフィルタ、集計、時系列、トップ N クエリをサポートするため、エージェントは単純な参照以上の問い合わせを行えます。

トークンを意識した出力制御

レスポンスには上限があるため、広範なクエリでもモデルが扱える以上のデータは返りません。ホームページではこれをトークンを意識した出力制御と説明しています。

データベースアダプター

valv は Postgres、MySQL、SQLite、ClickHouse に対応しており、ドキュメントでは Prisma と ClickHouse 向けのアダプターが説明されています。

エージェントと MCP の統合

Vercel AI SDK にツールを渡したり、MCP 経由で公開したりできるため、同じデータベースポリシーを異なるエージェント構成で使えます。

valv の適用領域

  • テナント単位のアプリ内アシスタント

    現在のテナントまたはユーザーのコンテキストに行と列のアクセスを紐づけたまま、アプリケーションエージェントにデータベースを基にした回答を追加します。

  • 分析クエリ

    モデルに制限のない SQL を公開せずに、分析担当者が集計、フィルタ、時系列、またはトップ N の出力を要求できるようにします。

  • MCP ベースのエージェントアクセス

    Claude Code のようなツールからノーコードでアクセスしたい場合に、MCP を通じてデータベースをコーディングエージェントに公開します。

  • 呼び出し元ごとのポリシー適用

    データベースアクセスルールをコードで一元化し、異なる呼び出し元が同じ質問に対して異なる結果を見られるようにします。

Pros and Cons

Pros

  • モデルが生の SQL を発行するのを防ぎ、インジェクション型の失敗への露出を減らします。
  • チームは TypeScript で行と列のアクセスを定義でき、ポリシーはリクエストごとに適用されます。
  • 集計や時系列などの分析クエリパターンをサポートし、単純なキー参照だけに限定されません。
  • 複数のデータベースで動作し、アプリ内でも MCP 経由でも利用できます。
  • deny-by-default のアクセスを採用しているため、明示的に許可されるまでデータは隠されたままです。

Cons

  • ソース資料には価格の詳細が含まれていないため、利用可能なページだけでは商用モデルが不明です。
  • 対応データベースはホームページとドキュメントに記載されていますが、ソースでは Prisma と ClickHouse のアダプター詳細のみが示されており、セットアップの違いまでは十分に文書化されていません。
  • ドキュメントには MCP と AI SDK の統合が記載されていますが、利用可能なソースには実装手順の全体像や、境界条件での制限は示されていません。

FAQ

valvはどのように動作しますか?

valvはモデルとデータベースの間に入り込みます。モデルは構造化クエリを出力し、valvがスキーマに照らして検証し、呼び出し元ごとのポリシーを適用し、SQLに変換して実行します。

一般的なユースケースは何ですか?

ソース資料では、エージェント向けのデータベースアクセス、行と列のスコープ設定、フィルタや集計などの分析クエリ、そして Vercel AI SDK や MCP での利用が挙げられています。より多くの業種別ユースケースは示されていません。

安全ですか?

valv は、モデルが生の SQL を一切書かず、定義したポリシーの外側のデータにアクセスできないように設計されています。SQL が生成される前にサーバー側でクエリを再構築して再検査し、推奨される開始設定として deny-by-default のアクセスを採用しています。

生の SQL と比べてどうですか?

生の SQL ツールと比べると、valv はエージェント主導のクエリの柔軟性を保ちながら、サーバー側の検証とポリシーによるスコープ設定を追加します。ドキュメントでは、これを制限のない SQL と、範囲の狭い手書きエンドポイントの両方と対比しています。

Quick Facts

カテゴリ
開発者向けツール
主な用途
AI エージェントのための安全なデータベースアクセス
対応データベース
Postgres, MySQL, SQLite, ClickHouse
統合方法
Vercel AI SDK, MCP
ポリシーモデル
deny-by-default アクセスを備えた TypeScript ポリシー
ソース URL
valv.sh