Bitwarden MCP 服务器
一个模式上下文协议(MCP)服务器,通过两个互补接口为AI助手提供安全访问Bitwarden密码管理器功能:
- 故障管理和CLI工具 通过 Bitwarden CLI
- 组织行政 通过 Bitwarden 公共 API
[尖叫声] 这个MCP服务器是专为本地用途而设计的,绝不能通过网络公开或曝光.
当您允许AI助手访问此服务器时, 您正在提供以下能力:
- 读取包括密码、安全笔记和敏感数据在内的金库项目
- 创建、修改和删除金库项目
- 查阅组织机密和行政职能
- 通过大赦国际的答复公布证书和金库内容
您负责:
- 确保此服务器只运行在您的本地机上或自托管环境中
- 了解你向人工智能助理透露的数据
- 意识到大赦国际的答复可能无意中透露出敏感信息
- 使用适当的人工智能供应商(考虑自我托管或本地有限责任公司提供敏感数据)
- 永不共享包含会话符号或 API 证书的配置文件
- 监测意外活动的日志
永远:
- 将此服务器用于云托管、容器或公共服务器
- 与其他人共享您的 MCP 配置文件
- 使用此服务器覆盖未信任的网络
- 允许无信任的AI客户或服务访问
使用这个工具是负责任的 并冒着自己的风险.
什么是MCP吗?
这个 示范背景协议 是一种开放标准,使AI助手能够安全地与本地工具和服务互动. 这个服务器将Bitwarden的金库管理和组织管理能力暴露给克洛德桌面等MCP相容的AI客户端.
特征
地窖管理和CLI工具(CLI)
- 会话管理: 通过本地 OS 密码对话框解锁金库, 锁定金库, 与服务器同步, 检查状态
- 项目业务: 列出、检索、创建、编辑、删除、恢复金库项目
- 支持登录、安全笔记、卡片和身份
- 通过 URL、文件夹、收藏或垃圾状态进行高级过滤
- 文件夹管理: 组织带有文件夹的项目
- 附录: 上传、下载和管理文件附件
- 密码工具: 生成安全密码并获取 TOTP 代码
- Bitwarden 发送: 创建和管理安全电子股票(文本/文件)
- 组织项目: 将项目移动到组织,管理收藏
- 设备批准: 批准或拒绝新设备登录请求
- 成员管理层: 确认组织成员注册
组织行政管理
- 收款: 创建、更新、删除和管理收藏权限
- 成员: 邀请、更新角色、删除成员、管理组任务
- 组: 创建基于角色的接入组并指派成员
- 政策: 制定和执行组织安全政策
- 审计日志: 检索组织活动历史
- 订阅: 查看和更新组织账单信息
- 批量导入:从外部系统导入用户和组
快速启动
先决条件
对于地壳管理和CLI工具:
- Bitwarden 语录 已安装( 前).
npm install -g @bitwarden/cli(中文(简体) ) - 节点.js 22+
- 比特沃德账户
关于组织行政:
- 节点.js 22+
- Bitwarden 团队或企业组织
- 组织所有者或管理员权限
配置
[尖叫声] 下面的配置文件将包含允许访问您 Bitwarden 金库的敏感证书 。 保持这些文件的安全,从不将这些文件用于版本控制,也从不与他人共享. 确保您的 MCP 客户端( 如 Claude Desktop ) 配置为仅本地运行服务器 .
备选案文1:克洛德桌面(建议)
添加到您的 Claude 桌面配置文件 :
- 马科斯数字 :
~/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"
}
}
}
}
获取会话符号 :
bw login
bw unlock --raw
为了具备组织管理特点,增加API证书:
{
"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"
}
}
}
}
获取组织 API 证书 :
- 转到您的 Bitwarden 网页默认
- 导航到您的组织 设置 我的组织
- 滚动到“ API 密钥” 部分
- 点击“ 查看 API 密钥” 并认证
备选案文2:当地建造和参考
要求本地检查此仓库 。 完成后:
npm install
npm run build
然后参考已建成的 dist/index.js 来自 Claude 桌面的文件 :
{
"mcpServers": {
"bitwarden": {
"command": "node",
"args": ["local/path/to/mcp-server/dist/index.js"],
"env": {
"BW_SESSION": "your-session-token-here"
}
}
}
}
备选办法3:其他多边方案客户
任何MCP兼容客户端都可以通过stdio传输连接到这个服务器. 请查看您的客户端的文档以了解配置细节 .
环境变量
| 变量 | 所需时间 | 说明 | 默认 |
|---|---|---|---|
BW_SESSION | CLI行动 | 会话符号来自 bw unlock --raw | - 说吧 |
BW_CLIENT_ID | API 操作 | 组织 API 客户端标识 | - 说吧 |
BW_CLIENT_SECRET | API 操作 | 组织 API 客户端秘密 | - 说吧 |
BW_API_BASE_URL | API 操作 | Bitwarden API 基础 URL | https://api.bitwarden.com |
BW_IDENTITY_URL | API 操作 | OAuth2 身份服务器 URL | https://identity.bitwarden.com |
BW_ALLOWED_DIRECTORIES | 文件操作 | 逗号分隔的允许文件目录列表 . 需求 用于基于文件的工具(例如:. create_file_send, (中文(简体) ), create_attachment; 未设置时, 所有文件操作都会被拒绝 . | - 说吧 |
BW_CLI_PATH | CLI行动 | 绝对路径 bw 可执行性或其JS切入点. 只有当 CLI 无法自动定位时才需要 PATH (例如,它没有在 PATH,或非标准的全球安装布局). | 自动解析自 PATH |
说明: 对于自备的 Bitwarden 实例, 设置 BW_API_BASE_URL 财务报告和审定财务报表 BW_IDENTITY_URL 到您的服务器 URL.
说明: BW_CLIENT_ID 财务报告和审定财务报表 BW_CLIENT_SECRET 是 MCP 服务器读取的环境变量名称。 使用时 bw login --apikey 在启动脚本中, Bitwarden CLI 读取 BW_CLIENTID 财务报告和审定财务报表 BW_CLIENTSECRET (无下划线) 见 Bitwarden CLI 文档。 。 。 .
用法实例
配置后, 您可以通过您的 AI 助手与 Bitwarden 交互 :
默认 :
- "记录我所有的登录项目"
- "给我的证书"
- "为我的家WiFi信息创建新的安全字条"
- "Generating a 32-Charracter 密码并保存为苹果.com"
- 创建此文件的发送链接
组织行政:
- 组织成员名单
- "邀请 用户@ example.com 作为组织的管理机构
- "创建"开发团队"集"
- "给我看看最后的100个审计记录"
- "什么安全政策是允许的?"
可用工具
默认管理和 CLI 工具
- 会议数字 :
lock, (中文(简体) ),unlock, (中文(简体) ),sync, (中文(简体) ),status - 检索数字 :
list, (中文(简体) ),get - 项目数字 :
create_item, (中文(简体) ),edit_item, (中文(简体) ),delete, (中文(简体) ),restore - 文件夹数字 :
create_folder, (中文(简体) ),edit_folder - 附录数字 :
create_attachment - 组织数字 :
create_org_collection, (中文(简体) ),edit_org_collection, (中文(简体) ),edit_item_collections, (中文(简体) ),move, (中文(简体) ),confirm - 设备批准数字 :
device_approval_list, (中文(简体) ),device_approval_approve, (中文(简体) ),device_approval_approve_all, (中文(简体) ),device_approval_deny, (中文(简体) ),device_approval_deny_all - 发送数字 :
create_text_send, (中文(简体) ),create_file_send, (中文(简体) ),list_send, (中文(简体) ),get_send, (中文(简体) ),edit_send, (中文(简体) ),delete_send, (中文(简体) ),remove_send_password - 公用事业数字 :
generate
组织行政
- 收款数字 :
list_org_collections, (中文(简体) ),get_org_collection, (中文(简体) ),update_org_collection, (中文(简体) ),delete_org_collection - 成员数字 :
list_org_members, (中文(简体) ),get_org_member, (中文(简体) ),invite_org_member, (中文(简体) ),update_org_member, (中文(简体) ),remove_org_member, (中文(简体) ),reinvite_org_member, (中文(简体) ),get_org_member_groups, (中文(简体) ),update_org_member_groups - 组数字 :
list_org_groups, (中文(简体) ),get_org_group, (中文(简体) ),create_org_group, (中文(简体) ),update_org_group, (中文(简体) ),delete_org_group, (中文(简体) ),get_org_group_members, (中文(简体) ),update_org_group_members - 政策数字 :
list_org_policies, (中文(简体) ),get_org_policy, (中文(简体) ),update_org_policy - 活动数字 :
get_org_events - 订阅数字 :
get_org_subscription, (中文(简体) ),update_org_subscription - 导入数字 :
import_org_users_and_groups
发展
设置
git 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
与 MCP 检查员进行测试
MCP检查员提供了一个交互式测试环境:
npm run build
npm run inspect
这将打开一个网络界面, 您可以在其中:
- 浏览可用的工具
- 使用自定义输入的测试工具执行
- 查看请求/答复有效载荷
- 调试工具行为
最佳做法
- 安全存储证书(使用系统键链或环境管理员)
- 定期旋转会话符号
- 定期审查可疑活动的审计记录
- 从不将证书承诺给版本控制
测试
该项目包括Jest单元测试,涵盖验证,CLI命令,以及核心功能.
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm test -- --coverage
# Run specific test file
npm test validation.spec.ts
# Run tests matching a pattern
npm test -- --testNamePattern="validation"
调试
启用调试日志 设置环境变量:
export DEBUG=bitwarden:*
export NODE_ENV=development
安全考虑
- 永远不要承诺 敏感全权证书
BW_SESSION, (中文(简体) ),BW_CLIENT_ID, (中文(简体) ),BW_CLIENT_SECRET(中文(简体) ) - 使用环境变量 用于所有敏感配置
- 验证所有输入 使用 Zod 计划( 已经执行)
- 用非生产数据进行测试 可能时
- 监视 API 使用情况 通过您的组织的审计日志
- 了解敏感金库数据被LLM和AI工具曝光对安全和隐私的影响. 例如,使用自我托管的或当地LLM可能是适当的.
解决问题
CLI 问题
-
默认已锁定
-
叫你的人工智能助理来操作
unlock工具 —— MCP 服务器将打开本地的 OS 密码对话框供您输入主密码 。 密码从未通过MCP协议或LLM看到. -
无头机器(无)
DISPLAY在 Linux 上,没有图形界面会话)unlock工具将拒绝运行。 使用手动倒计时 :bw unlock --raw # Copy the token and update BW_SESSION in your MCP config
-
-
会话密钥无效
- 不活动后会话符号过期
- 叫你的人工智能助理来操作
unlock用于在位置上刷新会话或运行的工具bw unlock --raw手动更新您的 MCP 配置, 并使用新令牌
交互式解锁金库
这个 unlock 工具让您的 AI 助手提示您使用主密码, 而不会通过 MCP 频道.
- 这个工具需要 无输入参数。不能用密码参数引用它.
- 当呼叫时,服务器会发射一个 本地 OS 密码对话框数字 :
- 马科斯数字 :
osascript安全输入对话框 - 链接数字 :
zenity --password(倒计时)kdialog --password(中文(简体) ) - 窗口: PowerShell WinForms 密码对话框( 大量输入)
- 马科斯数字 :
- 密码传到
bw unlock --raw通过--passwordenv带有随机一发环境变量的旗帜。 它从未出现在进程论证,MCP协议,或LLM的背景中. - LLM只见过
"Vault unlocked successfully."或已消毒的故障信息(例如:."Invalid master password.", (中文(简体) ),"Unlock cancelled.") (中文(简体) ). - 如果您处于非交互环境, 工具将拒绝运行, 并返回指示您到
bw unlock --raw手动流动.
API 问题
-
无效的客户端证书
- 校验
BW_CLIENT_ID开始于organization. - 保证
BW_CLIENT_SECRET正确的 - 请检查API 密钥是否已在管理控制台旋转
- 校验
-
403 禁止使用
- 校验您的组织拥有者或管理员权限
- 一些业务需要发挥具体作用(如管理成员)
捐款
我们欢迎捐款! 请看 捐款额 准则.