4,500+ servers built on MCP Fusion
Vinkius

Upstash MCP. Manage Caches, Queues, and State in Redis from Chat.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
See Vinkius in Action

Works with every AI agent you already use

…and any MCP-compatible client

Upstash MCP on Cursor AI Code Editor MCP Client Upstash MCP on Claude Desktop App MCP Integration Upstash MCP on OpenAI Agents SDK MCP Compatible Upstash MCP on Visual Studio Code MCP Extension Client Upstash MCP on GitHub Copilot AI Agent MCP Integration Upstash MCP on Google Gemini AI MCP Integration Upstash MCP on Lovable AI Development MCP Client Upstash MCP on Mistral AI Agents MCP Compatible Upstash MCP on Amazon AWS Bedrock MCP Support

Just plug in your AI agents and start using Vinkius.

Upstash Redis connects your AI agent directly to a serverless key-value store. It lets you treat complex data structures—like caches, message queues, or user state—as native functions within your conversation.

Forget opening the CLI; your agent runs atomic commands like `lrange`, `hset`, and `pipeline` instantly.

What your AI agents can do

Decr

Decrements a numeric value in Upstash Redis; if the key doesn't exist, it starts at zero.

Del

Permanently deletes a specified key from Upstash Redis. Be careful with this operation.

Exists

Quickly checks if any given key is present in the database.

+ 20 more capabilities included
Check Key Existence

Determines if a key exists in the database without retrieving any data.

Read/Write String Data

Retrieves or sets simple text values for specific keys, including setting automatic expiration times (TTL).

Manage Structured Records

Stores and fetches multiple related fields within a single key (like user metadata).

Process Queues and Sequences

Adds, removes, or retrieves ranges of ordered items from lists.

Handle Unique Sets

Manages collections where every item must be unique, ideal for tracking membership.

Execute Atomic Batches

Runs multiple unrelated commands (e.g., check existence, then set a value) in one network request to guarantee order and efficiency.

Supported MCP Clients

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients
Free for Subscribers

Waiting for input…

AI Agent

Upstash MCP Server: 23 Tools for Data Operations

These tools give your agent direct access to every core Redis command—from simple gets to complex pipelines—allowing you to manage application state natively within your workflow.

action019d8496

decr

Decrements a numeric value in Upstash Redis; if the key doesn't exist, it starts at zero.

action019d8496

del

Permanently deletes a specified key from Upstash Redis. Be careful with this operation.

action019d8496

exists

Quickly checks if any given key is present in the database.

action019d8496

expire

Sets an automatic Time To Live (TTL) on a key, ensuring it deletes itself after a set time.

action019d8496

get

Retrieves the string value associated with a specific Redis key.

action019d8496

hget

Gets the value of one field from a structured hash record.

action019d8496

hgetall

Retrieves all fields and their corresponding values from an entire hash record.

action019d8496

hset

Sets or overwrites a field within a structured Redis hash key.

action019d8496

incr

Increments a numeric counter value; if the key is new, it starts at zero.

key019d8496

key type

Determines and reports what kind of data type a given key holds (e.g., string, hash, list).

list019d8496

list keys

Lists keys in Redis based on patterns or prefixes; use this sparingly on large databases.

action019d8496

llen

Returns the total number of elements currently in a specified list.

action019d8496

lpush

Adds one or more values to the beginning (left) side of a Redis list.

action019d8496

lrange

Retrieves a defined range of elements from an existing Redis list.

action019d8496

pipeline

Groups multiple commands into a single request, running them together for better throughput.

action019d8496

publish

Sends a message to all active subscribers listening on a specific Redis channel.

action019d8496

rpush

Adds one or more values to the end (right) side of a Redis list.

action019d8496

sadd

Adds members to a unique set; duplicate additions are ignored automatically.

action019d8496

set

Sets or updates a string value for a key, allowing optional time expiration.

action019d8496

sismember

Checks if a specific member exists within a Redis set in constant time (O(1)).

action019d8496

smembers

Retrieves all unique members currently stored within a specified set.

action019d8496

srem

Removes one or more specific members from a Redis set.

action019d8496

ttl

Reports how many seconds are left before a key automatically expires.

Choose How to Get Started

Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.

Build Your Own

Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.

  • Import from OpenAPI, Swagger, or YAML specs
  • Create Agent Skills with progressive disclosure
  • Deploy to edge with MCPFusion framework
  • Built in DLP, auth, and compliance on every call
  • Real time usage dashboard and cost metering
  • Publish to catalog or keep private
