mcpField
R
redis-mcp

redis-mcp

ローカル
github.com/upstashデータベース016 週間前に更新

redis-mcp について

redis-mcpは、AIクライアントからRedisコマンドを実行したりUpstashのドキュメントを調べたりする開発者向けの軽量MCPサーバーです。HTTP/RESTまたはTCPに対応し、複数データベース、パイプライン、アトミックなトランザクションを扱えます。

主な機能

  1. 01HTTP/RESTまたはTCPでコマンド実行
  2. 02パイプラインとアトミックなトランザクション
  3. 03複数データベースの設定と選択
  4. 04Upstash Redisドキュメントの検索
  5. 05書き込みコマンドの任意拒否

活用シーン

  1. 01AIクライアントからRedisデータを読み書き
  2. 02独立したRedisコマンドをまとめて実行
  3. 03Redis操作の一連の処理をアトミックに実行
  4. 04RedisコマンドやUpstash機能の検索

MCP 対応

MCP サーバーは redis_run_commands と redis_search_docs を提供し、Redis操作とUpstash Redisドキュメントの検索をクライアントから利用可能にします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"upstash-redis": {
"command": "npx",
"args": [
"-y",
"@upstash/redis-mcp"
],
"env": {
"UPSTASH_REDIS_REST_URL": "<UPSTASH_REDIS_REST_URL>",
"UPSTASH_REDIS_REST_TOKEN": "<UPSTASH_REDIS_REST_TOKEN>",
"UPSTASH_REDIS_TCP_URL": "<UPSTASH_REDIS_TCP_URL>"
}
}
}
}
起動コマンドnpx -y @upstash/redis-mcp
設定が必要な環境変数
UPSTASH_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@upstash/redis-mcp0.1.1

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
commandsarrayはいRedis コマンド。各コマンドは引数の配列です。単一:[["SET","foo","bar"]]。複数:[["SET","foo","bar"],["GET","foo"]]。数値も受け付けられ、文字列に変換されるため、["EXPIRE","k",60]、["ZADD","z",80,"bob"]、Lua の numkeys ["EVAL",script,1,key] はすべて使用できます。
rest_urlstringいいえHTTP 認証情報の直接指定:Upstash REST URL(rest_token と組み合わせる必要があります)。
rest_tokenstringいいえ生の HTTP 認証情報による上書き:Upstash REST token(rest_url と組み合わせる必要があります)。
transactionbooleanいいえすべてのコマンドを 1 つの MULTI/EXEC トランザクションで実行します(キューに登録してまとめて実行し、割り込みはありません)。標準の Redis と同様に、あるコマンドで実行時エラーが発生しても、他のコマンドはロールバックされません。デフォルトは false(パイプライン)です。
connection_stringstringいいえ生の TCP 認証情報による上書き:rediss:// 接続文字列。

詳細

Upstash Redis MCP

Cursor に追加

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
HTTPUPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN--rest-url <url> --rest-token <token>
TCPUPSTASH_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>3000http トランスポートのポート
--readonlyUPSTASH_REDIS_READONLYオフベストエフォートで、どちらのトランスポートでも書き込みコマンドを拒否します。サーバー側の読み取り専用 REST トークンが、引き続き最も確実な方法です。
--disable-telemetryUPSTASH_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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。