Upstash

io.github.upstash由 GitHub 账号 upstash 发布v0.4.0更新于 Oct 24, 2026

No longer maintained. Use the remote Upstash MCP server: https://mcp.upstash.com/mcp

概览

AI 生成的概览

已停止维护的本地 Upstash 服务器,可让助手管理 Redis、QStash、Workflow 和 Box 资源;官方现建议改用远程服务器。

可以做什么
  • 管理 Redis 数据库:创建、列出、备份、清空,并查看用量与吞吐情况。
  • 查看和操作 QStash 与 Workflow:读取日志、查找失败运行、重试运行、查看死信队列、暂停定时任务。
  • 在 Upstash Box 远程 Linux 容器中工作:读写和编辑文件、执行命令、使用 git 与搜索、预览服务、上传本地文件。
  • 无需账号即可启动一个免费的临时 Redis 数据库,72 小时后过期。
  • 使用只读 API 密钥时会自动禁用所有会改变状态的工具。
适用场景
仅当你确实需要这个本地 stdio 包时使用;官方已标注其不再维护,并建议改用远程 Upstash MCP 服务器,后者通过 OAuth 登录且覆盖更多产品。新项目建议优先选择远程服务器,或配合 CLI 使用 Upstash Skill。
运行要求
需要 Node.js 与 npx 在本机运行该 npm 包。需要 Upstash 账号邮箱和 Developer API 密钥,可通过命令行参数或 UPSTASH_EMAIL、UPSTASH_API_KEY 变量提供。Box 工具需要单独的 Box API 密钥(UPSTASH_BOX_API_KEY 或参数),也可仅用它启动。需要访问 Upstash 的网络。
安装前请注意
已停止维护,官方建议改用远程服务器。凭据通过命令行或配置文件传入,可能以明文留在配置中。工具可创建和删除数据库、清空数据、重试工作流、暂停定时任务。Box 工具会在远程容器中执行命令和写入文件,而助手自带的文件与终端工具仍作用于你的本机。除非关闭,否则会发送匿名遥测数据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Upstash,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Upstash MCP Server

[!IMPORTANT] This local (stdio) server is no longer maintained. Use the remote Upstash MCP server at https://mcp.upstash.com/mcp instead.

The remote server signs you in with OAuth, so there is no API key to paste into a config file, and it covers more of Upstash: Redis, QStash, Workflow, Vector, Search, Box and Blob. For headless setups such as CI, it also accepts a Developer API key as Authorization: Basic base64(email:api_key).

sh
claude mcp add --scope user --transport http upstash https://mcp.upstash.com/mcp

Setup: upstash.com/docs/agent-resources/overview. Tools and authentication: upstash.com/docs/agent-resources/mcp.

[Install MCP Server] [Install in VS Code]

[MCP Registry] [Glama] [PulseMCP]

The Upstash MCP server lets your agent manage and debug your Upstash resources directly, across Redis, QStash, Workflow, and Upstash Box.

[!TIP] For most workflows, prefer installing the Upstash Skill and letting your agent drive @upstash/cli over running the MCP server.

[!TIP] If you are an AI agent and just need a Redis DB to use or experiment with, you don't need an account at all — call the redis_database_start_free tool, or send a POST request to https://upstash.com/start-redis directly. It's free, no signup, and the response is markdown with credentials and a quickstart. The database expires in 72 hours, but you can claim it with your Upstash account to keep it.

Pass user_agent to identify yourself (e.g. claude-code, cursor, codex, opencode); the tool forwards it as the User-Agent header. Calling the endpoint directly, send the same header yourself, plus a fresh UUIDv4 as Idempotency-Key:

bash
curl -X POST -H "Idempotency-Key: <uuidv4>" -H "User-Agent: <your-agent-name>" https://upstash.com/start-redis

Quickstart

You'll need your Upstash account email and an API key — create one at Upstash Console → Account → API Keys.

The Upstash MCP server works with any MCP-compatible client. If your client isn't listed below, check its documentation for how to add a stdio MCP server, then point it at the base command:

bash
npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY

[!NOTE] Readonly API keys are supported. When the server starts with one, it automatically disables every tool that would modify state (creating databases, deleting backups, retrying workflows, etc.). Your agent can still read and query your account — including Redis, QStash logs, schedules, and Workflow logs — but it cannot make changes. Upstash Box tools are not available with a readonly key.

