Upstash MCP Server
Official MCP server for managing and debugging Upstash Redis databases, QStash, Workflow runs, and Upstash Box instances via natural language.
The Upstash MCP server is an official Model Context Protocol implementation that lets AI agents manage and debug Upstash resources directly. It covers four product areas: serverless Redis databases, the QStash message queue, Workflow (durable workflows on top of QStash), and Upstash Box (managed sandbox instances). Instead of having an agent shell out to a CLI, the server exposes operations as MCP tools the agent can call.
Capabilities span the full operational surface most users care about. For Redis, the server can create databases in specified regions, list and sort them by memory usage, create backups, and pull throughput metrics. For QStash and Workflow, it can review logs, find and retry failed runs, inspect the dead-letter queue, and pause schedules. For Upstash Box, it can provision instances, clone repos, create snapshots and copies, and pull startup logs for troubleshooting.
A notable feature is read-only API key support: when the server starts with a read-only key it automatically disables every tool that would mutate state, so agents can be safely scoped to inspection only. The server is distributed as the npm package @upstash/mcp-server and runs locally via npx, with one-line install configs documented for Claude Code, Cursor, Windsurf, VS Code, Claude Desktop, Gemini CLI, OpenAI Codex, OpenCode, and Google Antigravity.
Tools
| Tool | Description |
|---|---|
Redis: create database |
Create a new Upstash Redis database in a specified region. |
Redis: list databases |
List Redis databases, with sorting (e.g. by memory usage). |
Redis: update database |
Update settings or schema on an existing Redis database. |
Redis: backups |
Create and manage backups for a Redis database. |
Redis: throughput metrics |
Fetch throughput metrics for a database over a time period. |
QStash: review logs |
Review QStash logs to diagnose webhook and delivery failures. |
Workflow: find failed runs |
Search for failed Workflow runs by user and date. |
Workflow: retry failed runs |
Retry a previously failed workflow execution. |
QStash: dead-letter queue |
Inspect DLQ contents, grouped by error type. |
QStash: pause schedules |
Pause QStash schedules that are causing issues. |
Box: create instance |
Provision a new Upstash Box instance, optionally cloning a repository. |
Box: snapshot/copy instance |
Create a snapshot of a Box instance or duplicate it. |
Box: assign to GitHub issue |
Attach a Box instance to a specific GitHub issue. |
Box: review logs |
Read startup and runtime logs from a Box instance for troubleshooting. |
Prerequisites
- An Upstash account
- An API key from the Upstash Console (Account → API Keys). Read-only keys are supported and will auto-disable write tools.
- Optionally, an Upstash Box API key if you want to use Box tools.
- Node.js (for
npx) installed locally.
Install
The server runs via npx, no manual install required:
npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
Client configuration
Add the following to your MCP client config (Claude Desktop, Cursor, Windsurf, VS Code, Claude Code, etc.):
{
"mcpServers": {
"upstash": {
"command": "npx",
"args": [
"-y",
"@upstash/mcp-server@latest",
"--email",
"YOUR_EMAIL",
"--api-key",
"YOUR_API_KEY"
]
}
}
}
Optional flags
--box-api-key YOUR_BOX_API_KEY(or envUPSTASH_BOX_API_KEY): enable Upstash Box tools.--debug: verbose logging to stderr.--disable-telemetry: opt out of anonymous diagnostic telemetry.
Local development
For contributing or running from source:
bun i
bun run watch
Create a .env with UPSTASH_EMAIL, UPSTASH_API_KEY, and optionally UPSTASH_BOX_API_KEY.
- Provision a new Redis database in a specific region and wire its connection details into a project without leaving the editor.
- Triage QStash webhook failures: pull recent logs, group DLQ entries by error, retry the recoverable ones, and pause the schedule causing repeat failures.
- Audit Redis usage by listing databases sorted by memory and checking throughput metrics to find candidates for cleanup or backup.
- Spin up an Upstash Box instance pre-cloned with a specific repo to reproduce a bug attached to a GitHub issue, then snapshot it for later.
- Run agents safely in production by issuing a read-only Upstash API key so the server auto-disables every state-mutating tool.
- "Create a new Redis database called
prod-cachein us-east-1 and show me the connection string." - "List my Redis databases sorted by memory usage and flag any over 1GB."
- "Find failed QStash workflow runs from the last 24 hours, group them by error, and retry the ones caused by 5xx responses."
- "Pause every QStash schedule that has more than 10 failed deliveries today."
- "Spin up an Upstash Box instance from the
acme/apirepo and attach it to GitHub issue #482."
- Officially built and maintained by Upstash, distributed as
@upstash/mcp-serveron npm. - Covers all four major product areas in one server: Redis, QStash, Workflow, and Box.
- Read-only API key support: write tools are auto-disabled when the key lacks mutation scope, making it safe for agent automation.
- Documented configs for nearly every major MCP client (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Gemini CLI, Codex, OpenCode, Antigravity).
- The README documents capability areas rather than an exact, exhaustive tool-name table, so the precise tool surface has to be discovered at runtime.
- Requires Node.js locally for
npx, and an Upstash account with an API key; not a hosted remote server. - Telemetry is enabled by default and must be opted out with
--disable-telemetry.
- Redis MCP server for direct Redis protocol operations against any Redis (including Upstash) without the Upstash control-plane features.
- Cloudflare Workers KV / D1 MCP integrations if the use case is serverless data store management rather than Upstash specifically.
- The Upstash REST APIs called directly via a generic HTTP MCP server, if you need only a narrow slice of functionality.