mcpField
U
upstash-cli

upstash-cli

github.com/upstashクラウド・DevOps341.5k 回インストール1 日前に更新
リポジトリ

upstash-cli について

Upstash Developer APIを介してUpstashサービスを管理するコマンドラインツールです。非対話型コマンドはJSONを出力し、コーディングエージェントにUpstashのスキルやホスト型MCPサーバーを設定できます。

主な機能

  1. 01Redis、Vector、Search、QStash、Blobの管理
  2. 02チームの作成と管理
  3. 03コマンドパイプライン向けのJSON出力
  4. 04コーディングエージェントへのUpstash設定
  5. 05APIキーまたは保存済みログインでの認証

活用シーン

  1. 01CIでのUpstashサービスのプロビジョニング
  2. 02スクリプトからのデータベースとインデックスの管理
  3. 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 を使用してください。

コメント