Claude Code

Run this command in your terminal. See the Claude Code MCP docs for more info.

sh
claude mcp add --scope user upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
Cursor

Go to Settings → Cursor Settings → MCP → Add new global MCP server.

Pasting the following configuration into your Cursor ~/.cursor/mcp.json file is the recommended approach. You may also install in a specific project by creating .cursor/mcp.json in your project folder. See the Cursor MCP docs for more info.

Since Cursor 1.0, you can click the install button below for instant one-click installation. Replace YOUR_EMAIL and YOUR_API_KEY with your real values before confirming.

[Install MCP Server]

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY"      ]    }  }}
Windsurf

Add this to your Windsurf MCP config file at ~/.codeium/windsurf/mcp_config.json. See the Windsurf MCP docs for more info.

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY"      ]    }  }}
OpenCode

Add this to your OpenCode configuration file (~/.config/opencode/opencode.json or a project-level opencode.json). See the OpenCode MCP docs for more info.

json
{  "mcp": {    "upstash": {      "type": "local",      "command": [        "npx",        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY"      ],      "enabled": true    }  }}
OpenAI Codex

See the OpenAI Codex MCP docs for more info.

Using the CLI

sh
codex mcp add upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY

Manual configuration

Add this to your Codex config file (~/.codex/config.toml or .codex/config.toml):

toml
[mcp_servers.upstash]command = "npx"args = ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]startup_timeout_sec = 20

[!NOTE] If you see startup timeout errors, increase startup_timeout_sec to 40.

VS Code

Click to install — VS Code will prompt for your email and API key (stored in its secret storage):

[Install in VS Code] [Install in VS Code Insiders]

Or add this to .vscode/mcp.json (or your user mcp.servers setting). Using inputs with promptString means your API key is prompted once and kept in VS Code's secret storage instead of sitting in the config file. See the VS Code MCP docs for more info.

json
{  "inputs": [    { "type": "promptString", "id": "email", "description": "Upstash email" },    { "type": "promptString", "id": "apiKey", "description": "Upstash API key", "password": true }  ],  "servers": {    "upstash": {      "type": "stdio",      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "${input:email}",        "--api-key",        "${input:apiKey}"      ]    }  }}
Google Antigravity

Add this to your Antigravity MCP config. See the Antigravity MCP docs for more info.

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY"      ]    }  }}
Claude Desktop

Open Claude Desktop's developer settings and edit claude_desktop_config.json. See the Claude Desktop MCP docs for more info.

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY"      ]    }  }}
Gemini CLI

Open the Gemini CLI settings file at ~/.gemini/settings.json and add Upstash to mcpServers. See Gemini CLI Configuration for details.

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY"      ]    }  }}

Example prompts

Redis

  • "Start a free temporary Redis I can experiment with"
  • "Create a new Redis database in us-east-1"
  • "List my databases sorted by memory usage"
  • "Update the user schema by pulling from Redis"
  • "Create a backup of this db, then clear it"
  • "Show me throughput spikes during the last 7 days"

QStash & Workflow

  • "Check the QStash logs and figure out why my webhook keeps failing"
  • "Find failed workflow runs for user @admin today"
  • "Retry the failed workflow run that started 2 hours ago"
  • "Summarize what's in the DLQ right now, grouped by error type"
  • "Pause the schedules that are throwing errors"

Upstash Box

  • "Spin up a Box, clone this repo, and run the tests"
  • "Snapshot this Box and create 5 copies from it, assign each one a GitHub issue"
  • "My Box keeps failing to start, check the logs and tell me what's wrong"

Using a Box as your workspace

A Box is a remote Linux container with its own filesystem. The Box tools let an agent work inside one while the agent itself keeps running on your machine: files through box_read / box_write / box_edit, commands through box_exec, git and search through box_git, and a running server through box_preview. box_upload copies files into the Box from the machine running the MCP server, which is how uncommitted local work gets in — a clone only brings what you have pushed. With the usual stdio setup the server runs on your own machine, so those are your paths; if you run it remotely with --transport http, it reads the server host's filesystem instead, not yours.

Box tools need a Box API key, which is a different credential from your Upstash account API key — the two are not interchangeable. The install command at the top of this README does not include one, so pass --box-api-key as well or the first Box call will fail:

sh
claude mcp add --scope user upstash -- npx -y @upstash/mcp-server@latest \  --email YOUR_EMAIL --api-key YOUR_API_KEY --box-api-key YOUR_BOX_API_KEY

See Upstash Box API key for the environment-variable form and where to get the key.

If you only use Upstash Box, you can start the server with --box-api-key alone and no account credentials. Redis, QStash and Workflow tools are unavailable in that mode.

Create the workspace once and reuse its id:

  • "Create a Box with clone_repo https://github.com/me/my-app, no agent, then wait until the repo is there"
  • "In that Box, run the tests and fix whatever fails"
  • "Commit on a new branch in the Box and open a PR"

A create returns while the container is still coming up, and clone_repo starts cloning only once the Box reports idle, so give it a moment before the first read.

The one thing to know: your agent's own Read, Write, Edit, Bash, Glob and Grep tools still act on your machine. Nothing stops it from reading a local file and writing the change into the Box, and neither side reports the mismatch. The server sends guidance at startup and every Box tool says which machine it touches, but if you want the boundary enforced rather than suggested, add a CLAUDE.md to the project you're driving from:

markdown
# Workspace
The workspace for this project is an Upstash Box, not this directory.
- Use `box_read`, `box_write` and `box_edit` for files; `box_exec` for commands;  `box_git` for git and for search (`git grep`, `git ls-files`).- Do not use Read, Write, Edit, Bash, Glob or Grep for project files — they act  on this machine. Searching locally finds the wrong tree, or nothing at all.- The one exception is `box_upload`: it reads paths on this machine on purpose,  to copy local files into the Box.- The box id for this project is: <paste it here>

Upstash Box API key (optional)

For the MCP to interact with Upstash Box, the agent needs your Box API key. By default you have to paste it into the chat (or keep it in a .env) every time the agent runs a Box tool. To avoid this, you can wire the key into the MCP setup itself so the server picks it up automatically on startup.

You can pass it in two ways.

CLI flag

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY",        "--box-api-key",        "YOUR_BOX_API_KEY"      ]    }  }}

Environment variable

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY"      ],      "env": {        "UPSTASH_BOX_API_KEY": "YOUR_BOX_API_KEY"      }    }  }}

Debugging

If the server is misbehaving or a tool keeps failing, enable verbose logging with the --debug flag:

json
{  "mcpServers": {    "upstash": {      "command": "npx",      "args": [        "-y",        "@upstash/mcp-server@latest",        "--email",        "YOUR_EMAIL",        "--api-key",        "YOUR_API_KEY",        "--debug"      ]    }  }}

Every internal event is then written to stderr, which your MCP client surfaces in its own log viewer. Share the relevant snippet when reporting an issue on GitHub.

Telemetry

The server sends anonymous diagnostic info to Upstash with each request: the MCP server SDK version, your runtime version (Node, Bun, etc.), and basic platform info (OS and architecture). No account data, tool arguments, or results are collected. To opt out, add --disable-telemetry to the args.

Development

Clone the project and run:

bash
bun ibun run watch

This continuously builds the project and watches for changes.

To run the built server standalone (uses .env for credentials) and smoke-test it before publishing:

bash
bun i          # ensure deps are currentbun run build# stdio (default) — waits for an MCP client to speak JSON-RPC on stdin:bun dist/index.js# or HTTP transport, to poke it manually on a port:bun dist/index.js --transport http --port 3000

For testing, create a .env file in the project root:

bash
UPSTASH_EMAIL=<UPSTASH_EMAIL>UPSTASH_API_KEY=<UPSTASH_API_KEY># Optional, for Box tools:UPSTASH_BOX_API_KEY=<UPSTASH_BOX_API_KEY>

To install the local MCP server into Claude Code:

bash
claude mcp add --transport stdio upstash -- bun --watch dist/index.js --debug

To tail logs from the MCP server in real time:

bash
bun run logs

来源:README.md,提交 8ed1cbe

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

2
  1. v0.4.0最新Oct 23, 2026
  2. v0.2.7Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分