Upstash MCP. Manage Caches, Queues, and State in Redis from Chat.
Works with every AI agent you already use
…and any MCP-compatible client
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.
Determines if a key exists in the database without retrieving any data.
Retrieves or sets simple text values for specific keys, including setting automatic expiration times (TTL).
Stores and fetches multiple related fields within a single key (like user metadata).
Adds, removes, or retrieves ranges of ordered items from lists.
Manages collections where every item must be unique, ideal for tracking membership.
Runs multiple unrelated commands (e.g., check existence, then set a value) in one network request to guarantee order and efficiency.
Ask AI about this MCP
Supported MCP Clients
Waiting for input…
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.
019d8496decr
Decrements a numeric value in Upstash Redis; if the key doesn't exist, it starts at zero.
019d8496del
Permanently deletes a specified key from Upstash Redis. Be careful with this operation.
019d8496exists
Quickly checks if any given key is present in the database.
019d8496expire
Sets an automatic Time To Live (TTL) on a key, ensuring it deletes itself after a set time.
019d8496get
Retrieves the string value associated with a specific Redis key.
019d8496hget
Gets the value of one field from a structured hash record.
019d8496hgetall
Retrieves all fields and their corresponding values from an entire hash record.
019d8496hset
Sets or overwrites a field within a structured Redis hash key.
019d8496incr
Increments a numeric counter value; if the key is new, it starts at zero.
019d8496key type
Determines and reports what kind of data type a given key holds (e.g., string, hash, list).
019d8496list keys
Lists keys in Redis based on patterns or prefixes; use this sparingly on large databases.
019d8496llen
Returns the total number of elements currently in a specified list.
019d8496lpush
Adds one or more values to the beginning (left) side of a Redis list.
019d8496lrange
Retrieves a defined range of elements from an existing Redis list.
019d8496pipeline
Groups multiple commands into a single request, running them together for better throughput.
019d8496publish
Sends a message to all active subscribers listening on a specific Redis channel.
019d8496rpush
Adds one or more values to the end (right) side of a Redis list.
019d8496sadd
Adds members to a unique set; duplicate additions are ignored automatically.
019d8496set
Sets or updates a string value for a key, allowing optional time expiration.
019d8496sismember
Checks if a specific member exists within a Redis set in constant time (O(1)).
019d8496smembers
Retrieves all unique members currently stored within a specified set.
019d8496srem
Removes one or more specific members from a Redis set.
019d8496ttl
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
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 Subscribe to the server and supply your Upstash REST URL and API Token.
- 2 Your AI client sends a command request; it translates that action into specific Redis tool calls (e.g.,
lpushorhset). - 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.
Manages session storage, rate limit counters (incr), and feature flags using set with expiry.
Audits database health by listing keys (list_keys) or checking key types (key_type); monitors TTLs for data lifecycle management.
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
hseton 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
lpushand pull them off the queue withrpop. Your agent makes this workflow explicit, making your system predictable. - Guaranteed Uniqueness (Sets): When tracking unique user IDs or permissions, using
saddensures 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
expiretool and can always check how much time is left usingttl. It keeps your cache clean by design.
Real-World Use Cases
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.
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.
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.
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
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
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.
Multi-server workflows that include Upstash MCP
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
More in this category
Directus
Turn any SQL database into a powerful headless CMS with instant REST and GraphQL APIs for your custom content models.
Glob Pattern Tester
Test whether a file path matches a glob pattern using the same algorithm used by npm and git. 130M+ weekly downloads.
Railway Alternative
Manage cloud deployments via Railway — list projects, inspect services, track deployments and manage variables and volumes from any AI agent.
You might also like
Wati Alternative
Automate WhatsApp communication via Wati — send template messages, manage contacts, list chatbots, and assign operators directly from your AI agent.
Transport for London
Get live tube status, bus arrivals, journey planning, road disruptions and bike point data across London.
DeepL
Translate text between 30+ languages with neural machine translation that captures nuance and tone better than generic engines.