4,500+ servers built on MCP Fusion
Vinkius

QStash MCP. Manage reliable message flow 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

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

Just plug in your AI agents and start using Vinkius.

QStash (Serverless Message Queue) MCP Server lets your AI client manage background tasks and message delivery directly through natural language.

Publish delayed webhooks, create reliable FIFO queues with `upsert_queue`, schedule recurring jobs (`list_schedules`), and audit failed messages in the Dead Letter Queue (DLQ).

Stop relying on brittle cron jobs; run durable, serverless messaging workflows from your IDE.

What your AI agents can do

Batch messages

Send multiple messages to various destinations in a single request.

Bulk cancel messages

Cancel several pending messages by specifying filters and criteria.

Bulk delete dlq

Wipes all messages from the Dead Letter Queue at once.

+ 35 more capabilities included
Publish Delayed Webhooks

Send messages to a destination URL or group, scheduling when it should fire, including setting up retries and preventing duplicate sends.

Control Message Queues

Create, update, or list queues (upsert_queue, list_queues) to ensure tasks run in order (FIFO) with controlled resource parallelism.

Manage Scheduled Jobs

List and control recurring background jobs using cron-based schedules; you can pause or resume them directly.

Audit Dead Letter Queues (DLQ)

Inspect failed messages via list_dlq and manually retry specific failures with retry_dlq_message, ensuring no data loss.

Monitor Flow Control

Check and adjust rate limits across your messaging system using tools like get_flow_control_key and list_flow_control_keys to prevent resource overload.

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

QStash (Serverless Message Queue) MCP Server: 38 Tools

Manage every aspect of message flow—from publishing delayed webhooks to auditing dead letter queues—using these 38 direct tools.

batch019e5d4c

batch messages

Send multiple messages to various destinations in a single request.

bulk019e5d4c

bulk cancel messages

Cancel several pending messages by specifying filters and criteria.

bulk019e5d4c

bulk delete dlq

Wipes all messages from the Dead Letter Queue at once.

bulk019e5d4c

bulk retry dlq

Retries every single message currently sitting in the DLQ.

cancel019e5d4c

cancel message

Stops a specific message before it is delivered to its endpoint.

delete019e5d4c

delete dlq message

Removes one specific message from the Dead Letter Queue.

delete019e5d4c

delete queue

Permanently deletes an entire message queue.

delete019e5d4c

delete schedule

Deletes a scheduled background job entirely.

delete019e5d4c

delete url group

Removes a configured group of endpoints (a topic).

enqueue019e5d4c

enqueue message

Adds a message to a queue, guaranteeing FIFO order or controlled parallelism.

get019e5d4c

get dlq message

Retrieves the full details of one specific message that failed and landed in the DLQ.

get019e5d4c

get flow control key

Gets configuration details for a single rate limit key.

get019e5d4c

get global parallelism

Retrieves the overall global concurrency settings for your messaging system.

get019e5d4c

get keys

Fetches all QStash signing and access keys.

get019e5d4c

get message

Retrieves details about a message that is currently in flight or undergoing retry.

get019e5d4c

get queue

Gets the current status and configuration of a specific queue.

get019e5d4c

get schedule

Retrieves details about a single scheduled background job.

get019e5d4c

get url group

Gets the current configuration and endpoints for a specific URL Group.

list019e5d4c

list dlq

Shows a list of all messages that have failed delivery and are waiting in the Dead Letter Queue.

list019e5d4c

list flow control keys

Lists every rate limit key configured across your messaging system.

list019e5d4c

list logs

Retrieves a historical record of all QStash events and operational logs.

list019e5d4c

list queues

Provides an overview listing every message queue you have set up.

list019e5d4c

list schedules

Lists all currently active and paused background job schedules.

list019e5d4c

list url groups

Lists all topic groups of endpoints you've configured.

pause019e5d4c

pause flow control

Temporarily suspends a specific rate limit key to prevent service overuse.

pause019e5d4c

pause queue

Halts all message processing for a designated queue until you resume it.

pause019e5d4c

pause schedule

Stops a scheduled background job from running on its set trigger time.

