An open API service indexing awesome lists of open source software.

https://github.com/hyperpolymath/poly-queue-mcp

Unified MCP server for message queue management. Tools for Redis Streams, RabbitMQ, and NATS.
https://github.com/hyperpolymath/poly-queue-mcp

deno mcp mcp-server message-queue model-context-protocol nats poly-mcp rabbitmq redis

Last synced: 4 months ago
JSON representation

Unified MCP server for message queue management. Tools for Redis Streams, RabbitMQ, and NATS.

Awesome Lists containing this project

README

          

= poly-queue-mcp
:toc:
:toc-placement!:

image:https://img.shields.io/badge/RSR-compliant-gold[RSR Compliant,link=https://github.com/hyperpolymath/rhodium-standard-repositories]
image:https://img.shields.io/badge/MCP-server-blue[MCP Server,link=https://github.com/modelcontextprotocol]
image:[License,link="https://github.com/hyperpolymath/palimpsest-license"]

// SPDX-License-Identifier: PMPL-1.0
// SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell

Unified MCP server for message queue management. Provides Model Context Protocol tools for interacting with Redis Streams, RabbitMQ, and NATS messaging systems.

toc::[]

== Overview

poly-queue-mcp exposes message queue capabilities through the Model Context Protocol (MCP), enabling AI assistants and other MCP clients to manage message queues, publish/subscribe to topics, and monitor queue health across multiple messaging platforms.

== Adapters

=== Redis Streams (8 tools)
Stream-based messaging with Redis:

* `redis_xadd` - Add an entry to a stream
* `redis_xread` - Read entries from streams
* `redis_xrange` - Get a range of entries from a stream
* `redis_xlen` - Get the length of a stream
* `redis_xinfo` - Get information about a stream
* `redis_xgroup_create` - Create a consumer group
* `redis_xreadgroup` - Read from a consumer group
* `redis_xack` - Acknowledge processed messages

=== RabbitMQ (9 tools)
Enterprise message broker via Management API:

* `rabbitmq_queues` - List all queues
* `rabbitmq_queue` - Get queue details
* `rabbitmq_exchanges` - List all exchanges
* `rabbitmq_publish` - Publish a message
* `rabbitmq_get` - Get messages from queue (non-destructive)
* `rabbitmq_purge` - Purge all messages from queue
* `rabbitmq_overview` - Get RabbitMQ overview
* `rabbitmq_connections` - List all connections
* `rabbitmq_channels` - List all channels

=== NATS (8 tools)
High-performance messaging with JetStream support:

* `nats_publish` - Publish a message to a subject
* `nats_request` - Send request and wait for reply
* `nats_subscribe` - Subscribe and receive messages
* `nats_stream_list` - List JetStream streams
* `nats_stream_info` - Get stream information
* `nats_consumer_list` - List consumers for a stream
* `nats_server_info` - Get NATS server info
* `nats_account_info` - Get account info

== Requirements

* https://deno.land/[Deno] runtime
* https://redis.io/[Redis] with Streams support (for Redis tools)
* https://www.rabbitmq.com/[RabbitMQ] with Management Plugin (for RabbitMQ tools)
* https://nats.io/[NATS] CLI (for NATS tools)

== Configuration

=== Redis

[source,bash]
----
export REDIS_URL=localhost:6379
----

=== RabbitMQ

[source,bash]
----
export RABBITMQ_URL=http://localhost:15672
export RABBITMQ_USER=guest
export RABBITMQ_PASS=guest
----

=== NATS

[source,bash]
----
export NATS_URL=nats://localhost:4222
----

== Installation

[source,bash]
----
git clone https://github.com/hyperpolymath/poly-queue-mcp
cd poly-queue-mcp
npm install
npm run build
----

== Usage

Run as MCP server:

[source,bash]
----
deno run --allow-run --allow-read --allow-env --allow-net main.js
----

Or use the systemd service:

[source,bash]
----
systemctl --user enable poly-queue-mcp
systemctl --user start poly-queue-mcp
----

== Security Considerations

* Use authentication for all queue connections
* Enable TLS for production deployments
* Avoid exposing management APIs publicly
* Use least-privilege credentials

== License

MIT