Start building

Make Your AI Do More

Start with Upstash, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.

  • Use this MCP plus 4,700+ others, all in one place
  • Add new capabilities to your AI anytime you want
  • Every connection is secured and compliant automatically
  • Track usage and costs across all your servers
  • Works with Claude, ChatGPT, Cursor, and more
  • New servers added to the catalog every week

What you can do with this MCP connector

Your AI client connects directly to Upstash Redis, letting your agent treat complex data structures—like caches, message queues, or user state—as native functions in the conversation. You don't gotta open a command line; your agent runs atomic commands like lrange, hset, and pipeline instantly.

Managing Basic Keys and Strings:
You can use get to pull out the string value tied to any specific Redis key, or you can use set to write or update that simple text value. When you set a key, you can even specify an expiration time, giving it a Time To Live (TTL), which makes sure it cleans itself up automatically when it hits zero seconds.

If you need to change a counter, you've got incr, which increases the number by one—starting at zero if the key is brand new—or decr to count it down. You can also check if a key exists using exists before trying to read it, and if you're done with a piece of data, del permanently wipes that key from the database.

Working with Structured Data (Hashes):
For things like user profiles or complex records where one key holds multiple related pieces of info, you use hashes. You can set or overwrite individual fields inside a hash using hset. If you need to read just one specific field from that structured record, you pull it out with hget, but if you want everything—all the fields and their values—you call hgetall.

This keeps all related data neatly bundled under a single key.

Building Queues and Ordered Lists:
When you're dealing with job queues or ordered sequences, lists are your best friend. You can add items to either end of the list: use lpush to stick values on the left side (the head), or use rpush to tack them onto the right side (the tail).

To pull data out for processing, you use lrange, which retrieves a defined section of elements from that list. You can always check how many items are sitting in the queue using llen.

Tracking Unique Membership (Sets):
If your data needs to guarantee uniqueness—like tracking user permissions or unique tags—you gotta use sets. To add members, you call sadd, and it automatically ignores any duplicates; that's its superpower. You check if a specific member is already in the set super fast with sismember (it’s constant time, so it doesn't matter how big your database gets).

If you need to grab all the unique members stored there, use smembers. And remember, if those tags or permissions are stale, you can remove them using srem.

Advanced Operations and Efficiency:
For communication, you send messages out using publish, broadcasting a message to everyone listening on that specific Redis channel. To handle batches—say, checking existence, setting a key, and getting all the members of a set—you wrap it up into a single network request with the pipeline tool.

This is huge for throughput because you don't gotta wait for each command to run one after the other.

Beyond these core tools, your agent can figure out what kind of data a key holds using key_type. It also lets you list keys based on patterns or prefixes with list_keys, though you should use that sparingly when working with huge databases. If you're dealing with complex transaction logic, remembering to check the current TTL with ttl helps you anticipate when data will disappear.

Your agent handles all this: it processes ordered lists for queues, manages unique membership in sets, and uses hashes to keep related metadata together. It’s a full-stack memory layer for your conversational AI client.

How Upstash MCP Works

  1. 1 Subscribe to the server and supply your Upstash REST URL and API Token.
  2. 2 Your AI client sends a command request; it translates that action into specific Redis tool calls (e.g., lpush or hset).
  3. 3 The server executes the tools, returning structured data—the new counter value, the list contents, or confirmation of deletion.

The bottom line is, your agent runs complex database operations against Upstash Redis without you ever needing to open a dedicated terminal.

Who Is Upstash MCP For?

This is for the backend developer who gets tired of context switching between their IDE and a separate CLI window. It's also for the DevOps engineer who needs fast, auditable checks on cache health or job queues. If your work involves managing volatile, structured state in high-speed caches—this is what you need.

Backend Developer

Manages session storage, rate limit counters (incr), and feature flags using set with expiry.

DevOps Engineer

Audits database health by listing keys (list_keys) or checking key types (key_type); monitors TTLs for data lifecycle management.

Full-Stack Developer

Manipulates application state (like shopping cart items) using hashes and lists, keeping all logic within the chat interface.

