bw-proxy
Enables secure Bitwarden organization vault control with AI agents, featuring human-in-the-loop approval, ACID-compliant transactions, and redacted access to keep secrets hidden from LLMs.
README
๐ BW-Proxy โ Sovereign Bitwarden Appliance
Zero Trust ยท AI-Blind ยท ACID Durable
The authoritative appliance for Bitwarden organization vault control. Keep AI agents and LLMs blind to your real secrets while giving them full auditing and refactoring powers.
๐๏ธ Project Architecture (Sovereign Tree)
BW-PROXY PROJECT
โโโ ๐ src/bw_proxy/ โโโ Core Engine (ACID Transaction, WAL, Redaction)
โโโ ๐ scripts/ โโโ Host-side Shims (Dynamic porting, Browser HITL)
โโโ ๐ docs/ โโโ Deep-dive Hardening & Operator Guides
โโโ ๐ install.sh โโโ System-wide Appliance Installer (Root-owned)
โโโ ๐ Makefile โโโ Developer & Release Automator
โโโ ๐ Dockerfile โโโ Multi-stage Hardened Runtime
๐ Installation Modes
A. Appliance Mode (Standard Pro)
Ideal for production use. Installs a root-owned binary and uses the official image.
Via curl (Zero-Clone):
curl -fsSL https://raw.githubusercontent.com/KpihX/bw-proxy/main/install.sh | sudo bash
What it does internally:
- Image: Pulls
ghcr.io/kpihx/bw-proxy:latest. - Binary: Creates
/usr/local/bin/bw-proxy(owned by root). - Config: Creates
/etc/bw-proxy/. - Data: Creates a persistent Docker volume
bw_mcp_bw-data.
B. Developer Mode (Source Clone)
Ideal for contribution or source-level auditing.
git clone https://github.com/KpihX/bw-proxy.git
cd bw-proxy
make docker-install # Requires SUDO for builds
โ๏ธ Core Mechanisms (The Magic)
1. The HITL Browser Flux
When an AI agent requests a vault change, the proxy intercepts the execution:
- Port Allocation: The host shim finds a free random port.
- Container Launch: The appliance starts, mapping the internal HITL server to that port.
- URL Interception: The shim detects the Approval URL in stdout and automatically opens your browser.
- Human Approval: You review the rationale and the diff, then approve with your Master Password.
2. The 3-Phase ACID Commit (WAL)
Every mutation is transactional.
- Simulation: Actions are validated in RAM first.
- WAL: Actions are encrypted and logged to disk before execution.
- Commit: Actions are sent to the Bitwarden CLI.
- Rollback: If a crash occurs, the proxy performs a LIFO rollback on the next start.
3. Scoped Union Fetch
To handle organizational vaults without metadata loss:
- The proxy discovers all accessible Organizations and Collections first.
- It then performs scoped queries (
--organizationid) to fetch "rich" items with full metadata. - It merges results with the global vault list, ensuring organizational assignments are preserved.
๐น๏ธ Interface Modes
1. CLI Mode (Recommended for Humans & AI Agents) ๐
The CLI is the most efficient and agnostic way to interact with the appliance. It uses RPC 2.0 (JSON), supports exact examples, and provides rich help documentation.
For AI Agents: Using the CLI via run_command is more token-efficient than MCP and offers greater flexibility.
bw-proxy admin status # Health check
bw-proxy admin unlock # Create a 5-minute session lease
bw-proxy do list-items # Quick redacted scan
[!TIP] AI Integration: To enable full AI recognition of these commands, copy the
.agents/skills/bw-proxydirectory to your global~/.agents/skills/or into a project-specific.agents/skills/directory.
2. MCP Mode (Standard Stdio)
Start the stdio server for standard MCP clients like Gemini, Claude, or Cursor.
bw-proxy mcp serve
๐ ๏ธ Maintenance & Release
- Update:
curl ... | sudo bash(re-runs the installer). - Uninstall:
sudo ./uninstall.sh. - Release (Dev):
make release(automatic tagging and GHCR propulsion).
โ๏ธ License
MIT License. See LICENSE for details.
Designed with โค๏ธ by KpihX.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.