Skip to main content
Glama
fkom13
by fkom13
README.md‱6.03 kB
# 🔐 MCP Vaultwarden Server [![NPM Version](https://img.shields.io/npm/v/mcp-vaultwarden-server.svg)](https://www.npmjs.com/package/mcp-vaultwarden-server) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org) 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](https://bitwarden.com/help/cli/). --- ## 📩 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` : ```json { "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 :** ```bash git clone https://github.com/fkom13/mcp-vaultwarden.git cd mcp-vaultwarden ``` 2. **Installez les dĂ©pendances :** ```bash npm install ``` 3. **Configurez et lancez :** CrĂ©ez un fichier `.env` Ă  partir de `.env.example` et remplissez-le, puis lancez le serveur. ```bash 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. ```json { "tool": "get_secret", "arguments": { "name": "API Key - OpenAI" } } ``` ### `list_secrets` Recherche des secrets contenant un terme. ```json { "tool": "list_secrets", "arguments": { "search_term": "database" } } ``` ### `get_secret_template` Obtient un modĂšle JSON pour crĂ©er un nouveau secret. ```json { "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`. ```json { "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. ```json { "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. ```json { "tool": "delete_secret", "arguments": { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } } ``` ### `sync` Force la synchronisation du coffre local avec le serveur distant. ```json { "tool": "sync", "arguments": {} } ``` --- ## đŸ€ Contribution Les contributions sont les bienvenues ! N'hĂ©sitez pas Ă  forker le projet et Ă  ouvrir une Pull Request. ## 📝 Licence MIT

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