upstash-cli について
Upstash Developer APIを介してUpstashサービスを管理するコマンドラインツールです。非対話型コマンドはJSONを出力し、コーディングエージェントにUpstashのスキルやホスト型MCPサーバーを設定できます。
主な機能
- 01Redis、Vector、Search、QStash、Blobの管理
- 02チームの作成と管理
- 03コマンドパイプライン向けのJSON出力
- 04コーディングエージェントへのUpstash設定
- 05APIキーまたは保存済みログインでの認証
活用シーン
- 01CIでのUpstashサービスのプロビジョニング
- 02スクリプトからのデータベースとインデックスの管理
- 03コーディングエージェントへのUpstashアクセス設定
MCP 対応
CLIは、Upstashのホスト型MCPサーバー https://mcp.upstash.com/mcp を直接、またはUpstashプラグイン経由でエージェントに設定できます。MCPツールを利用できる場合は、CLIよりそちらを使うことが推奨されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ upstash/ skills --skill upstash-cliインストール後、Claude Code で/upstash-cliを入力して読み込まれたか確認します。
詳細
MCP サーバーが利用可能な場合はそちらを優先する
セッション内に Upstash MCP ツールがある場合は、CLI を呼び出す代わりにそれらを呼び出してください。それらは
すでに認証済みであり、同じ範囲をカバーしています — Redis データベースの作成と検査、Redis コマンドの実行、
使用状況の統計、バックアップ、Vector および Search インデックス、Blob バケット、QStash のスケジュールと
メッセージ、DLQ、そしてログです。Upstash プラグインをインストールすると、ホスト型サーバーが
https://mcp.upstash.com/mcp に登録されます。
セッション内に MCP がない場合、または作業が本質的にシェル作業である場合 — CI ステップ、プロビジョニング スクリプト、あるいは JSON を他のコマンドにパイプする場合 — は CLI を使用してください。
Upstash CLI(upstash)は、Upstash Developer API を介して Upstash サービスを管理します。すべてのコマンドは非対話型で、stdout に JSON を出力します。エラーは stderr に { "error": "..." } として出力され、終了コードは 1 です。
インストール
npm i -g upstash
または、インストールせずに単一のコマンドを実行できます: npx upstash <command>。
コーディングエージェントを Upstash に接続する
upstash setup は、コーディングエージェントを 1 ステップで Upstash に接続します。Claude Code、Codex、Cursor、Gemini CLI には Upstash プラグイン(Upstash スキルとリモート MCP サーバー)が導入されます。VS Code、GitHub Copilot CLI、OpenCode には、リモート MCP サーバー(https://mcp.upstash.com/mcp)が設定に加えられ、さらに upstash スキルが導入されます。MCP サーバーは初回使用時に OAuth でサインインするため、セットアップがエージェントの設定に API キーを書き込むことはありません。
ターミナルにいる人は npx upstash を実行できます。ターミナルで引数なしで実行すると upstash setup が起動し、どのエージェントをセットアップするかを尋ねます。ターミナル以外では、引数なしの upstash はヘルプを出力するだけなので、エージェントやスクリプトからは upstash setup を --yes とエージェントフラグ付きで呼び出してください:
npx -y upstash setup --yes --claude # or --codex, --cursor, --gemini, --vscode, --copilot, --opencode
npx -y upstash setup --yes --cursor --mode mcp # remote MCP server + skill instead of the plugin
npx -y upstash setup --yes --claude --project # this project instead of the user config
npx -y upstash setup --yes --dry-run # show what would change; without agent flags, --yes covers every detected agent
--project を指定すると、Claude Code はプラグインをプロジェクトスコープでインストールします。Codex、Cursor、Gemini CLI のプラグインはユーザー単位でのみインストールされるため、代わりにプロジェクトレベルの MCP 設定とスキルが導入されます。setup を再実行すると、インストール済みの内容が更新されます。その後、エージェントの再起動またはリロードが必要です(Claude Code では /reload-plugins、Cursor では Developer: Reload Window)。
認証
推奨: マシンごとに 1 回 upstash login を実行してください。メールアドレスと Developer API キー(https://console.upstash.com/account/api で作成)の入力を求め、それらを検証して ~/.config/upstash/config.json に保存します。
upstash login
代替手段 — 環境変数(cwd の .env からも自動的に読み込まれます)、または --email / --api-key をインラインで指定、あるいは --env-path <path> で特定の .env を指定:
export [email protected]
export UPSTASH_API_KEY=your_api_key
優先順位: フラグ > 環境変数 > .env > 保存済み設定。可能であればエージェントには 読み取り専用 の API キーを使用してください — 変更操作は API 側で失敗します。コンソールでの場合と同じです。
リソース ID フラグ
| フラグ | 製品 |
|---|---|
--db-id <id> | Redis |
--index-id <id> | Vector、Search |
--qstash-id <id> | QStash |
--bucket-id <id> | Blob |
--team-id <id> | Team |
Redis
upstash redis list
upstash redis get --db-id <id> [--hide-credentials]
upstash redis create --name <name> --region <region> [--read-regions <r1> <r2>]
upstash redis delete --db-id <id> [--dry-run]
upstash redis rename --db-id <id> --name <new-name>
upstash redis reset-password --db-id <id>
upstash redis stats --db-id <id>
upstash redis enable-tls --db-id <id>
upstash redis {enable,disable}-eviction --db-id <id>
upstash redis {enable,disable}-autoupgrade --db-id <id>
upstash redis change-plan --db-id <id> --plan <free|payg|pro|paid>
upstash redis update-budget --db-id <id> --budget <cents>
upstash redis update-regions --db-id <id> --read-regions <r1> <r2>
upstash redis move-to-team --db-id <id> --team-id <id>
リージョン — AWS: us-east-1、us-east-2、us-west-1、us-west-2、ca-central-1、eu-central-1、eu-west-1、eu-west-2、sa-east-1、ap-south-1、ap-northeast-1、ap-southeast-1、ap-southeast-2、af-south-1。GCP: us-central1、us-east4、europe-west1、asia-northeast1。
Redis バックアップ
upstash redis backup list --db-id <id>
upstash redis backup create --db-id <id> --name <name>
upstash redis backup delete --db-id <id> --backup-id <id> [--dry-run]
upstash redis backup restore --db-id <id> --backup-id <id>
upstash redis backup {enable,disable}-daily --db-id <id>
Redis exec(REST、Developer API キーではない)
upstash redis exec --db-url <url> --db-token <token> SET key value
upstash redis exec --db-url <url> --db-token <token> --json '["SET","key","value"]'
--db-url / --db-token は UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN にフォールバックします。どちらも upstash redis get --db-id <id> の endpoint と rest_token から取得できます。
Team
upstash team list
upstash team create --name <name> [--copy-cc]
upstash team delete --team-id <id> [--dry-run]
upstash team members --team-id <id>
upstash team add-member --team-id <id> --member-email <email> --role <admin|dev|finance>
upstash team remove-member --team-id <id> --member-email <email> [--dry-run]
Vector
upstash vector list
upstash vector get --index-id <id>
upstash vector create --name <name> --region <region> --similarity-function <fn> --dimension-count <n> [--type payg] [--index-type <type>] [--embedding-model <m>] [--sparse-embedding-model <m>]
upstash vector delete --index-id <id> [--dry-run]
upstash vector rename --index-id <id> --name <new-name>
upstash vector reset-password --index-id <id>
upstash vector set-plan --index-id <id> --plan <free|payg|fixed>
upstash vector transfer --index-id <id> --target-account <id>
upstash vector stats # aggregate across all indexes
upstash vector index-stats --index-id <id> [--period <1h|3h|12h|1d|3d|7d|30d>]
リージョン: eu-west-1、us-east-1、us-central1。類似度: COSINE、EUCLIDEAN、DOT_PRODUCT。インデックスタイプ: DENSE、SPARSE、HYBRID。Dense モデル: BGE_SMALL_EN_V1_5、BGE_BASE_EN_V1_5、BGE_LARGE_EN_V1_5、BGE_M3。Sparse モデル: BM25、BGE_M3。マネージド埋め込みで HYBRID を使用する場合は、--dimension-count 0 を設定してください。
Search
upstash search list
upstash search get --index-id <id>
upstash search create --name <name> --region <region> --type <free|payg|fixed>
upstash search delete --index-id <id> [--dry-run]
upstash search rename --index-id <id> --name <new-name>
upstash search reset-password --index-id <id>
upstash search transfer --index-id <id> --target-account <id>
upstash search stats
upstash search index-stats --index-id <id> [--period <1h|3h|12h|1d|3d|7d|30d>]
リージョン: eu-west-1、us-central1。
QStash
upstash qstash list # run first; maps region → id
upstash qstash get --qstash-id <id>
upstash qstash rotate-token --qstash-id <id>
upstash qstash set-plan --qstash-id <id> --plan <paid|qstash_fixed_1m|qstash_fixed_10m|qstash_fixed_100m>
upstash qstash stats --qstash-id <id> [--period <1h|3h|12h|1d|3d|7d|30d>]
upstash qstash ipv4 # CIDR blocks for allowlisting
upstash qstash move-to-team --qstash-id <id> --target-team-id <id>
upstash qstash update-budget --qstash-id <id> --budget <dollars> # 0 = no limit
upstash qstash {enable,disable}-prodpack --qstash-id <id>
Blob
upstash blob --help を実行して、インストールされている CLI が Blob サポートを含んでいるか確認してください。このコマンドが利用できない場合は、CLI リリースに含まれるまで、バケットの管理にはコンソールを、アプリケーションコードには upstash-blob-js を使用してください。
upstash blob list
upstash blob get --bucket-id <id> [--hide-credentials]
upstash blob create --name <name> [--visibility <private|public>] [--cors <origin> <origin>]
upstash blob delete --bucket-id <id> [--dry-run]
upstash blob credentials [--bucket-id <id>]
バケットはデフォルトで private です。blob get はバケットトークンを返します。これはバケット全体に対するベアラーシークレットであるため、メタデータのみが必要な場合は --hide-credentials を渡してください。
blob credentials は、バケットトークンを、AWS CLI、rclone、または任意の S3 SDK で使用できる一時的なバケットスコープの S3 認証情報と交換します。--bucket-id を指定すると Developer API を通じてトークンを読み取り、フラグを指定しない場合は UPSTASH_BLOB_TOKEN を使用し、アカウント認証はまったく不要です。expiresAt は 秒単位の unix タイムスタンプ としての有効期限です(Date.now() と比較する前に 1000 を掛けてください)。キャッシュするのではなく、期限が切れる前に再発行してください。
CREDS=$(upstash blob credentials --bucket-id <id>)
export AWS_ACCESS_KEY_ID=$(echo "$CREDS" | jq -r .accessKeyId)
export AWS_SECRET_ACCESS_KEY=$(echo "$CREDS" | jq -r .secretAccessKey)
export AWS_SESSION_TOKEN=$(echo "$CREDS" | jq -r .sessionToken)
aws s3 cp image.png "s3://$(echo "$CREDS" | jq -r .bucket)/image.png" \
--endpoint-url "$(echo "$CREDS" | jq -r .endpoint)" --region auto
オブジェクト操作は CLI コマンドではありません。バケットは S3 互換であるため、上記の認証情報を S3 ツールで使用するか、TypeScript SDK 用の upstash-blob-js スキルを使用してください。
規約
- 出力はフィールド抽出のために
jqにパイプしてください。例:upstash redis list | jq '.[].database_id'。 deleteまたはremove-memberでは、まず--dry-runを使用してください。- シークレットが不要な場合は、
redis getおよびblob getで--hide-credentialsを使用してください。