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.

FlagFerramentas que ela desbloqueiaRisco
(nenhuma, o padrão)list_namespaces, list_queues, list_topics, list_subscriptions, peek_messages, search_messagesSomente leitura. O peek não bloqueia, consome ou incrementa a contagem de entregas.
--allow-sendsend_message, resubmit_dead_letterAdiciona mensagens que seus consumidores processarão.
--allow-destructivedelete_messages, dead_letter_messages, purge_entityRemove 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 confirm deve 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çãoNecessária para
Azure Service Bus Data ReceiverInspecionar (peek) e pesquisar mensagens
Reader (no namespace)Listar namespaces, filas e tópicos com contagens de mensagens
Azure Service Bus Data SenderSomente 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.