What Changes When You Connect

  • Atomic Batching with pipeline: Instead of making multiple round trips for related commands—say, checking a key's type (key_type) then reading its content (get)—you batch them. This cuts down network overhead and keeps your workflow fast.
  • Structured State Management (Hashes): You don't have to read the whole user record just to update one field. Use hset on a hash key; it handles overwriting specific fields without touching others, which is cleaner than managing multiple individual keys.
  • Efficient Queue Handling: For job processing, use lists. Push tasks with lpush and pull them off the queue with rpop. Your agent makes this workflow explicit, making your system predictable.
  • Guaranteed Uniqueness (Sets): When tracking unique user IDs or permissions, using sadd ensures you never accidentally store duplicates. The built-in structure of a Set handles that for you automatically.
  • Built-in Expiration and Monitoring: Forget manually cleaning up stale data. You set an expiry time with the expire tool and can always check how much time is left using ttl. It keeps your cache clean by design.

Real-World Use Cases

01

Processing Asynchronous Job Queues

A system needs to process a batch of images. Instead of writing code that reads and deletes jobs manually, the agent handles it: first, lpush adds new job IDs; then, worker logic repeatedly calls rpop with lrange to pull the next available ID until the list is empty. The problem solved is reliable, sequential task processing.

02

Tracking Real-Time User Engagement

A product needs to track which features a user interacts with today. Instead of writing complex database inserts, you use a set: the agent calls sadd for every feature ID seen in a session. Later, querying the set via smembers gives all unique interactions instantly.

03

Managing User Session State

When a user logs in, you need to store their preferences and authentication token. You use the set tool on a key like session:user123, storing multiple fields (e.g., theme, role) inside a hash using hset. The expire tool then ensures this data cleans itself up after 8 hours.

04

Counting High-Volume Events

A new feature launches and needs to track how many times it's used minute by minute. Instead of complicated increment logic, the agent simply runs incr on a counter key (feature:views). This provides an atomic count that is instantly available for display.

The Tradeoffs

Reading and Writing Separately

User tries to read the current length of a list using llen first, then writes based on that number in two separate tool calls. This leaves a window for another process to modify the data between your two calls.

To avoid race conditions and improve throughput, use the pipeline tool. You group the read (lrange) and subsequent write/update commands together so Redis executes them as one atomic block.

Forgetting Key Expiry

Storing temporary data like a short-term OAuth token using only a simple set command without an expiration time. This pollutes the database and wastes memory.

Always pair your write operation with expire. If you set the key, immediately call expire <key> <seconds> to ensure cleanup happens automatically.

Overusing `del` carelessly

Running a simple delete command (del) on a critical counter or record without verifying its existence first. This can cause silent failure in upstream logic that expects the key to be there.

Always run exists <key> before running del <key>. If exists returns false, you know the operation isn't needed, preventing unnecessary side effects.

When It Fits, When It Doesn't

Use this Upstash server if your primary bottleneck is managing volatile state or high-volume caches. Specifically, you need atomic operations (like counters or job queues) and structured data manipulation that doesn't require complex relational joins. You should use it when simple key/value lookups are fast enough.

Don't use this if: 1) Your application requires guaranteed ACID properties across multiple different services (e.g., updating a user in Redis AND inserting into PostgreSQL). For that, you need a dedicated transaction manager or ORM layer. 2) You need complex querying (e.g., 'Find all users who lived in Texas and bought product X'). Redis is fast for lookups, not for deep relational queries. Stick to using list_keys only when absolutely necessary; it's slow on massive datasets.

Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Upstash. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.

VINKIUS INFRASTRUCTURE

Cloud Hosted

Managed infra

V8 Isolated

Sandboxed per request

Zero-Trust Proxy

No stored credentials

DLP Enforced

Policy on every call

GDPR Compliant

EU data residency

Token Compression

~60% cost reduction

How we secure it →

Works with Claude, ChatGPT, Cursor, and more

The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.

This server provides 23 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.

Available Capabilities

decr del exists expire get hget hgetall hset incr key_type list_keys llen lpush lrange pipeline publish rpush sadd set sismember smembers srem ttl

Dealing with data state changes shouldn't require a terminal context switch.

Today, if you need to check a user session flag, you might write code that calls an internal API. Then, when you hit a bug or need to debug, you have to open up Redis CLI, remember the exact key name, and manually type `GET user:session:xyz`. This process breaks your flow and adds friction.

With Upstash MCP Server, you just tell your agent what needs doing—'Check if the admin flag is set for user 123.' The agent runs a targeted `get` tool call. It brings that data directly into your chat window. You get instant context-aware results, zero terminal switching.

Upstash Redis MCP Server: Manage complex state from chat.