pin019e5d4c

pin flow control

Sets permanent configuration rules for a rate limit key.

publish019e5d4c

publish message

Sends a message to a destination URL or URL Group, setting custom timing and retries.

remove019e5d4c

remove endpoints

Takes specified endpoints out of an existing URL Group (topic).

reset019e5d4c

reset flow control rate

Resets the current usage counter for a rate limit key.

resume019e5d4c

resume flow control

Reactivates a flow control key that was previously paused.

resume019e5d4c

resume queue

Restarts message processing for a queue that had been paused.

resume019e5d4c

resume schedule

Resumes a scheduled background job, allowing it to run again on its next trigger time.

retry019e5d4c

retry dlq message

Attempts to resend a specific message that failed and landed in the DLQ.

unpin019e5d4c

unpin flow control

Removes permanent configuration rules from a rate limit key.

upsert019e5d4c

upsert queue

Creates a new queue or updates an existing one with defined parameters like parallelism.

upsert019e5d4c

upsert url group

Creates a new topic group (URL Group) or updates an existing one's endpoints.

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 QStash (Serverless Message Queue), 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

Getting Started and Managing Queues

When you need reliable background processing that doesn't rely on brittle cron jobs, this server connects your AI client directly to QStash. You manage the entire message lifecycle—from scheduling to failure recovery—all through natural language commands.

You can check what queues you’ve set up using list_queues, or create a new one or modify an existing queue's parameters and parallelism with upsert_queue. If you need to view the current status of any specific line, use get_queue.

For managing topics (URL Groups), you can list all configured groups using list_url_groups, then check a group’s endpoints configuration via get_url_group; if you gotta build one or update its destinations, use upsert_url_group. You can also remove specific endpoints from a topic using remove_endpoints.

Sending and Controlling Messages

You don't just send messages; you control them. To dispatch a single message with custom timing, retries, or deduplication rules, use publish_message. If you gotta blast out multiple destinations at once, batch_messages sends several messages in one request. You can also cancel specific pending transmissions using cancel_message, or stop a whole bunch of them by filtering and criteria for bulk_cancel_messages.

To ensure tasks run in strict order (FIFO) or with controlled concurrency, use enqueue_message. If you need to send messages to multiple locations without defining full topic groups first, you can also use batch_messages.

System State and Auditing Failure

When things go wrong, your data doesn't just vanish. Failed transmissions land in the Dead Letter Queue (DLQ). You can see a list of every message that failed delivery using list_dlq, grab the full details on one specific failure with get_dlq_message, or manually try sending it again by calling retry_dlq_message.

If you know something's junk, you can remove one item from the DLQ with delete_dlq_message, or wipe out every message in the entire queue at once using bulk_delete_dlq.

To keep your system running smoothly, you can monitor scheduled jobs by listing them all with list_schedules; to check a single job's parameters, use get_schedule. You control these jobs directly: pause one with pause_schedule, or restart it when needed using resume_schedule.

Advanced System Control and Maintenance

You can manage the entire system’s throughput. Check how many keys you have configured by running get_keys, or review all rate limit settings with list_flow_control_keys. To get details on a specific key, use get_flow_control_key.

If usage gets too high, don't sweat it; you can temporarily suspend a key to prevent overuse using pause_flow_control, or reactivate it later with resume_flow_control. You can set permanent rules for any rate limit key using pin_flow_control, and remove those rules by calling unpin_flow_control. If you need to reset the usage counter on a key, use reset_flow_control_rate.

For system-wide oversight, check global concurrency limits with get_global_parallelism, or review all operational history using list_logs; for granular audit data, you can also view historical logs via list_logs.

Putting It All Together: Lifecycle Management

You control the state of every component. You can halt processing on a designated line with pause_queue, or restart it immediately with resume_queue. Similarly, if a scheduled job is running too often, you can pause it using pause_schedule and resume it later with resume_schedule. When you're done testing a queue or topic group, remember that you need to delete the entire resource using delete_queue, delete_url_group, or cleaning up a background job schedule with delete_schedule.

