Vaultwarden-MCP

Um servidor MCP hospedado localmente para interações entre o Claude e uma instância Vaultwarden hospedada usando a CLI.

Documentação

Vaultwarden MCP: conecte o Claude ao seu cofre de senhas auto-hospedado

Um servidor MCP que dá ao Claude acesso a um cofre Vaultwarden ou Bitwarden auto-hospedado através da CLI oficial do Bitwarden. Pesquise seus logins, consulte-os, adicione novos e edite-os, a partir de uma janela de chat.

O Claude nunca recebe uma senha. Ele não pode alterar nada sem que você clique em Salvar.

CI Latest release Licence: GPL v3

Vaultwarden MCP inline card showing a GitHub login: username, hidden password with reveal and copy buttons, one-time code, site, and notes. Vault status card in dark mode showing the vault unlocked, the instance address, and when it last synced.

Não afiliado ao Bitwarden ou Vaultwarden. Este é um projeto pessoal que utiliza a CLI publicada do Bitwarden. Leia SECURITY.md antes de apontá-lo para um cofre que você valoriza.

Conteúdo · O que ele faz · Instalação · Compatibilidade · Configurações · Ferramentas · Solução de problemas · Segurança

O que ele faz

Peça um login e um cartão aparece ao lado da resposta, com a senha oculta atrás de uma fileira de pontos e um botão de copiar ao lado. Peça um novo e você recebe um rascunho preenchido com uma senha gerada que é salva quando você pressiona Salvar, e não antes.

O Claude podeO Claude não pode
Pesquisar no cofre e listar pastasLer uma senha, código de uso único ou nota, a menos que você aprove em uma janela do desktop, uma vez por solicitação
Ver nomes de itens, nomes de usuário e sitesCriar, editar ou excluir qualquer coisa até você pressionar Salvar ou Confirmar no cartão
Ver se um item tem senha, código ou notasExcluir permanentemente. Exclusões vão para a lixeira, onde seu servidor as mantém por 30 dias
Gerar uma senha no cartãoAlterar qual servidor de cofre é usado. Isso é fixado na instalação
Preparar alterações para você confirmarVer sua senha mestra. Você a digita em uma janela do desktop

SECURITY.md explica por que cada linha está onde está.

O cartão

New login draft card with name, username, site, a generated password with strength meter, folder picker, and Save and Cancel buttons. Confirmation card showing the old username struck through beside the new one. Trash confirmation card noting that the server keeps trashed items for 30 days.

Qualquer coisa sensível acontece aqui, e não na conversa. O cartão segue os temas claro e escuro do Claude.

Revelar mostra um segredo por trinta segundos e depois o oculta. Copiar nunca o exibe: o servidor grava o valor diretamente na sua área de transferência e o limpa trinta segundos depois, marcado para que o histórico da área de transferência do Windows e a área de transferência em nuvem o ignorem. Itens que você marcou como "solicitar senha mestra novamente" pedem sua senha novamente antes de qualquer uma das ações.

Os ícones dos sites vêm do serviço de ícones da sua própria instância, o mesmo que o cofre web usa. Essa é a única origem da qual o cartão pode carregar qualquer coisa. Itens sem ícone mostram a inicial do nome.

Instalação

Claude Desktop, a partir de um release

  1. Baixe vaultwarden-mcp-<version>.mcpb do último release.
  2. Clique duas vezes nele. O Claude Desktop o instala como uma extensão.
  3. Digite o endereço do seu cofre, como https://vault.example.com. Todo o resto é opcional.
  4. Peça ao Claude para entrar no seu cofre. Uma janela abre no seu desktop para seu e-mail, senha mestra e código de duas etapas, se você usar um.

Nada mais para instalar. A CLI do Bitwarden viaja dentro do pacote.

Claude Desktop, a partir do código-fonte

git clone https://github.com/ShadowsDistant/Vaultwarden-MCP.git
cd Vaultwarden-MCP
npm install --legacy-peer-deps
npm run build
node scripts/install.mjs --server https://vault.example.com --email you@example.com

Em seguida, saia completamente do Claude Desktop e reabra-o.

