RabbitMQ Mcp Go

Created By
maiconjobima year ago
A Go implementation of Model Control Protocol (MCP) server for RabbitMQ integration
Overview

RabbitMQ MCP Go

A Go implementation of Model Control Protocol (MCP) server for RabbitMQ integration.

This server provides an implementation for interacting with RabbitMQ via the MCP protocol, enabling LLM models to perform common RabbitMQ operations through a standardized interface.

Go Report Card Go Version SLSA 3 Go Reference GitHub Release License: MIT

Overview

The RabbitMQ MCP Server bridges the gap between LLM models and RabbitMQ, allowing them to:

  • Publish a message to a RabbitMQ queue or exchange

MCP Client Integration

Basic Configuration

Add this configuration to your MCP client settings:

{
  "mcpServers": {
    "rabbitmq": {
      "command": "rabbitmq-mcp-server",
      "env": {
        "RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
      }
    }
  }
}

Cursor Integration

To use with Cursor, create or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "rabbitmq": {
      "command": "rabbitmq-mcp-server",
      "env": {
        "RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
      }
    }
  }
}

Claude Desktop Integration

To use with Claude Desktop, edit your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "rabbitmq": {
      "command": "rabbitmq-mcp-server",
      "env": {
        "RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
      }
    }
  }
}

Using the RabbitMQ Publish Tool

The publish tool allows you to send messages to RabbitMQ queues or exchanges through the MCP interface.

Tool Parameters

  • queue (string, optional): Queue name to publish to
  • exchange (string, optional): Exchange name to publish to
  • message (string, required): Message content to publish
  • content_type (string, optional): Content type of the message
    • Supported values: "text/plain" (default), "application/json"
  • headers (string, optional): Message headers in JSON format

Example Interactions

1. Publishing to a Queue:

User: "Send a message 'Hello World' to the queue 'my_queue'"

AI Assistant will use the publish tool:

{
  "queue": "my_queue",
  "message": "Hello, World!",
  "content_type": "text/plain"
}

Response:

"Message published successfully to my_queue"

2. Publishing JSON to an Exchange:

User: "Publish order status update to the 'orders' exchange"

AI Assistant will use the publish tool:

{
  "exchange": "orders",
  "message": "{\"order_id\": \"12345\", \"status\": \"completed\"}",
  "content_type": "application/json"
}

Response:

"Message published successfully to orders"

1. Publishing with Headers:

User: "Send a high-priority message to the notifications queue"

AI Assistant will use the publish tool:

{
  "queue": "notifications",
  "message": "Important system update",
  "headers": "{\"priority\": \"high\", \"timestamp\": \"2024-03-20T12:00:00Z\"}"
}

Error Handling

The tool will return an error in the following cases:

  • Neither queue nor exchange is specified
  • Required message parameter is missing
  • Invalid JSON format when content_type is "application/json"
  • RabbitMQ connection or publishing errors

Server Config

{
  "mcpServers": {
    "rabbitmq": {
      "command": "rabbitmq-mcp-server",
      "env": {
        "RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
      }
    }
  }
}
Project Info
Created At
a year ago
Updated At
a year ago
Author Name
maiconjobim
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Alloy

10 hours ago