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.
![]()
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
- Instalar Go 1.24.3:
asdf install golang 1.24.3
- Clonar el repositorio:
git clone https://github.com/yourusername/rabbitmq-mcp-go.git
cd rabbitmq-mcp-go
- Instalar dependencias:
go mod download
- 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 publicarexchange(string, opcional): Nombre del intercambio al que publicarmessage(string, obligatorio): Contenido del mensaje a publicarcontent_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:
- Cree un nuevo directorio bajo
internal/tools/ - Implemente la interfaz de herramientas MCP
- Registre la herramienta en la aplicación principal
- Agregue los prompts correspondientes en
internal/prompts/si es necesario - 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.