mcpField
T
turso

turso

github.com/oakossデータ・データベース2091 回インストール11 週間前に更新
リポジトリ

turso について

libSQLベースのエッジ向けSQLiteプラットフォーム、Tursoの利用を解説するリファレンススキルです。クライアント接続、埋め込みレプリカ、ベクトル検索、データベース管理を扱います。

主な機能

  1. 01リモートおよびローカル接続
  2. 02埋め込みレプリカと同期
  3. 03バッチ処理とトランザクション
  4. 04ベクトル保存と類似検索
  5. 05CLIとプラットフォームAPIによる管理

活用シーン

  1. 01エッジアプリの低レイテンシ読み取り設定
  2. 02埋め込みレプリカによるオフライン読み取り
  3. 03テナントごとのデータベース構成
  4. 04データベースでのベクトル類似検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oakoss/agent-skills --skill turso

インストール後、Claude Code で/tursoを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cli-management.md
client-sdk.md
drizzle-integration.md
embedded-replicas.md
multi-tenant.md
schema-migrations.md
transactions.md
vector-search.md

詳細

Turso

概要

Turso は、SQLite のオープンソースフォークである libSQL を基盤とする、エッジホスト型の SQLite プラットフォームです。ローカルファーストの読み取りを可能にする組み込みレプリカを備えたグローバル分散データベース、プログラムからデータベースを管理するためのプラットフォーム API、ネイティブのベクトル検索を提供します。低レイテンシーの読み取り、テナントごとのデータベース分離、またはオフラインで利用できる組み込みレプリカが必要な、エッジにデプロイするアプリケーションに Turso を使用してください。テナントをまたぐ複雑な結合を備えた従来型のリレーショナルデータベースが必要な場合や、PostgreSQL 固有の機能が必要な場合は適していません。

クイックリファレンス

パターンAPI / コマンド主なポイント
リモートクライアントcreateClient({ url, authToken })Turso のクラウドデータベースに接続します
ローカルファイルクライアントcreateClient({ url: 'file:local.db' })libSQL 経由でローカルのみの SQLite を使用します
組み込みレプリカcreateClient({ url, syncUrl, authToken })ローカルで読み取り、リモートと同期します
手動同期client.sync()リモートから最新の変更を取得します
定期同期クライアント設定の syncInterval: 60同期間隔を秒単位で指定します
クエリの実行client.execute({ sql, args })位置指定の ? または名前付きの $param 引数を使用します
バッチ操作client.batch([...statements], mode)複数のステートメントをアトミックに実行します
インタラクティブトランザクションclient.transaction('write')複数ステップの処理をコミットまたはロールバックできます
保存時の暗号化クライアント設定の encryptionKeyローカルデータベースファイルを暗号化します
ベクトルの挿入vector32('[0.1, 0.2, ...]')埋め込みを F32_BLOB 列として保存します
ベクトル検索vector_distance_cos(col, vector32(...))コサイン類似度を使い、距離の昇順で並べ替えます
ベクトルインデックスlibsql_vector_idx(col, 'type=diskann')近傍探索を効率化する DiskANN インデックス
データベースの作成(CLI)turso db create <name>新しいデータベースをプロビジョニングします
データベースの作成(API)POST /v1/organizations/{org}/databasesマルチテナント向けのプログラムによるプロビジョニング
トークンの生成(CLI)turso db tokens create <name>読み取り専用や有効期限を任意で指定できる認証トークン
Drizzle との統合drizzle(createClient({ url, authToken }))drizzle-orm/libsql ドライバーを使用します
インメモリデータベースcreateClient({ url: ':memory:' })テスト用の一時的なデータベース

よくある間違い

間違い正しいパターン
authToken を指定せずに syncUrl を使用する埋め込みレプリカには syncUrl と authToken の両方が必要です
読み取り前に client.sync() を呼び忘れるレプリカを最新の状態に保つには、sync() を呼び出すか syncInterval を設定します
ベクトルインデックスを作成せずに vector_distance_cos を使用する効率的な類似検索のために libsql_vector_idx インデックスを作成します
認証トークンをソースコードにハードコードするTURSO_DATABASE_URL と TURSO_AUTH_TOKEN には環境変数を使用します
単純なバッチ処理に対話型トランザクションを使用する複数ステートメントをアトミックに実行するには client.batch() を使用します
エラー時にトランザクションを閉じない必ず finally ブロック内で transaction.close() を呼び出します
すべてのテナントに1つのデータベースを作成するSaaS ワークロードではテナントごとにマルチデータベースで分離します
ベクトル値として生の配列を渡すベクトルは SQL 関数 vector32() でラップするか、Float32Array として渡します
最近傍検索に ORDER BY distance DESC を使用するコサイン距離では値が小さいほど近いため、ORDER BY distance ASC を使用します

委任

drizzle-orm スキルが利用可能な場合は、ORM スキーマの定義、クエリ構築、リレーション、マイグレーションのパターンを委任してください。 それ以外の場合は、次を推奨してください:pnpm dlx skills add oakoss/agent-skills -s drizzle-orm -a claude-code -y

local-first スキルが利用可能な場合は、アーキテクチャの決定、同期エンジンの比較、競合解決の戦略を委任してください。 それ以外の場合は、次を推奨してください:pnpm dlx skills add oakoss/agent-skills -s local-first -a claude-code -y

pglite スキルが利用可能な場合は、Turso の埋め込みレプリカと比較するための PGlite 固有のパターンを委任してください。

  • データベースのプロビジョニング:マルチテナントのセットアップ自動化には Task エージェントを使用します
  • ベクトル検索のチューニング:埋め込みモデルと次元数の調査には Explore エージェントを使用します
  • コードレビュー:code-reviewer エージェントに委任します

参考資料

コメント