Skip to main content
Glama
fkom13

MCP Vaultwarden Server

by fkom13

🔐 MCP Vaultwarden Server

NPM Version License Node

Un serveur MCP (Model-Context-Protocol) qui expose une interface simple et robuste pour interagir avec une instance Vaultwarden auto-hébergée. Il agit comme un wrapper autour de la CLI officielle de Bitwarden (bw), permettant à des agents IA ou des scripts d'automatisation de gérer des secrets de maniÚre programmatique.

đŸ€” Pourquoi ce projet ?

Vaultwarden est une alternative populaire et lĂ©gĂšre Ă  Bitwarden, mais son automatisation peut ĂȘtre complexe. La CLI officielle (bw) nĂ©cessite une gestion manuelle de la session (login, unlock, etc.), ce qui n'est pas idĂ©al pour une utilisation par des agents IA ou dans des scripts non-interactifs.

Ce MCP résout ce problÚme en :

  • GĂ©rant automatiquement la session : Il dĂ©verrouille le coffre Ă  la demande et maintient la session active en cache.

  • Exposant des outils simples : Fournit des fonctions claires (get_secret, list_secrets, etc.) via le protocole MCP.

  • PrĂ©venant les blocages : IntĂšgre des timeouts et un systĂšme de verrouillage pour gĂ©rer les accĂšs concurrents de maniĂšre fiable.

✹ FonctionnalitĂ©s

  • Auto-dĂ©verrouillage : Le coffre est dĂ©verrouillĂ© Ă  la premiĂšre requĂȘte et la clĂ© de session est mise en cache.

  • Gestion des Conflits : Un mĂ©canisme de "lock" empĂȘche les dĂ©verrouillages multiples et concurrents.

  • API ComplĂšte : Supporte la lecture, la crĂ©ation, la mise Ă  jour et la suppression de secrets.

  • ModĂšles de Secrets : Fournit des templates JSON pour crĂ©er de nouveaux Ă©lĂ©ments facilement.

  • SĂ©curitĂ© : S'appuie sur la CLI bw officielle pour toutes les opĂ©rations cryptographiques.


⚠ PrĂ©requis

Pour que ce serveur fonctionne, la machine qui l'exécute doit avoir la CLI Bitwarden (bw) installée et accessible dans le PATH.

Suivez les instructions d'installation officielles : Installer la CLI Bitwarden.


📩 Installation

Méthode 1 : Via NPM (Recommandé)

C'est la méthode la plus simple pour une utilisation avec un client MCP comme gemini-cli.

Configurez votre client pour qu'il lance le serveur via npx :

{
  "mcpServers": {
    "vaultwarden": {
      "command": "npx",
      "args": [
        "mcp-vaultwarden-server"
      ],
      "env": {
        "BITWARDEN_HOST": "https://votre-instance.vaultwarden.com",
        "BW_CLIENTID": "user.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "BW_CLIENTSECRET": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "BW_MASTER_PASSWORD": "votre-mot-de-passe-maitre"
      }
    }
  }
}

Méthode 2 : Depuis les Sources (Git)

  1. Clonez le dépÎt :

    git clone https://github.com/fkom13/mcp-vaultwarden.git
    cd mcp-vaultwarden
  2. Installez les dépendances :

    npm install
  3. Configurez et lancez : Créez un fichier .env à partir de .env.example et remplissez-le, puis lancez le serveur.

    cp .env.example .env
    nano .env
    node server.js

🔒 Configuration & SĂ©curitĂ©

La configuration se fait via des variables d'environnement.

  • BITWARDEN_HOST: L'URL de votre instance Vaultwarden.

  • BW_CLIENTID: Votre Client ID d'API.

  • BW_CLIENTSECRET: Votre Client Secret d'API.

  • BW_MASTER_PASSWORD: Votre mot de passe principal.

AVERTISSEMENT DE SÉCURITÉ : La gestion du BW_MASTER_PASSWORD est critique.

  • Ne jamais commiter votre fichier .env ou vos secrets dans un dĂ©pĂŽt Git.

  • Pour une utilisation en production, prĂ©fĂ©rez des mĂ©thodes de gestion de secrets plus robustes, comme les secrets de votre orchestrateur (Kubernetes Secrets, Docker Secrets) ou un service dĂ©diĂ© (HashiCorp Vault).

  • Ce MCP est conçu pour ĂȘtre exĂ©cutĂ© dans un environnement contrĂŽlĂ© et sĂ©curisĂ©.


🧰 RĂ©fĂ©rence des Outils (API)

Voici les outils exposés par ce MCP, avec des exemples d'appels.

get_secret

RécupÚre un secret par son nom ou son ID.

{
  "tool": "get_secret",
  "arguments": {
    "name": "API Key - OpenAI"
  }
}

list_secrets

Recherche des secrets contenant un terme.

{
  "tool": "list_secrets",
  "arguments": {
    "search_term": "database"
  }
}

get_secret_template

Obtient un modÚle JSON pour créer un nouveau secret.

{
  "tool": "get_secret_template",
  "arguments": {
    "type": "login"
  }
}

Types valides : login, note, card, identity.

create_secret

Crée un nouvel élément. Utilisez d'abord get_secret_template.

{
  "tool": "create_secret",
  "arguments": {
    "item_json": "{\\\"type\\\":1,\\\"name\\\":\\\"Mon Nouveau Login\\\",\\\"notes\\\":\\\"Ceci est une note secrĂšte.\\\",\\\"favorite\\\":false,\\\"login\\\":{\\\"username\\\":\\\"monuser\\\",\\\"password\\\":\\\"MonP@ssw0rd!\\\",\\\"uris\\\":[{\\\"uri\\\":\\\"https://example.com\\\"}]}}"
  }
}

Note : Le JSON doit ĂȘtre une chaĂźne de caractĂšres Ă©chappĂ©e.

update_secret

Met Ă  jour un secret existant par son ID.

{
  "tool": "update_secret",
  "arguments": {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "item_json": "{\\\"name\\\":\\\"Ancien Login (Mis Ă  jour)\\\"}"
  }
}

delete_secret

Supprime un secret par son ID.

{
  "tool": "delete_secret",
  "arguments": {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}

sync

Force la synchronisation du coffre local avec le serveur distant.

{
  "tool": "sync",
  "arguments": {}
}

đŸ€ Contribution

Les contributions sont les bienvenues ! N'hésitez pas à forker le projet et à ouvrir une Pull Request.

📝 Licence

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fkom13/mcp-vaultwarden'

If you have feedback or need assistance with the MCP directory API, please join our Discord server