RabbitMQ MCP Go

Un servidor MCP basado en Go para integrarse con el broker de mensajes RabbitMQ.

Documentación

RabbitMQ MCP Go

Una implementación en Go del servidor de Protocolo de Control de Modelos (MCP) para la integración con RabbitMQ.

Este servidor proporciona una implementación para interactuar con RabbitMQ a través del protocolo MCP, permitiendo que los modelos de LLM realicen operaciones comunes de RabbitMQ mediante una interfaz estandarizada.

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

rabbitmq-mcp-demo

Resumen

El servidor MCP de RabbitMQ une la brecha entre los modelos de LLM y RabbitMQ, permitiéndoles:

  • Publicar un mensaje en una cola o intercambio de RabbitMQ

Estructura del Proyecto

.
├── cmd/                    # Application entry points
├── internal/              # Private application code
│   ├── config/           # Configuration management
│   ├── tools/            # MCP tools implementations
│   ├── prompts/          # Prompt templates and configurations
│   └── resources/        # Shared resources and utilities
├── pkg/                   # Public library code
├── api/                   # API definitions and documentation
└── scripts/              # Build and utility scripts

Resumen de Directorios

Estructura de Directorios Interna

  • tools/: Contiene todas las implementaciones de herramientas MCP. Cada herramienta es un paquete separado que implementa la interfaz de herramientas MCP.
  • prompts/: Almacena plantillas de prompts y configuraciones utilizadas por las herramientas MCP.
  • resources/: Alberga utilidades compartidas, funciones auxiliares y componentes reutilizables.
  • config/: Gestiona la configuración de la aplicación.

Primeros Pasos

  1. Instalar Go 1.24.3:
asdf install golang 1.24.3
  1. Clonar el repositorio:
git clone https://github.com/yourusername/rabbitmq-mcp-go.git
cd rabbitmq-mcp-go
  1. Instalar dependencias:
go mod download
  1. Compilar el proyecto:
go build ./cmd/...

Integración con Clientes MCP

Configuración Básica

Agregue esta configuración a los ajustes de su cliente MCP:

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

Integración con Cursor

Para usar con Cursor, cree o edite ~/.cursor/mcp.json:

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

Integración con Claude Desktop

Para usar con Claude Desktop, edite su archivo de configuración:

  • 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/"
      }
    }
  }
}

Uso de la Herramienta de Publicación de RabbitMQ

La herramienta de publicación le permite enviar mensajes a colas o intercambios de RabbitMQ a través de la interfaz MCP.

Parámetros de la Herramienta

  • queue (string, opcional): Nombre de la cola a la que publicar
  • exchange (string, opcional): Nombre del intercambio al que publicar
  • message (string, obligatorio): Contenido del mensaje a publicar
  • content_type (string, opcional): Tipo de contenido del mensaje
    • Valores admitidos: "text/plain" (predeterminado), "application/json"
  • headers (string, opcional): Encabezados del mensaje en formato JSON

Ejemplos de Interacción

1. Publicación en una Cola:

Usuario: "Enviar un mensaje 'Hola Mundo' a la cola 'my_queue'"

El Asistente de IA utilizará la herramienta de publicación:

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

Respuesta:

"Message published successfully to my_queue"

2. Publicación de JSON en un Intercambio:

Usuario: "Publicar actualización de estado del pedido en el intercambio 'orders'"

El Asistente de IA utilizará la herramienta de publicación:

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

Respuesta:

"Message published successfully to orders"

1. Publicación con Encabezados:

Usuario: "Enviar un mensaje de alta prioridad a la cola de notificaciones"

El Asistente de IA utilizará la herramienta de publicación:

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

Manejo de Errores

La herramienta devolverá un error en los siguientes casos:

  • No se especifica ni cola ni intercambio
  • Falta el parámetro de mensaje obligatorio
  • Formato JSON inválido cuando content_type es "application/json"
  • Errores de conexión o publicación de RabbitMQ

Desarrollo

Para agregar una nueva herramienta MCP:

  1. Cree un nuevo directorio bajo internal/tools/
  2. Implemente la interfaz de herramientas MCP
  3. Registre la herramienta en la aplicación principal
  4. Agregue los prompts correspondientes en internal/prompts/ si es necesario
  5. Documente la herramienta en el README de herramientas

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request).

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulte el archivo LICENSE para obtener más detalles.