# io.github.upstash/redis-mcp (npm · @upstash/redis-mcp)

Run Redis commands and look up Upstash Redis Search docs against Upstash Redis over HTTP or TCP.

- Trust score: 76/100 (medium)
- Change this week: +34
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@upstash/redis-mcp`: 76/100 (this document), [markdown](https://verifymcp.io/servers/upstash-redis-mcp/upstash-redis-mcp.md), [page](https://verifymcp.io/servers/upstash-redis-mcp/upstash-redis-mcp)

## Channel facts

- Registry: `npm`
- Package: `@upstash/redis-mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (99 of 103), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (99 of 103), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to upstash/redis-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 25 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 60/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 743 tokens (~371/item across 2 items; 2 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add upstash-redis-mcp -- npx -y @upstash/redis-mcp
```

### Codex

```bash
codex mcp add upstash-redis-mcp -- npx -y @upstash/redis-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "upstash-redis-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@upstash/redis-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add upstash-redis-mcp --command npx --arg -y --arg @upstash/redis-mcp
```

### Hermes

```yaml
mcp_servers:
  upstash-redis-mcp:
    command: "npx"
    args: ["-y", "@upstash/redis-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "upstash-redis-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@upstash/redis-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 76, +58)

- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] The attested source repository moved: upstash/redis-mcp
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-07-31 (score 18, −6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 24, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 42)

First indexed and scored.

## MCP tools (2)

### `redis_run_commands` (~537 tokens)

Run one or more Redis commands against an Upstash Redis database (this server is ONLY for Upstash Redis).
Commands are sent over HTTP/REST or native TCP depending on how the target database is configured — you don't choose the transport.
By default multiple commands run as a pipeline: each returns its own result/error, and one failure does not abort the others.
Set transaction:true to run them atomically (MULTI/EXEC).
For discovery prefer SCAN over KEYS, and use TYPE to inspect a key.
A valid command that fails (e.g. WRONGTYPE) returns a per-command error while the rest of the pipeline still runs; a malformed/unknown command can cause the whole request to be rejected.
Upstash Redis Search runs through THIS tool via SEARCH.* commands (SEARCH.LISTINDEXES/CREATE/QUERY/AGGREGATE/COUNT/DESCRIBE) — NOT RediSearch's FT.*; filters/aggregations are JSON strings. If you don't know the index name, run SEARCH.LISTINDEXES first; then SEARCH.DESCRIBE <index> for field names/types, and call redis_search_docs for syntax. Three gotchas: (1) a filter applies to ALL indexed documents unless you scope it, e.g. {"type":"story"} — an empty {} counts every type; (2) a plain text value like {"title":"x"} does fuzzy/smart matching, so for an exact word or adjacent phrase use {"title":{"$phrase":"x"}}; (3) add SELECT <n> field... to a query to return only the fields you need instead of whole documents.

Input parameters:

- `commands` (array, required): Redis commands; each is an array of args. Single: [["SET","foo","bar"]]. Multiple: [["SET","foo","bar"],["GET","foo"]]. Numbers are accepted and coerced to strings, so ["EXPIRE","k",60], ["ZADD","z",…
- `connection_string` (string): Raw TCP credential override: rediss:// connection string.
- `rest_token` (string): Raw HTTP credential override: Upstash REST token (must be paired with rest_url).
- `rest_url` (string): Raw HTTP credential override: Upstash REST URL (must be paired with rest_token).
- `transaction` (boolean): Run all commands in one MULTI/EXEC transaction (queued, executed together, no interleaving). Like standard Redis, a runtime error in one command does NOT roll back the others. Default false (pipeline…

### `redis_search_docs` (~206 tokens)

Look up **Upstash Redis** documentation — any command, feature, option, or syntax.
Covers the whole Upstash Redis surface: core Redis commands, the REST API, pipelines/transactions, and Upstash-specific features. This INCLUDES Upstash Redis Search — the SEARCH.* full-text family (SEARCH.CREATE / SEARCH.QUERY / SEARCH.AGGREGATE / SEARCH.COUNT / ...), whose JSON-based index schema and query syntax are Upstash-specific and DIFFER from Redis Labs' RediSearch FT.*, so they are unlikely to be in your training data — verify them here.
Reach for this whenever you're unsure about a command, option, or syntax, and ALWAYS before writing a SEARCH.* command. Pass a natural-language query.

Input parameters:

- `query` (string, required): What to look up, in natural language, e.g. "SET with TTL and NX", "pipeline REST API", "ZADD options", "SEARCH.AGGREGATE date histogram", "define index schema".

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/upstash-redis-mcp/upstash-redis-mcp#diagnostics

## Score history

- 2026-08-03: 76
- 2026-08-02: 76
- 2026-08-01: 18
- 2026-07-31: 18
- 2026-07-30: 24
- 2026-07-28: 42
- 2026-07-27: 42

## Links

- npm package: https://www.npmjs.com/package/@upstash/redis-mcp
- Socket report: https://socket.dev/npm/package/@upstash/redis-mcp
- Repository: https://github.com/upstash/redis-mcp
- Changelog RSS feed: https://verifymcp.io/servers/upstash-redis-mcp/upstash-redis-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/upstash-redis-mcp/upstash-redis-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/upstash-redis-mcp/upstash-redis-mcp
