by bitwarden
MCP server for interaction with Bitwarden.
# Add to your Claude Code skills
git clone https://github.com/bitwarden/mcp-serverA Model Context Protocol (MCP) server that provides AI assistants with secure access to Bitwarden password manager functionality through two complementary interfaces:
[!WARNING] This MCP server is designed exclusively for local use and must never be hosted publicly or exposed over a network.
When you grant an AI assistant access to this server, you are providing the ability to:
- Read vault items including passwords, secure notes, and sensitive data
- Create, modify, and delete vault items
- Access organization secrets and administrative functions
- Expose credentials and vault contents through AI responses
You are responsible for:
- Ensuring this server runs only on your local machine or self-hosted environment
- Understanding what data you're exposing to your AI assistant
- Being aware that AI responses may inadvertently reveal sensitive information
- Using appropriate AI providers (consider self-hosted or local LLMs for sensitive data)
- Never sharing configuration files containing session tokens or API credentials
- Monitoring logs for unexpected activity
Never:
- Deploy this server to cloud hosting, containers, or public servers
- Share your MCP configuration files with others
- Use this server over untrusted networks
No comments yet. Be the first to share your thoughts!
Use this tool responsibly and at your own risk.
The Model Context Protocol is an open standard that enables AI assistants to securely interact with local tools and services. This server exposes Bitwarden's vault management and organization administration capabilities to MCP-compatible AI clients like Claude Desktop.
For Vault Management and CLI tools:
npm install -g @bitwarden/cli)For Organization Administration:
[!WARNING] The configuration files below will contain sensitive credentials that grant access to your Bitwarden vault. Keep these files secure, never commit them to version control, and never share them with others. Ensure your MCP client (e.g., Claude Desktop) is configured to run the server locally only.
Add to your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"bitwarden": {
"command": "npx",
"args": ["-y", "@bitwarden/mcp-server"],
"env": {
"BW_SESSION": "your-session-token-here"
}
}
}
}
Get your session token:
bw login
bw unlock --raw
To enable organization administration features, add API credentials:
{
"mcpServers": {
"bitwarden": {
"command": "npx",
"args": ["-y", "@bitwarden/mcp-server"],
"env": {
"BW_SESSION": "your-session-token-here",
"BW_CLIENT_ID": "organization.your-client-id",
"BW_CLIENT_SECRET": "your-client-secret"
}
}
}
}
Get organization API credentials:
Requires that this repository be checked out locally. Once that's done:
npm install
npm run build
Then reference the built dist/index.js file from Claude desktop:
{
"mcpServers": {
"bitwarden": {
"command": "node",
"args": ["local/path/to/mcp-server/dist/index.js"],
"env": {
"BW_SESSION": "your-session-token-here"
}
}
}
}
Any MCP-compatible client can connect to this server via stdio transport. Refer to your client's documentation for configuration details.
| Variable | Required For | Description | Default |
| ------------------------ | --------------- | ------------------------------------------------ | ---------------------------------- |
| BW_SESSION | CLI operations | Session token from bw unlock --raw | - |
| BW_CLIENT_ID | API operations | Organization API client ID | - |
| BW_CLIENT_SECRET | API operations | Organization API client secret | - |
| BW_API_BASE_URL | API operations | Bitwarden API base URL | https://api.bitwarden.com |
| BW_IDENTITY_URL | API operations | OAuth2 identity server URL | https://identity.bitwarden.com |
| BW_ALLOWED_DIRECTORIES | File operations | Comma-separated list of allowed file directories | os.tmpdir() + '/bitwarden-files' |
Note: For self-hosted Bitwarden instances, set BW_API_BASE_URL and BW_IDENTITY_URL to your server URLs.
Once configured, you can interact with Bitwarden through your AI assistant:
Vault:
Organization Administration:
lock, sync, statuslist, getcreate_item, edit_item, delete, restorecreate_folder, edit_foldercreate_attachmentcreate_org_collection, edit_org_collection, edit_item_collections, move, confirmdevice_approval_list, device_approval_approve, device_approval_approve_all, device_approval_deny, device_approval_deny_allcreate_text_send, create_file_send, list_send, get_send, edit_send, delete_send, remove_send_passwordgeneratelist_org_collections, get_org_collection, update_org_collection, delete_org_collectionlist_org_members, get_org_member, invite_org_member, update_org_member, remove_org_member, reinvite_org_member, get_org_member_groups, update_org_member_groupslist_org_groups, get_org_group, create_org_group, update_org_group, delete_org_group, get_org_group_members, update_org_group_memberslist_org_policies, get_org_policy, update_org_policyget_org_eventsget_org_subscription, update_org_subscriptionimport_org_users_and_groupsgit clone https://github.com/bitwarden/mcp-server.git
cd mcp-server
npm install
npm run build # Compile TypeScript
npm test # Run test suite
npm run lint # Check code style
npm run lint:fix # Auto-fix linting issues
npm run inspect # Test with MCP Inspector
The MCP Inspector provides an interactive testing environment:
npm run build
npm run inspect
This opens a web interface where you can:
The project includes Jest unit tests covering validation, CLI commands, and core functionality.
# Run all tests
npm test
# Run tests in watch mod