No Windows, use scripts\setup.ps1 em vez disso. Ele compila em %USERPROFILE%\.vaultwarden-mcp, o que importa se você clonou em uma pasta do OneDrive:

.\scripts\setup.ps1 -Install -Server https://vault.example.com -Email you@example.com

Claude Code

claude mcp add vaultwarden --env VW_MCP_SERVER_URL=https://vault.example.com -- node /path/to/Vaultwarden-MCP/dist/index.js

Qualquer outro cliente MCP

O servidor fala MCP via stdio, então qualquer coisa que possa iniciar um servidor stdio pode executá-lo. Aponte a configuração do seu cliente para o ponto de entrada compilado:

{
  "mcpServers": {
    "vaultwarden": {
      "command": "node",
      "args": ["/path/to/Vaultwarden-MCP/dist/index.js"],
      "env": {
        "VW_MCP_SERVER_URL": "https://vault.example.com",
        "VW_MCP_EMAIL": "you@example.com"
      }
    }
  }
}

No Windows, forneça o caminho completo para node.exe e escape as barras invertidas nos caminhos.

Entrando

Peça ao Claude para entrar. A janela que abre pertence a este servidor, não ao Claude, e o que você digita vai por um pipe para a CLI do Bitwarden sem passar pela conversa.

Se algo pedir sua senha mestra dentro do chat, não é este servidor.

Compatibilidade

Node20 ou mais recente. A CLI do Bitwarden está incluída.
CofreVaultwarden 1.37.2 ou mais recente, ou o serviço hospedado do Bitwarden.
WindowsSuporte completo. As janelas de entrada e confirmação usam WPF.
macOSSuporte completo, usando osascript para janelas.
LinuxPrecisa de zenity ou kdialog para as janelas. Sem um, desbloqueie o cofre você mesmo e passe BW_SESSION.
Cartões inlinePrecisam de um host que implemente a extensão MCP Apps. Claude Desktop e Claude Code implementam.
Outros clientes MCPAs ferramentas funcionam em qualquer lugar. Sem suporte a cartões, as ferramentas exclusivas de cartão nunca são registradas, e revelações e confirmações caem para janelas do desktop.

Uma máquina sem interface gráfica ainda pode executar o servidor: desbloqueie o cofre você mesmo com bw unlock --raw e inicie-o com BW_SESSION definido.

Configurações

Defina estas opções nas configurações da extensão no Claude Desktop, ou como variáveis de ambiente na configuração do seu cliente.

VariávelPadrãoO que faz
VW_MCP_SERVER_URLobrigatórioO endereço do seu cofre. Deliberadamente não configurável a partir de uma conversa.
VW_MCP_EMAILnenhumPré-preenche a janela de entrada.
VW_MCP_IDLE_LOCK_MIN0Também bloqueia após este número de minutos ocioso. 0 bloqueia apenas quando o aplicativo fecha.
VW_MCP_MODEL_REVEALaskask permite que o Claude solicite um segredo por vez, com uma janela que você deve aprovar. off recusa imediatamente.
VW_MCP_HOME~/.vaultwarden-mcpOnde ficam o cache do cofre, a configuração e o log.
VW_MCP_CA_FILEnenhumUm pacote de certificados CA, se sua instância usa uma autoridade de certificação privada.
VW_MCP_ALLOW_HTTPnão definidoPermite um endereço http simples para um host diferente de localhost.
VW_MCP_REVEAL_SECONDS30Por quanto tempo um segredo revelado permanece na tela.
VW_MCP_CLIPBOARD_CLEAR_SECONDS30Por quanto tempo um segredo copiado permanece na área de transferência.
BW_SESSIONnão definidoUma sessão já desbloqueada, para uma máquina sem desktop.

Ferramentas

⧉ marca as ferramentas que desenham um cartão.

