mcpField
R
redis-mcp

redis-mcp

本地服务
github.com/upstash数据库016 周前更新

关于 redis-mcp

redis-mcp 是面向 Redis 数据库的轻量 MCP 服务,适用于需要从 AI 客户端执行 Redis 命令或查询 Upstash 文档的开发者。它支持 HTTP/REST 或 TCP、多数据库配置,以及管道和原子事务。

主要功能

  1. 01通过 HTTP/REST 或 TCP 执行命令
  2. 02支持管道与原子事务
  3. 03配置并选择多个数据库
  4. 04搜索 Upstash Redis 文档
  5. 05可选拒绝写入命令

适用场景

  1. 01从 AI 客户端读取或修改 Redis 数据
  2. 02批量执行相互独立的 Redis 命令
  3. 03原子执行一组 Redis 操作
  4. 04查找 Redis 命令及 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否在一个 MULTI/EXEC 事务中运行所有命令(排队后一起执行,不会交错)。与标准 Redis 一样,一个命令发生运行时错误不会回滚其他命令。默认为 false(管道)。
connection_stringstring否原始 TCP 凭据覆盖:rediss:// 连接字符串。

详细介绍

Upstash Redis MCP

添加到 Cursor

轻量级 Redis MCP 服务,仅提供两个工具:

  • 🧪 redis_run_commands:通过 HTTP/REST 或 TCP 运行一个或多个 Redis 命令,可作为流水线或原子事务执行。
  • 📚 redis_search_docs:使用 Context7 公共 API 搜索 Redis 文档。

一个服务可以容纳多个命名数据库。配置仅使用环境变量和 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(按项目),也可以前往 设置 → MCP → 添加新的 MCP 服务。请参阅 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 的客户端都可以使用。如果列表中没有你的客户端,请添加一个 stdio 服务,并运行 npx -y @upstash/redis-mcp,同时设置上方的两个环境变量。

🧰 工具

🧪 redis_run_commands

运行任意 Redis 命令:GET、SET、SCAN、ZADD、EVAL、SEARCH.* 系列,以及其他所有命令。每条命令都是一个参数数组(接受数字并将其转换为字符串)。默认情况下,多个命令以流水线方式运行:每条命令都会返回各自的结果或错误,并与输入顺序对应;某条命令失败不会中止其余命令。设置 transaction: true 可执行原子性的 MULTI/EXEC。

{
  "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)由目标数据库的配置决定;Agent 不会选择传输方式。

📚 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。