How QStash MCP Works

  1. 1 First, you subscribe to the server and input your unique QStash Token from the Upstash Console.
  2. 2 Next, you tell your AI client what you want done—for example, 'Schedule a webhook for 2 hours from now' or 'List all queues'.
  3. 3 The agent executes the necessary tools (publish_message, list_queues) and reports the result back to your chat, giving you confirmation and IDs.

The bottom line is: it turns complex API calls for message queuing into natural language commands that execute reliably from anywhere.

Who Is QStash MCP For?

This is for backend developers who hate writing boilerplate retry logic, and DevOps engineers who are tired of clicking through dashboards at 2 am to check queue health. If your job involves reliable data pipelines or scheduled tasks, you need this.

Backend Developer

Triggers webhooks and background jobs directly from their code editor using the agent, rather than writing explicit API calls.

DevOps Engineer

Monitors message queues, logs (list_logs), and DLQs without leaving their terminal or chat interface.

System Architect

Designs and tests complex messaging workflows—like failure fallback paths—using natural language commands for rapid prototyping.

What Changes When You Connect

  • Guaranteed delivery paths: Instead of just publishing a webhook, you use publish_message to set specific retries and delays. If the first attempt fails, the system handles the backoff, so your code doesn't need complex retry logic.
  • Full state visibility: You can list every queue (list_queues) and get detailed status reports for any single one using get_queue. This means you see if a service is backed up or paused immediately.
  • Zero data loss management: Failed messages don't vanish. Use list_dlq to audit them, and when you confirm the fix, use retry_dlq_message to put the message back on track. It’s built-in failure recovery.
  • Concurrency control: If one service gets hammered, it can slow down all your services. Tools like get_global_parallelism let you monitor and adjust rate limits (reset_flow_control_rate) before hitting a hard wall.
  • Automated job lifecycle: Stop worrying about cron jobs failing silently. You list schedules with list_schedules, and if something breaks, you can pause or resume the job directly via the agent.

Real-World Use Cases

01

Handling a payment webhook failure.

A user needs to process a post-payment event. Instead of letting the API fail and losing the data, they prompt their agent: 'Schedule this payment confirmation hook.' The agent uses publish_message, setting up three retries over 30 minutes. If all attempts fail, the message lands in the DLQ for manual inspection using list_dlq.

02

Migrating a monolithic task system.

An architect needs to break up old background jobs into reliable queues. They use upsert_queue multiple times, creating dedicated FIFO queues for 'image-processing' and 'email-service'. Then they tell the agent to monitor them using list_queues, validating that parallelism is limited correctly.

03

Auditing a production outage.

An ops engineer notices processing stopped. They ask their agent: 'What queues are paused, and what failed messages do we have?' The agent runs list_queues and then list_dlq. The engineer uses get_dlq_message to confirm the payload of a single bad message before triggering a mass retry with bulk_retry_dlq.

04

Testing rate limit impact.

A developer wants to test if their new feature overwhelms an external API. They run get_flow_control_key first to see the current limits, then use pause_flow_control before running a high-volume test. Once done, they use resume_flow_control and reset_flow_control_rate.

The Tradeoffs

Using simple HTTP calls for async tasks

A developer runs a webhook request directly via code, assuming success means completion. If the receiving service is down, the call fails and the process stops until manually fixed.

Use publish_message instead. You specify the target URL group and set up automatic retries and delays. The server handles the failure logic for you.

Ignoring failed messages

A job fails repeatedly, the message lands in the DLQ, and then nobody checks it until weeks later when the data is useless.

Periodically run list_dlq or ask your agent to do it. Use get_dlq_message to inspect the payload immediately so you can use retry_dlq_message before time runs out.

Manually managing cron jobs

Setting up a job in an external system, and if that system breaks or needs maintenance, the developer has to manually restart it.

Use list_schedules to see all current schedules. When necessary, use pause_schedule before maintenance, and then resume_schedule afterward. It's controlled right here.

When It Fits, When It Doesn't

