@marcelocorrea/mcp-rabbitmq
v1.0.0
Published
MCP server for interacting with RabbitMQ over the Model Context Protocol.
Downloads
3
Maintainers
Readme
mcp-rabbitmq
Servidor Model Context Protocol (MCP) para trabalhar com o RabbitMQ usando Node.js e TypeScript. O pacote fornece um conjunto de ferramentas MCP para publicar mensagens, inspecionar filas e realizar operações básicas usando parâmetros de conexão definidos exclusivamente por variáveis de ambiente.
Recursos
- Conexão via
RABBITMQ_URLou parâmetros granulares (RABBITMQ_HOST,RABBITMQ_USERNAME, etc.). - Publicação de mensagens em filas ou exchanges, com suporte a payload JSON, persistência e cabeçalhos.
- Inspeção do tamanho e número de consumidores de uma fila (
check_queue). - Limpeza rápida de filas com
purge_queue. - Binário pronto (
mcp-rabbitmq) para uso direto via MCP, além de API programática.
Instalação
npm install mcp-rabbitmqOu utilize diretamente com npx:
npx mcp-rabbitmqConfiguração das variáveis de ambiente
Defina os parâmetros de conexão antes de iniciar o servidor.
Opção 1: URL pronta
export RABBITMQ_URL="amqp://user:password@host:5672/vhost"Opção 2: Parâmetros individuais
export RABBITMQ_HOST="localhost"
export RABBITMQ_PORT="5672"
export RABBITMQ_USERNAME="guest"
export RABBITMQ_PASSWORD="guest"
export RABBITMQ_VHOST="/"Variáveis adicionais:
RABBITMQ_PREFETCH: define oprefetchaplicado ao canal usado pelo MCP.
Uso via MCP
- Garanta que as variáveis de ambiente estejam carregadas (pode-se usar um arquivo
.env). - Execute o servidor MCP em modo stdio:
npx mcp-rabbitmq- Configure seu cliente MCP para apontar para o comando acima.
Exemplo no Cursor
Crie (ou edite) o arquivo .cursor/mcp.json do seu projeto e adicione uma entrada semelhante:
"rabbitmq": {
"command": "npx",
"args": [
"--yes",
"mcp-rabbitmq"
],
"env": {
"RABBITMQ_URL": "amqp://user:password@host:5672/vhost"
}
}Caso prefira configurar os parâmetros individualmente, substitua RABBITMQ_URL pelos pares RABBITMQ_HOST, RABBITMQ_PORT, RABBITMQ_USERNAME, RABBITMQ_PASSWORD e RABBITMQ_VHOST. Depois de salvar, o Cursor exibirá o servidor rabbitmq na lista de MCPs disponíveis.
Exemplo no Cursor (com build local)
Se você preferir usar o build gerado na sua máquina (sem npx), primeiro garanta que o pacote esteja instalado e compilado:
npm install
npm run buildEm seguida, referencie o binário gerado em dist/server.js no .cursor/mcp.json:
"rabbitmq-local": {
"command": "node",
"args": [
"./path/para/mcp-rabbitmq/dist/server.js"
],
"cwd": "./path/para/mcp-rabbitmq",
"env": {
"RABBITMQ_HOST": "localhost",
"RABBITMQ_PORT": "5672",
"RABBITMQ_USERNAME": "guest",
"RABBITMQ_PASSWORD": "guest",
"RABBITMQ_VHOST": "/"
}
}Troque ./path/para/mcp-rabbitmq pelo caminho absoluto ou relativo correto no seu projeto. Essa abordagem evita downloads via npx e usa diretamente os arquivos já compilados no seu ambiente.
Exemplo no Codex (npx)
Se estiver usando o Codex CLI, adicione ao arquivo codex.toml:
[mcp.rabbitmq]
command = "npx"
args = ["--yes", "mcp-rabbitmq"]
[mcp.rabbitmq.env]
RABBITMQ_URL = "amqp://user:password@host:5672/vhost"Exemplo no Codex (build local)
Após instalar e gerar a build local (npm install && npm run build), configure o codex.toml assim:
[mcp.rabbitmq-local]
command = "node"
args = ["./path/para/mcp-rabbitmq/dist/server.js"]
cwd = "./path/para/mcp-rabbitmq"
[mcp.rabbitmq-local.env]
RABBITMQ_HOST = "localhost"
RABBITMQ_PORT = "5672"
RABBITMQ_USERNAME = "guest"
RABBITMQ_PASSWORD = "guest"
RABBITMQ_VHOST = "/"Atualize os caminhos conforme a estrutura da sua máquina. O Codex carregará o servidor MCP automaticamente a partir dessas definições.
Ferramentas expostas
publish_message: publica mensagens em uma fila ou exchange. Argumentos:queue(opcional) – nome da fila destino.exchange(opcional) – nome da exchange destino.routingKey(opcional) – rota utilizada ao publicar em uma exchange.payload(obrigatório) – string ou objeto JSON com a mensagem.persistent,contentType,headers,queueOptions,exchangeOptions(opcionais) – ajustes finos da publicação.
check_queue: retornamessageCounteconsumerCountde uma fila.purge_queue: remove todas as mensagens pendentes da fila informada.
Uso programático
import { createRabbitMqServer, loadConfig } from "mcp-rabbitmq";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
dotenv.config();
const { server } = createRabbitMqServer({ config: loadConfig() });
server.connect(new StdioServerTransport());Scripts disponibilizados
npm run build: compila o projeto TypeScript paradist/.npm run clean: remove a pastadist/.npm run lint: executa o ESLint.
Publicação no npm
O pacote já está configurado com files, exports e script prepare para gerar a build automaticamente antes de ser publicado com npm publish.
Licença
MIT
