RabbitMQ MCP Go
Um servidor MCP baseado em Go para integração com o broker de mensagens RabbitMQ.
Documentação
RabbitMQ MCP Go
Uma implementação em Go do servidor Model Control Protocol (MCP) para integração com RabbitMQ.
Este servidor fornece uma implementação para interagir com RabbitMQ por meio do protocolo MCP, permitindo que modelos de LLM realizem operações comuns do RabbitMQ através de uma interface padronizada.
![]()
Visão Geral
O RabbitMQ MCP Server preenche a lacuna entre modelos de LLM e RabbitMQ, permitindo que eles:
- Publiquem uma mensagem em uma fila ou exchange do RabbitMQ
Estrutura do Projeto
.
├── 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
Visão Geral dos Diretórios
Estrutura de Diretórios Interna
- tools/: Contém todas as implementações das ferramentas MCP. Cada ferramenta é um pacote separado que implementa a interface de ferramenta MCP.
- prompts/: Armazena modelos de prompt e configurações usados pelas ferramentas MCP.
- resources/: Abriga utilitários compartilhados, funções auxiliares e componentes reutilizáveis.
- config/: Gerencia a configuração da aplicação.
Primeiros Passos
- Instale o Go 1.24.3:
asdf install golang 1.24.3
- Clone o repositório:
git clone https://github.com/yourusername/rabbitmq-mcp-go.git
cd rabbitmq-mcp-go
- Instale as dependências:
go mod download
- Compile o projeto:
go build ./cmd/...
Integração com Cliente MCP
Configuração Básica
Adicione esta configuração às configurações do seu cliente MCP:
{
"mcpServers": {
"rabbitmq": {
"command": "rabbitmq-mcp-server",
"env": {
"RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
}
}
}
}
Integração com Cursor
Para usar com o Cursor, crie ou edite ~/.cursor/mcp.json:
{
"mcpServers": {
"rabbitmq": {
"command": "rabbitmq-mcp-server",
"env": {
"RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
}
}
}
}
Integração com Claude Desktop
Para usar com o Claude Desktop, edite seu arquivo de configuração:
- 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/"
}
}
}
}
Usando a Ferramenta de Publicação do RabbitMQ
A ferramenta de publicação permite enviar mensagens para filas ou exchanges do RabbitMQ por meio da interface MCP.
Parâmetros da Ferramenta
queue(string, opcional): Nome da fila para publicarexchange(string, opcional): Nome da exchange para publicarmessage(string, obrigatório): Conteúdo da mensagem a ser publicadacontent_type(string, opcional): Tipo de conteúdo da mensagem- Valores suportados: "text/plain" (padrão), "application/json"
headers(string, opcional): Cabeçalhos da mensagem em formato JSON
Exemplos de Interação
1. Publicando em uma Fila:
Usuário: "Envie uma mensagem 'Hello World' para a fila 'my_queue'"
O Assistente de IA usará a ferramenta de publicação:
{
"queue": "my_queue",
"message": "Hello, World!",
"content_type": "text/plain"
}
Resposta:
"Message published successfully to my_queue"
2. Publicando JSON em uma Exchange:
Usuário: "Publique uma atualização de status do pedido na exchange 'orders'"
O Assistente de IA usará a ferramenta de publicação:
{
"exchange": "orders",
"message": "{\"order_id\": \"12345\", \"status\": \"completed\"}",
"content_type": "application/json"
}
Resposta:
"Message published successfully to orders"
1. Publicando com Cabeçalhos:
Usuário: "Envie uma mensagem de alta prioridade para a fila de notificações"
O Assistente de IA usará a ferramenta de publicação:
{
"queue": "notifications",
"message": "Important system update",
"headers": "{\"priority\": \"high\", \"timestamp\": \"2024-03-20T12:00:00Z\"}"
}
Tratamento de Erros
A ferramenta retornará um erro nos seguintes casos:
- Nem fila nem exchange são especificadas
- O parâmetro obrigatório da mensagem está ausente
- Formato JSON inválido quando content_type é "application/json"
- Erros de conexão ou publicação no RabbitMQ
Desenvolvimento
Para adicionar uma nova ferramenta MCP:
- Crie um novo diretório em
internal/tools/ - Implemente a interface de ferramenta MCP
- Registre a ferramenta no aplicativo principal
- Adicione os prompts correspondentes em
internal/prompts/se necessário - Documente a ferramenta no README das ferramentas
Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.