FerramentaO que faz
vault_status ⧉Se o cofre está conectado, bloqueado ou desbloqueado, e qual instância ele usa
vault_login ⧉Entrar, em uma janela no seu desktop
vault_unlock ⧉Desbloquear, em uma janela no seu desktop, e depois mostrar o cofre
vault_lockBloquear imediatamente e esquecer a chave da sessão
vault_syncBuscar o conteúdo mais recente do servidor
vault_search ⧉Encontrar itens por nome, site ou pasta. Nomes e hosts apenas, sem nomes de usuário em massa
vault_get_item ⧉Um item completo, menos todos os segredos
vault_list_foldersAs pastas, com os ids usados para arquivar ou filtrar
vault_generate_password ⧉Gerar uma senha ou frase secreta no cartão, não na conversa
vault_create_login ⧉Preparar um novo login para você salvar
vault_edit_item ⧉Preparar uma alteração para você confirmar, mostrada como antes-e-depois
vault_trash_item ⧉Preparar a movimentação de um item para a lixeira, para você confirmar
vault_restore_item ⧉Trazer um item de volta da lixeira
vault_reveal_secretPedir a você, em uma janela do desktop, que libere um segredo na conversa

Um segundo conjunto de ferramentas serve apenas ao cartão: ler um segredo em um clique, copiar para a área de transferência, salvar um rascunho. Elas são marcadas como exclusivas do aplicativo e permanecem não registradas, a menos que o cliente declare suporte a MCP Apps na inicialização, então em qualquer outro host elas não existem e nada pode chamá-las.

Solução de problemas

"A CLI do Bitwarden não está instalada." A CLI incluída não sobreviveu à instalação. Execute novamente npm install --legacy-peer-deps e npm run build, ou reinstale a extensão.

Nenhuma janela aparece ao entrar. No Linux, instale zenity ou kdialog. Em outros lugares, verifique ~/.vaultwarden-mcp/logs/server.log. Como alternativa, execute bw unlock --raw você mesmo e passe o resultado como BW_SESSION.

"Não foi possível alcançar o servidor do cofre." Verifique o endereço nas suas configurações e se a instância está ativa. Para uma autoridade de certificação privada, aponte VW_MCP_CA_FILE para o pacote.

O Claude diz que um item foi criado, mas ele não está lá. Era um rascunho, e rascunhos não são gravados até você pressionar Salvar. Se nenhum cartão apareceu, seu host não suporta MCP Apps.

O cofre continua bloqueando. Por padrão, ele permanece aberto até o aplicativo fechar. Se você definiu VW_MCP_IDLE_LOCK_MIN, aumente-o ou defina-o de volta para 0.

Desenvolvimento

npm install --legacy-peer-deps
npm run build     # tsc, then bundle the card into a single HTML file
npm test          # 81 tests against a fake Bitwarden CLI, over real stdio
npm run preview   # card views at http://localhost:8766, plus /selftest.html
npm run pack      # build the .mcpb extension bundle

Nenhum teste toca um cofre real. test/fake-bw/bw.js emula a CLI, correspondendo aos seus --response envelopes e reproduzindo dois de seus bugs conhecidos, e o servidor roda como um processo filho real dirigido pelo cliente do SDK MCP. O teste crítico planta uma string sentinela em cada segredo e falha se ela aparecer em qualquer lugar que um modelo possa ler.

src/index.ts      server bootstrap, instructions, shutdown
src/config.ts     settings, paths, URL validation
src/bw.ts         CLI wrapper: re-entrant lock, minimal environment, response parsing
src/session.ts    the session key, sign-in, unlock, idle lock
src/vault.ts      item operations, and the model-facing and card-facing projections
src/sanitize.ts   the untrusted-text screen and the result envelope
src/pending.ts    staged changes: unguessable ids, single use, ten-minute lifetime
src/prompt.ts     native dialogs
src/clipboard.ts  copy, and the clear that only fires if the value is still there
src/tools.ts      the tool surface
ui/card.html      the card's markup and theme
ui/card.ts        the card
scripts/          build, install, package, dialog and clipboard helpers
test/             unit tests, end-to-end tests, the fake CLI and dialog

Licença

Copyright (C) 2026 ShadowsDistant.

Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License conforme publicada pela Free Software Foundation, seja a versão 3 da Licença, ou (a seu critério) qualquer versão posterior. Ele é distribuído sem qualquer garantia, sem mesmo a garantia implícita de comercialização ou adequação a um propósito específico. Veja a GNU General Public License para detalhes.

A CLI do Bitwarden incluída é redistribuída sob seus próprios termos.