Upstash MCPサーバーでRedis・QStash・Workflowを操作する
Upstashが公開する2種類のMCPサーバー(アカウント管理・データ操作)と、公式Redis MCPとの違いをまとめ、それぞれの接続手順を扱います。
Upstashは性格の違う2種類のMCPサーバーを公開しています。ひとつはアカウント全体を扱う@upstash/mcp-serverで、Redisデータベースの作成・削除、QStashのログ確認、Workflowの実行状況の追跡、さらにUpstash Boxというリモートコンテナの操作まで担います。もうひとつは@upstash/redis-mcpで、こちらはすでに存在するRedisデータベースへコマンドを投げるだけの軽量な2ツール構成です。名前が似ているredis/mcp-redisはUpstash製ではなく、Redis社が公開する汎用のRedis MCPサーバーで、対象がUpstash固有のREST APIではなくホスト・ポート指定の一般的なRedis接続である点が違います。
3つのRedis系MCPサーバーの違い
どれも「RedisをMCPで触る」という点は共通ですが、提供元と対象範囲がそれぞれ異なります。
| サーバー | 提供元 | 対象 | 主な用途 |
|---|---|---|---|
@upstash/mcp-server | 提供元Upstash公式 | 対象Upstashアカウント全体 | 主な用途DB作成・QStash/Workflowのログ閲覧・Box操作 |
@upstash/redis-mcp | 提供元Upstash公式 | 対象既存のUpstash Redis 1台 | 主な用途データの読み書きコマンド実行 |
redis/mcp-redis | 提供元Redis社公式 | 対象任意のRedis互換サーバー | 主な用途REDIS_HOST/REDIS_PORTによるTCP接続でのデータ操作 |
redis/mcp-redisはUpstashに限らず自前ホストのRedisやAzure Managed Redisなど、REST APIを持たない一般的なRedisサーバーを対象にした設計です。Upstash固有のREST URL/REST TOKENは使わず、REDIS_HOST・REDIS_PORT・REDIS_PWDといった通常のTCP接続情報で設定します。Upstashのデータベースだけを扱うなら、次に説明する2つのUpstash公式サーバーのどちらかで足ります。
アカウント管理サーバーをセットアップする
@upstash/mcp-serverはUpstashのメールアドレスとAPIキーで認証します。APIキーはUpstash Console → Account → API Keysから発行します。
claude mcp add --scope user upstash -- npx -y @upstash/mcp-server@latest \
--email YOUR_EMAIL --api-key YOUR_API_KEY読み取り専用のAPIキーで起動すると、データベース作成・バックアップ削除・Workflowの再試行のような書き込み系ツールは自動的に無効化されます。Redisへの問い合わせ、QStashのログとスケジュール確認、Workflowログの閲覧といった読み取り系はそのまま使えます。ただしUpstash Boxのツールは、読み取り専用キーではそもそも利用できません。
アカウントを持たずにRedisを試したいだけなら、redis_database_start_freeツール(またはエンドポイントhttps://upstash.com/start-redisへの直接POST)でサインアップ不要の無料データベースを起動できます。72時間で失効しますが、Upstashアカウントで引き取ればそのまま使い続けられます。
アカウントを持っている場合の日常的な指示は、Redis自体の管理にも及びます。
- 「us-east-1に新しいRedisデータベースを作って」
- 「メモリ使用量順にデータベース一覧を見せて」
- 「このDBのバックアップを取ってからクリアして」
- 「過去7日間のスループットの急増を見せて」
こうした指示はいずれも、コンソールを開かずデータベースの作成・一覧・バックアップ・利用状況の確認までを会話の中で済ませられることを示しています。
QStash・Workflowを自然文で調べる
アカウント管理サーバーがあると、QStashの障害調査やWorkflowの再実行を会話ベースで進められます。
QStashのログを確認して、Webhookが失敗し続けている原因を教えて今日失敗したWorkflow実行を@adminユーザー分だけ探して2時間前に開始して失敗したWorkflow実行をリトライしてこうした指示で、ログ検索・DLQ(デッドレターキュー)の内容確認・失敗したスケジュールの一時停止までを1つの会話の中で完結できます。QStashやWorkflowの管理画面を都度開かずに、原因調査からリトライの判断までをエージェント側に任せられるのが、データ操作専用サーバーには無い部分です。
Upstash Boxをワークスペースとして使う
Upstash Boxは、エージェントの作業場所になるリモートのLinuxコンテナです。ファイル操作はbox_read/box_write/box_edit、コマンド実行はbox_exec、Gitとコード検索はbox_git、起動中サーバーの確認はbox_previewが担当します。Boxを使うにはUpstashアカウントのAPIキーとは別のBox専用APIキーが必要で、--box-api-keyフラグかUPSTASH_BOX_API_KEY環境変数で渡します。Box専用の運用に絞るなら、アカウント資格情報を渡さずBox APIキーだけでサーバーを起動することもできます。その場合Redis・QStash・Workflow系のツールは使えなくなります。
Boxを使う具体的な指示の例
Box周りは操作の種類が多いぶん、どういう頼み方ができるかが分かりにくいところです。公式が示す例では、次のような指示がそのままツール呼び出しにつながります。
- 「このリポジトリをクローンしてBoxを立ち上げ、テストを実行して」(
box_gitによるクローンとbox_execによるテスト実行) - 「このBoxをスナップショットして、5つコピーを作り、それぞれにGitHub issueを割り当てて」(スナップショットからの複製)
- 「Boxが起動に失敗し続ける。ログを見て原因を教えて」(
box_execによるログ確認)
Boxの作成はコンテナが立ち上がりきる前に応答が返ってくる非同期の処理です。clone_repoはBoxがidle状態になってから初めてクローンを開始するため、作成直後に読み取り系のツールを呼んでも空振りすることがあります。少し間を置いてから最初の読み取りを行うのが安全です。
データ操作専用サーバー(@upstash/redis-mcp)を使う
すでにあるUpstash Redisへのコマンド実行だけで済むなら、@upstash/redis-mcpのほうが軽量です。ツールは2つだけです。
redis_run_commands:GET・SET・SCAN・ZADD・EVALやSEARCH.*系を含む任意のRedisコマンドを実行するredis_search_docs: Upstash Redisのドキュメントを検索する。裏側はContext7の無料枠で、APIキー不要
claude mcp add upstash-redis \
-e UPSTASH_REDIS_REST_URL=https://<your-db>.upstash.io \
-e UPSTASH_REDIS_REST_TOKEN=<your-rest-token> \
-- npx -y @upstash/redis-mcpredis_run_commandsは複数コマンドを配列で渡すと既定でパイプライン実行になり、1つが失敗しても他のコマンドの結果には影響しません。MULTI/EXECのような原子性が必要ならtransaction: trueを指定します。複数のデータベースを1つのサーバーで扱いたい場合は、環境変数名に任意の名前を挟むか(UPSTASH_REDIS_PROD_REST_URLのように)、CLIで--databaseを繰り返すことで名前付きデータベースを登録でき、呼び出し時にdatabaseパラメータで選べます。--readonlyフラグは書き込みコマンドをベストエフォートで拒否しますが、確実に防ぎたいなら読み取り専用のREST側トークンを発行するほうが堅牢です。
接続先がHTTP/RESTかTCPかは、対象データベースがどちらで設定されているかによって自動的に決まり、エージェント側が選ぶ余地はありません。呼び出しごとにrest_url/rest_token(HTTP)やconnection_string(TCP)を直接渡して、事前に登録したデータベース設定を上書きすることもできますが、この値はモデルのコンテキストを経由します。機密情報を扱う場面では、都度渡すより環境変数やCLIフラグで固定しておくほうが安全です。
よくあるつまずき
- どちらのサーバーを入れるべきか迷う: DB作成・QStash・Workflow・Boxまで扱いたいなら
@upstash/mcp-server、既存DBへのコマンド実行だけなら@upstash/redis-mcp。両方入れる必要は基本的にない - Box APIキーを渡し忘れて最初の呼び出しが失敗する: Boxツールはアカウント用APIキーとは別のBox専用キーが要る。
--box-api-keyかUPSTASH_BOX_API_KEYを忘れずに渡す - 読み取り専用キーでBoxを試そうとする: 読み取り専用のUpstash APIキーではBoxツール自体が使えない設計になっている
- Telemetryが気になる:
@upstash/mcp-serverはSDKバージョンやランタイム情報などの匿名診断情報を送信する。アカウントデータ・引数・実行結果は送られないが、送信自体を止めたいなら--disable-telemetryを付ける redis/mcp-redisと混同して環境変数を間違える: Upstash公式の2サーバーはUPSTASH_REDIS_REST_URL/REST_TOKEN、Redis社公式サーバーはREDIS_HOST/REDIS_PORT/REDIS_PWDと、設定項目の形式自体が違う
まとめ
Upstashを触るMCPサーバーは3系統あり、対象範囲で選び分けます。DB作成やQStash・Workflowのログ調査、Boxでのリモート作業まで含めるなら@upstash/mcp-server、既存のUpstash Redisへのコマンド実行だけなら軽量な@upstash/redis-mcp、Upstash以外も含む一般的なRedisサーバーを対象にするなら提供元がRedis社であるredis/mcp-redisです。読み取り専用のAPIキーで起動すればアカウント管理サーバーの書き込み系ツールはまとめて無効化されるので、調査だけに使う用途ではまずそこから試すと安全です。Claude Code側のclaude mcp addの共通オプションはClaude Code MCP設定ガイド、MCPサーバーの権限設計全般はMCPセキュリティガイドにまとめています。