redis-mcp について
redis-mcpは、AIクライアントからRedisコマンドを実行したりUpstashのドキュメントを調べたりする開発者向けの軽量MCPサーバーです。HTTP/RESTまたはTCPに対応し、複数データベース、パイプライン、アトミックなトランザクションを扱えます。
主な機能
- 01HTTP/RESTまたはTCPでコマンド実行
- 02パイプラインとアトミックなトランザクション
- 03複数データベースの設定と選択
- 04Upstash Redisドキュメントの検索
- 05書き込みコマンドの任意拒否
活用シーン
- 01AIクライアントからRedisデータを読み書き
- 02独立したRedisコマンドをまとめて実行
- 03Redis操作の一連の処理をアトミックに実行
- 04RedisコマンドやUpstash機能の検索
MCP 対応
MCP サーバーは redis_run_commands と redis_search_docs を提供し、Redis操作とUpstash Redisドキュメントの検索をクライアントから利用可能にします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @upstash/redis-mcpUPSTASH_REDIS_REST_URLUpstash Redis REST URL (HTTP transport).UPSTASH_REDIS_REST_TOKENシークレットUpstash Redis REST token (HTTP transport).UPSTASH_REDIS_TCP_URLシークレットUpstash Redis rediss:// connection string (TCP transport).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| commands | array | はい | Redis コマンド。各コマンドは引数の配列です。単一:[["SET","foo","bar"]]。複数:[["SET","foo","bar"],["GET","foo"]]。数値も受け付けられ、文字列に変換されるため、["EXPIRE","k",60]、["ZADD","z",80,"bob"]、Lua の numkeys ["EVAL",script,1,key] はすべて使用できます。 |
| rest_url | string | いいえ | HTTP 認証情報の直接指定:Upstash REST URL(rest_token と組み合わせる必要があります)。 |
| rest_token | string | いいえ | 生の HTTP 認証情報による上書き:Upstash REST token(rest_url と組み合わせる必要があります)。 |
| transaction | boolean | いいえ | すべてのコマンドを 1 つの MULTI/EXEC トランザクションで実行します(キューに登録してまとめて実行し、割り込みはありません)。標準の Redis と同様に、あるコマンドで実行時エラーが発生しても、他のコマンドはロールバックされません。デフォルトは false(パイプライン)です。 |
| connection_string | string | いいえ | 生の TCP 認証情報による上書き:rediss:// 接続文字列。 |
詳細
Upstash Redis MCP
Redis 用の軽量な MCP サーバーです。ツールは 2 つだけです。
- 🧪
redis_run_commands:HTTP/REST または TCP 経由で、パイプラインまたはアトミックトランザクションとして、1 つ以上の Redis コマンドを実行します。 - 📚
redis_search_docs:Context7 の公開 API を使用して、Redis のドキュメントを検索します。
1 つのサーバーで、名前付きデータベースを複数保持できます。設定は環境変数と CLI フラグのみで行います。
🔌 クイックスタート
Claude Code
ターミナルでこれを実行してください。詳しくはClaude Code の MCP ドキュメントをご覧ください。
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-mcp
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクトごと)に追加するか、Settings → MCP → Add new MCP server に移動してください。詳しくはCursor の MCP ドキュメントをご覧ください。
{
"mcpServers": {
"upstash-redis": {
"command": "npx",
"args": ["-y", "@upstash/redis-mcp"],
"env": {
"UPSTASH_REDIS_REST_URL": "https://<your-db>.upstash.io",
"UPSTASH_REDIS_REST_TOKEN": "<your-rest-token>"
}
}
}
}
VS Code
.vscode/mcp.json(プロジェクトごと)またはユーザーの mcp 設定に追加してください。詳しくはVS Code の MCP ドキュメントをご覧ください。
{
"servers": {
"upstash-redis": {
"command": "npx",
"args": ["-y", "@upstash/redis-mcp"],
"env": {
"UPSTASH_REDIS_REST_URL": "https://<your-db>.upstash.io",
"UPSTASH_REDIS_REST_TOKEN": "<your-rest-token>"
}
}
}
}
Codex
~/.codex/config.toml(またはプロジェクトレベルの .codex/config.toml)に追加してください。詳しくはCodex の MCP ドキュメントをご覧ください。
[mcp_servers.upstash-redis]
command = "npx"
args = ["-y", "@upstash/redis-mcp"]
env = { UPSTASH_REDIS_REST_URL = "https://<your-db>.upstash.io", UPSTASH_REDIS_REST_TOKEN = "<your-rest-token>" }
OpenCode
opencode.json(プロジェクト)または ~/.config/opencode/opencode.json(グローバル)に追加してください。詳しくはOpenCode の MCP ドキュメントをご覧ください。
{
"mcp": {
"upstash-redis": {
"type": "local",
"command": ["npx", "-y", "@upstash/redis-mcp"],
"environment": {
"UPSTASH_REDIS_REST_URL": "https://<your-db>.upstash.io",
"UPSTASH_REDIS_REST_TOKEN": "<your-rest-token>"
}
}
}
}
ヒント
MCP 対応クライアントならどれでも使えます。一覧にない場合は、上記の 2 つの環境変数を指定して
npx -y @upstash/redis-mcpを実行する stdio サーバーを追加してください。
🧰 ツール
🧪 redis_run_commands
GET、SET、SCAN、ZADD、EVAL、SEARCH.* ファミリーをはじめ、あらゆる Redis コマンドを実行します。各コマンドは引数の配列で指定します(数値も受け付けられ、文字列に変換されます)。デフォルトでは、複数のコマンドはパイプラインとして実行されます。各コマンドの結果またはエラーは入力と同じ順序で返され、1 つの失敗で残りの処理が中断されることはありません。アトミックな MULTI/EXEC を実行するには、transaction: true を設定します。
{
"commands": [
["SET", "visits", 0],
["INCR", "visits"],
["GET", "visits"],
],
"transaction": false, // optional: true => atomic MULTI/EXEC
// "database": "prod" // only when more than one database is configured
// raw credential overrides (optional):
// "rest_url", "rest_token" // HTTP
// "connection_string" // TCP, rediss://
}
トランスポート(HTTP または TCP)は、対象データベースの設定に基づいて決まります。エージェントが選択することはありません。
📚 redis_search_docs
Upstash Redis のドキュメントをリアルタイムで検索し、関連性の高いページを返します。コマンドや機能が不明な場合、特に SEARCH.* 全文検索ファミリーなど Upstash 固有の機能について確認するときに利用してください。Context7 の無料枠を利用しているため、API キーや追加の設定は必要ありません。
{ "query": "SEARCH.AGGREGATE date histogram" }
⚙️ 設定
環境変数と CLI フラグですべてを設定します。設定ファイルはありません。
単一データベース
| トランスポート | 環境変数 | CLI |
|---|---|---|
| HTTP | UPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN | --rest-url <url> --rest-token <token> |
| TCP | UPSTASH_REDIS_TCP_URL(または REDIS_URL) | --url <rediss://…> |
複数データベース
各データベースに名前を付けます。この名前は、redis_run_commands で選択できる database の値になります。
環境変数:<NAME> のセグメントを挿入します。
UPSTASH_REDIS_PROD_REST_URL="https://prod-db.upstash.io"
UPSTASH_REDIS_PROD_REST_TOKEN="<prod-rest-token>"
UPSTASH_REDIS_CACHE_TCP_URL="rediss://default:<password>@cache-db.upstash.io:6379"
CLI:データベースごとのグループを開始するために、--database を繰り返し指定します。
npx -y @upstash/redis-mcp \
--database prod --rest-url https://prod-db.upstash.io --rest-token <prod-rest-token> \
--database cache --url rediss://default:<password>@cache-db.upstash.io:6379
メモ
呼び出しごとの生の認証情報。
redis_run_commandsの呼び出しでは、rest_url+rest_token(HTTP)またはconnection_string(TCP)をインラインで指定することもできます。これらはレジストリの設定を上書きし、データベースが設定されていなくても機能します。これらの値はモデルのコンテキストを通じて渡されるため、機密情報には環境変数または CLI を使用してください。
フラグとオプション
| フラグ | 環境変数 | デフォルト | 用途 |
|---|---|---|---|
--transport <stdio|http> | stdio | サーバーのトランスポート | |
--port <n> | 3000 | http トランスポートのポート | |
--readonly | UPSTASH_REDIS_READONLY | オフ | ベストエフォートで、どちらのトランスポートでも書き込みコマンドを拒否します。サーバー側の読み取り専用 REST トークンが、引き続き最も確実な方法です。 |
--disable-telemetry | UPSTASH_DISABLE_TELEMETRY | オフ | HTTP リクエストで Upstash-Telemetry-* ヘッダーを送信しないようにします |
--debug | オフ | 詳細なログを stderr と redis-mcp-debug.log に出力します |
📡 テレメトリー
HTTP/REST リクエストには Upstash-Telemetry-{Sdk,Platform,Runtime} ヘッダーが含まれます。--disable-telemetry または UPSTASH_DISABLE_TELEMETRY=true で無効にできます。
🏃 ローカルで実行する
bun install
bun run build # emits dist/index.js
cp .env.example .env # add UPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN
node dist/index.js # stdio (what clients spawn)
node dist/index.js --transport http --port 3000 # HTTP: endpoint /mcp, health /ping
サーバーは .env を自動的に読み込みます。クライアントの接続先をローカルビルドにするには、任意の クイックスタート 設定にある npx -y @upstash/redis-mcp を node /absolute/path/to/redis-mcp/dist/index.js に置き換えてください。
🛠️ 開発
bun install
bun run build
bun test
bun run lint
📄 ライセンス
MIT © Upstash
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。