The process of managing structured data used to be a multi-step affair: checking the key's type (`key_type`), then maybe reading all fields (`hgetall`) just to find one value, and finally running another command to update it. It was clunky and slow.

Now you can use `pipeline` to bundle those operations into a single call. You tell your agent the whole sequence—read, validate, write—and it executes it in one shot. That's how fast your workflow is now.

Common Questions About Upstash MCP

How do I check if a key exists using Upstash Redis MCP Server? +

Use the exists tool. This lightweight operation checks for a key's presence without needing to retrieve its value or type, making it fast and safe for pre-checks.

What is the best way to manage job queues with Upstash Redis MCP Server? +

Use lists. Add new jobs using lpush (to put them on the left) and have your worker agent pull jobs off the queue using rpop (taking from the right). This provides a standard, reliable FIFO pattern.

Can I run multiple Redis commands at once with Upstash Redis MCP Server? +

Yes, use the pipeline tool. It sends many commands in a single HTTP request body, dramatically reducing network latency and improving throughput for related operations.

How do I set an expiry time on data using Upstash Redis MCP Server? +

Use the expire tool after setting your key. This sets a Time To Live (TTL) in seconds, ensuring that Redis automatically deletes the data when it's no longer needed.

Does Upstash Redis MCP Server support updating specific fields? +

Yes, use hset. If you have structured user data stored as a hash key, this tool lets your agent overwrite or add one field without affecting any other data points within that record.

How do I atomically increase or decrease a counter using the `incr` and `decr` tools in Upstash Redis MCP Server? +

The tools guarantee atomic updates, meaning concurrent requests won't corrupt your count. If the key doesn't exist, it initializes to 0 before applying the change. Use these for rate limiting or tracking event totals.

What is the most efficient way to audit and list keys using the `list_keys` tool in Upstash Redis MCP Server? +

You use wildcards, like 'session:*', to search by pattern. The list_keys tool lets you scope your search by prefix or suffix. Remember this function can slow down large databases, so use it sparingly.

How do I check for unique membership in a group using the `sismember` tool in Upstash Redis MCP Server? +

The sismember function performs fast membership checks on a set. It tells you instantly if an item belongs to the set, without retrieving any other data. This is ideal for access control lists.

Where do I find my Upstash REST URL and Token? +

Log in to the Upstash Console, select your Redis database, and look for the REST API section. You'll find the HTTPS Endpoint (your REST URL, e.g. https://xxx-yyy-12345.upstash.io) and the Token value. Copy both and paste them here. There are two token types: Standard (full access) and Read-Only (read-only commands). Use Standard for full functionality.

What Redis commands are supported via the REST API? +

The Upstash REST API supports most Redis commands including: Strings (GET, SET, DEL, EXISTS, EXPIRE, TTL, INCR, DECR), Hashes (HSET, HGET, HGETALL), Lists (LPUSH, RPUSH, LRANGE, LLEN), Sets (SADD, SMEMBERS, SISMEMBER, SREM), Keys (KEYS, TYPE, PING), and Pub/Sub (PUBLISH). The pipeline endpoint allows executing multiple commands in a single request. Blocking commands (BLPOP, BRPOP) and WATCH/UNWATCH are not supported.

Can I execute multiple commands atomically? +

The pipeline tool sends multiple commands in a single HTTP request for efficiency, but it is NOT atomic — other commands may interleave between them. For atomic multi-command execution, Upstash supports the /multi-exec endpoint (same syntax as pipeline but guarantees atomicity). However, this MCP server currently exposes the standard pipeline tool for batch operations.

Is the Upstash REST API rate-limited? +

Upstash does not enforce a fixed RPS limit. Instead, your plan defines a daily command limit. Each REST call counts as one command (or multiple commands if using pipeline). If you exceed your daily limit, commands will fail with a 400 error. Check your Upstash console for current usage. For high-throughput scenarios, consider using the pipeline endpoint to batch multiple commands into single HTTP requests.

More in this category

You might also like

Built & Managed by Vinkius 30s setup 23 tools

We've already built the connector for Upstash. Just plug in your AI agents and start using Vinkius.

No hosting. No infrastructure. No complex setup.
All 23 tools are live and waiting. You're up and running in seconds.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients

Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.

Zero hosting required Full MCP catalog included Enterprise-grade security Auto-updated by Vinkius

Built, hosted, and secured by Vinkius. You just connect and go.