bussin-mcp
Servidor MCP para Azure Service Bus: inspecionar e pesquisar corpos de mensagens em filas, tópicos e filas de mensagens mortas, e então reenviar, enviar ou purgar. Somente leitura por padrão, com operações de envio e destrutivas atrás de sinalizadores de adesão separados.
Documentação
Conecte o Claude, ChatGPT, Cursor ou qualquer outro assistente compatível com MCP diretamente ao seu Azure Service Bus. Pergunte quais filas estão acumulando mensagens, o que as mensagens mortas têm em comum ou peça para reprocessar um lote de falhas, em vez de clicar em uma interface para descobrir.
bussin-mcp é um servidor gratuito e de código aberto do Model Context Protocol, construído sobre o mesmo cliente AMQP que alimenta o explorador web Bussin. Ele roda localmente, autentica como você e é somente leitura até que você decida o contrário.
Experimente com um único comando
O modo demo roda contra um simulador em processo com filas pré-populadas. Sem assinatura do Azure, sem login, nada para limpar depois:
npx -y bussin-mcp --demo
Quando estiver pronto para apontá-lo para um namespace real, faça login com a CLI do Azure e remova a flag:
az login
npx -y bussin-mcp --namespace my-namespace
Adicionando ao seu cliente de IA
Claude Code
claude mcp add bussin -- npx -y bussin-mcp --namespace my-namespace
Claude Desktop, Cursor e outros clientes MCP
Adicione o seguinte ao seu arquivo de configuração MCP: claude_desktop_config.json para Claude Desktop, ou .cursor/mcp.json para Cursor:
{
"mcpServers": {
"bussin": {
"command": "npx",
"args": ["-y", "bussin-mcp", "--namespace", "my-namespace"]
}
}
}
Reinicie o cliente e as ferramentas do Service Bus estarão disponíveis na sua próxima conversa.
O que você pode perguntar
Uma vez conectado, estas são perguntas comuns, não uma linguagem de consulta:
- "Quais filas no meu namespace têm mensagens mortas?"
- "Mostre-me as últimas cinco mensagens mortas na fila de pedidos e diga o que elas têm em comum."
- "Pesquise na assinatura de pagamentos por qualquer coisa mencionando timeout."
- "Estas três mensagens da DLQ falharam por um bug que já corrigimos, então reenvie-as."
- "Qual é a profundidade do backlog em cada fila agora?"
Modelo de segurança
O chamador é um modelo de linguagem, então tudo que é irreversível é opt-in. Ferramentas que você não habilitou não são registradas de forma alguma. Elas são invisíveis para o modelo, em vez de apenas recusadas, então não há como convencê-lo a usá-las.
| Flag | Ferramentas que ela desbloqueia | Risco |
|---|---|---|
| (nenhuma, o padrão) | list_namespaces, list_queues, list_topics, list_subscriptions, peek_messages, search_messages | Somente leitura. O peek não bloqueia, consome ou incrementa a contagem de entregas. |
--allow-send | send_message, resubmit_dead_letter | Adiciona mensagens que seus consumidores processarão. |
--allow-destructive | delete_messages, dead_letter_messages, purge_entity | Remove mensagens permanentemente. Irrecuperável. |
Proteções adicionais
- Peek é genuinamente não destrutivo. Sem bloqueio, sem consumo, sem incremento na contagem de entregas.
- Purge exige confirmação. O argumento
confirmdeve corresponder exatamente ao nome da entidade que está sendo purgada. - Reenvio é aditivo por padrão. Os originais com dead-letter permanecem no lugar, a menos que você também habilite operações destrutivas, então uma reprodução é segura para repetir.
- Buscas são limitadas. Pesquisas e purges param em um timeout configurável, em vez de rodar indefinidamente.
- Corpos de mensagem são truncados em 4000 caracteres, para que uma única carga útil superdimensionada não inunde o contexto do modelo.
Autenticação e permissões
Entra ID é o padrão. O servidor usa o DefaultAzureCredential do Azure, então ele capta um az login existente, uma identidade gerenciada ou variáveis de ambiente de service principal. É a mesma identidade e as mesmas atribuições de função que você já usa.
| Função | Necessária para |
|---|---|
| Azure Service Bus Data Receiver | Inspecionar (peek) e pesquisar mensagens |
| Reader (no namespace) | Listar namespaces, filas e tópicos com contagens de mensagens |
| Azure Service Bus Data Sender | Somente se você habilitar --allow-send |
Strings de conexão também são suportadas, para namespaces que sua identidade conectada não consegue ver. Elas autenticam apenas o plano de dados. Listar entidades passa pelo Azure Resource Manager e exige uma identidade real.
Por que este é um programa separado
Uma pergunta razoável: o Bussin roda no seu navegador, então por que o servidor MCP dele não roda também?
Clientes MCP se conectam a um servidor de duas maneiras: iniciando um processo local e conversando com ele via entrada e saída padrão, ou chamando um endpoint HTTP remoto. Uma aba do navegador não é nenhuma das duas. Ela não pode escutar em uma porta, não pode ser iniciada por outro programa e só existe enquanto a aba está aberta.
Então bussin-mcp é um pequeno programa de linha de comando que compartilha o cliente AMQP e o comportamento do Bussin, mas roda por conta própria. Nada é enviado a um servidor Bussin em nenhum dos casos: o aplicativo web conecta-se a partir do seu navegador, e o servidor MCP conecta-se a partir da sua máquina.
Perguntas frequentes
O que é um servidor MCP para Azure Service Bus?
O Model Context Protocol é um padrão aberto que permite que assistentes de IA chamem ferramentas externas. Um servidor MCP para Azure Service Bus expõe operações de fila (inspecionar mensagens, pesquisar payloads, inspecionar filas de mensagens mortas) como ferramentas que um assistente pode invocar, para que você possa depurar um problema de mensageria fazendo uma pergunta em vez de clicar em uma interface.
O Claude pode se conectar ao meu Azure Service Bus?
Sim. Instale o bussin-mcp e adicione-o à configuração do seu cliente MCP. Ele roda localmente na sua máquina, autentica como você via Entra ID e conecta-se diretamente ao Azure. Suas mensagens e credenciais nunca são enviadas a um servidor de terceiros.
É seguro deixar uma IA acessar um Service Bus de produção?
Ele é somente leitura por padrão. Enviar exige --allow-send; excluir, marcar como dead-letter e purgar exigem --allow-destructive. Ferramentas que você não habilitou nunca são registradas, então o modelo não consegue vê-las. Purgar adicionalmente exige passar o nome exato da entidade como confirmação.
O servidor MCP precisa do aplicativo web Bussin?
Não. Ele é autônomo. Ele compartilha o mesmo cliente AMQP do aplicativo web, mas roda de forma independente. Você pode usar um, ambos ou nenhum.
Quais permissões do Azure ele precisa?
Azure Service Bus Data Receiver para inspecionar e pesquisar, Reader no namespace para listar entidades e suas contagens, e Azure Service Bus Data Sender somente se você habilitar o envio.