You need this server if reliability is more important than simplicity. Use it when you absolutely cannot afford lost messages or delayed processing that needs automated recovery (e.g., payment webhooks, scheduled reports). If your goal is just 'send a message right now and forget it,' a standard HTTP client works fine. But if the job must run reliably—if failure requires retries, backoff, or manual auditing—you need QStash. Don't use it for simple data fetching; that’s what get_message is for. Use this to send and manage state. If you just want a list of queues, use list_queues; don't try to do the job management with the queue listing tool.

Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Upstash QStash. 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 38 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.

Available Capabilities

batch_messages bulk_cancel_messages bulk_delete_dlq bulk_retry_dlq cancel_message delete_dlq_message delete_queue delete_schedule delete_url_group enqueue_message get_dlq_message get_flow_control_key get_global_parallelism get_keys get_message get_queue get_schedule get_url_group list_dlq list_flow_control_keys list_logs list_queues list_schedules list_url_groups pause_flow_control pause_queue pause_schedule pin_flow_control publish_message remove_endpoints reset_flow_control_rate resume_flow_control resume_queue resume_schedule retry_dlq_message unpin_flow_control upsert_queue upsert_url_group

Dealing with failed webhooks feels like playing whack-a-mole.

Today, if a webhook fails because of temporary network hiccups or downstream service errors, you get an immediate failure log. You then have to write code that detects the failure, waits 5 minutes, retries it, and maybe tries again after another hour. That's brittle boilerplate.

With QStash, you just tell your agent what webhook needs publishing, along with the retry count and delay parameters. The server handles the entire lifecycle—the initial attempt, the backoff period, and all subsequent retries. You just get confirmation that it’s scheduled.

QStash MCP Server: Control message flow in your chat.

You used to have to switch between the terminal, a dashboard UI, and then write code just to check if a job was paused or what happened last week. It’s a three-tool dance just for basic monitoring.

Now, you ask your agent: 'List all my queues and tell me which one is paused.' It runs `list_queues` and reads the status directly into your chat window. The entire operational state is visible and actionable from one place.

Common Questions About QStash MCP

How do I schedule a message using publish_message? +

You specify the target destination URL or URL Group, and then define the delay time. The agent handles the formatting of that request for you, letting you set precise timing rules.

What is the difference between list_queues and get_queue? +

list_queues gives you a high-level inventory—a list of every queue name. get_queue dives deep into one specific queue, providing its current status, configuration details, and capacity metrics.

If I use bulk_retry_dlq, does it delete the message after retrying? +

No. The bulk_retry_dlq tool just attempts to resend all messages in the DLQ. If they fail again, they will remain or move to another failure state; you still need to monitor the logs.

Can I pause a queue using the agent? +

Yes. You prompt your agent with the queue name and ask it to pause the processing. It executes pause_queue and immediately confirms that message intake has stopped for that specific service.

How do I ensure messages are processed in order? +

You must use enqueue_message with the appropriate parameters to guarantee FIFO (First-In, First-Out) processing. This ensures sequential execution where order matters.

What happens if I exceed my rate limit when using `publish_message`? +

The system handles excess traffic by throttling your request automatically. You can check and adjust these limits by running list_flow_control_keys. This ensures service stability during high-volume sends.

If I call `delete_queue`, are the messages currently waiting in that queue also deleted? +

Yes, calling delete_queue removes all associated message data and records from that queue. Use this tool with caution; it’s permanent cleanup.

How can my agent retrieve the necessary signing keys before calling tools like `enqueue_message`? +

Your AI client must first use get_keys. This action provides the required credentials and signatures needed for all subsequent write operations, securing your workflow.

How can I schedule a message to be sent later? +

Use the publish_message tool and provide the delay parameter (e.g., '10m' for 10 minutes) or a not_before Unix timestamp.

What happens if a message fails all retry attempts? +

The message is moved to the Dead Letter Queue (DLQ). You can use list_dlq to find it and retry_dlq_message to attempt delivery again.

Can I manage recurring tasks like cron jobs? +

Yes! You can use list_schedules to see existing ones, and pause_schedule or resume_schedule to control them.

More in this category

You might also like

Built & Managed by Vinkius 30s setup 38 tools

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

No hosting. No infrastructure. No complex setup.
All 38 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.