프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Bitwarden Public API and Secrets Manager (unofficial)

제작자: mguttmann버전 0.3.1i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.mguttmann/the-real-bitwarden-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Unofficial MCP server for the Bitwarden Public API and Secrets Manager, self-hosted or cloud.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 사이버 보안
  • 입력해야 할 값: BITWARDEN_SELFHOST_CLIENT_SECRET, BITWARDEN_CLOUD_CLIENT_SECRET, BWS_ACCESS_TOKEN

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: BITWARDEN_SELFHOST_API_BASE, BITWARDEN_SELFHOST_IDENTITY_URL, BITWARDEN_SELFHOST_CLIENT_ID, BITWARDEN_SELFHOST_CLIENT_SECRET, BITWARDEN_CLOUD_API_BASE, BITWARDEN_CLOUD_IDENTITY_URL, BITWARDEN_CLOUD_CLIENT_ID, BITWARDEN_CLOUD_CLIENT_SECRET, BWS_ACCESS_TOKEN, BWS_ORG_ID, BWS_API_BASE, BWS_IDENTITY_URL, BITWARDEN_CONFIRM_WRITES, BITWARDEN_READ_ONLY, LOG_LEVEL, BW_MCP_MAX_RESPONSE_BYTES

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "the-real-bitwarden": {
      "command": "npx",
      "args": [
        "-y",
        "the-real-bitwarden-mcp"
      ],
      "env": {
        "BITWARDEN_SELFHOST_API_BASE": "your-value",
        "BITWARDEN_SELFHOST_IDENTITY_URL": "your-value",
        "BITWARDEN_SELFHOST_CLIENT_ID": "your-value",
        "BITWARDEN_SELFHOST_CLIENT_SECRET": "your-value",
        "BITWARDEN_CLOUD_API_BASE": "your-value",
        "BITWARDEN_CLOUD_IDENTITY_URL": "your-value",
        "BITWARDEN_CLOUD_CLIENT_ID": "your-value",
        "BITWARDEN_CLOUD_CLIENT_SECRET": "your-value",
        "BWS_ACCESS_TOKEN": "your-value",
        "BWS_ORG_ID": "your-value",
        "BWS_API_BASE": "your-value",
        "BWS_IDENTITY_URL": "your-value",
        "BITWARDEN_CONFIRM_WRITES": "your-value",
        "BITWARDEN_READ_ONLY": "your-value",
        "LOG_LEVEL": "your-value",
        "BW_MCP_MAX_RESPONSE_BYTES": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add the-real-bitwarden --env BITWARDEN_SELFHOST_API_BASE=your-value --env BITWARDEN_SELFHOST_IDENTITY_URL=your-value --env BITWARDEN_SELFHOST_CLIENT_ID=your-value --env BITWARDEN_SELFHOST_CLIENT_SECRET=your-value --env BITWARDEN_CLOUD_API_BASE=your-value --env BITWARDEN_CLOUD_IDENTITY_URL=your-value --env BITWARDEN_CLOUD_CLIENT_ID=your-value --env BITWARDEN_CLOUD_CLIENT_SECRET=your-value --env BWS_ACCESS_TOKEN=your-value --env BWS_ORG_ID=your-value --env BWS_API_BASE=your-value --env BWS_IDENTITY_URL=your-value --env BITWARDEN_CONFIRM_WRITES=your-value --env BITWARDEN_READ_ONLY=your-value --env LOG_LEVEL=your-value --env BW_MCP_MAX_RESPONSE_BYTES=your-value -- npx -y the-real-bitwarden-mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "the-real-bitwarden": {
      "command": "npx",
      "args": [
        "-y",
        "the-real-bitwarden-mcp"
      ],
      "env": {
        "BITWARDEN_SELFHOST_API_BASE": "your-value",
        "BITWARDEN_SELFHOST_IDENTITY_URL": "your-value",
        "BITWARDEN_SELFHOST_CLIENT_ID": "your-value",
        "BITWARDEN_SELFHOST_CLIENT_SECRET": "your-value",
        "BITWARDEN_CLOUD_API_BASE": "your-value",
        "BITWARDEN_CLOUD_IDENTITY_URL": "your-value",
        "BITWARDEN_CLOUD_CLIENT_ID": "your-value",
        "BITWARDEN_CLOUD_CLIENT_SECRET": "your-value",
        "BWS_ACCESS_TOKEN": "your-value",
        "BWS_ORG_ID": "your-value",
        "BWS_API_BASE": "your-value",
        "BWS_IDENTITY_URL": "your-value",
        "BITWARDEN_CONFIRM_WRITES": "your-value",
        "BITWARDEN_READ_ONLY": "your-value",
        "LOG_LEVEL": "your-value",
        "BW_MCP_MAX_RESPONSE_BYTES": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "the-real-bitwarden": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "the-real-bitwarden-mcp"
      ],
      "env": {
        "BITWARDEN_SELFHOST_API_BASE": "your-value",
        "BITWARDEN_SELFHOST_IDENTITY_URL": "your-value",
        "BITWARDEN_SELFHOST_CLIENT_ID": "your-value",
        "BITWARDEN_SELFHOST_CLIENT_SECRET": "your-value",
        "BITWARDEN_CLOUD_API_BASE": "your-value",
        "BITWARDEN_CLOUD_IDENTITY_URL": "your-value",
        "BITWARDEN_CLOUD_CLIENT_ID": "your-value",
        "BITWARDEN_CLOUD_CLIENT_SECRET": "your-value",
        "BWS_ACCESS_TOKEN": "your-value",
        "BWS_ORG_ID": "your-value",
        "BWS_API_BASE": "your-value",
        "BWS_IDENTITY_URL": "your-value",
        "BITWARDEN_CONFIRM_WRITES": "your-value",
        "BITWARDEN_READ_ONLY": "your-value",
        "LOG_LEVEL": "your-value",
        "BW_MCP_MAX_RESPONSE_BYTES": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • BITWARDEN_SELFHOST_API_BASE env
    Self-hosted instance: API base URL, e.g. https://vault.example.com/api. Configure all four BITWARDEN_SELFHOST_* or all four BITWARDEN_CLOUD_* variables (or both); a partial set is fatal.
  • BITWARDEN_SELFHOST_IDENTITY_URL env
    Self-hosted instance: identity URL, e.g. https://vault.example.com/identity.
  • BITWARDEN_SELFHOST_CLIENT_ID env
    Self-hosted instance: organization Public API client id (organization. ).
  • BITWARDEN_SELFHOST_CLIENT_SECRET 비밀 env
    Self-hosted instance: organization Public API client secret. It can manage members, groups, collections and policies, including creating Owners.
  • BITWARDEN_CLOUD_API_BASE env
    Bitwarden Cloud: API base URL, e.g. https://api.bitwarden.com. Used for license and subscription tools.
  • BITWARDEN_CLOUD_IDENTITY_URL env
    Bitwarden Cloud: identity URL, e.g. https://identity.bitwarden.com.
  • BITWARDEN_CLOUD_CLIENT_ID env
    Bitwarden Cloud: organization Public API client id (organization. ).
  • BITWARDEN_CLOUD_CLIENT_SECRET 비밀 env
    Bitwarden Cloud: organization Public API client secret.
  • BWS_ACCESS_TOKEN 비밀 env
    Optional: Secrets Manager machine account access token; enables the bws_* tools. A malformed token is fatal at startup.
  • BWS_ORG_ID env
    Optional: organization UUID for the Secrets Manager tools, used when a call passes no organizationId.
  • BWS_API_BASE env
    Optional: Secrets Manager API base URL; defaults to BITWARDEN_SELFHOST_API_BASE.
  • BWS_IDENTITY_URL env
    Optional: Secrets Manager identity URL; defaults to BITWARDEN_SELFHOST_IDENTITY_URL.
  • BITWARDEN_CONFIRM_WRITES env
    true: write tools return a preview unless the call carries confirm "YES". The model sets confirm itself, so this is friction, not a security boundary.
  • BITWARDEN_READ_ONLY env
    true: write tools stay listed but refuse to run, and bw_raw_request allows GET only.
  • LOG_LEVEL env
    Log level of the JSON log lines on stderr.
  • BW_MCP_MAX_RESPONSE_BYTES env
    Successful tool output above this many bytes is cut to valid JSON with a responseTruncated marker that says how to narrow or page the query.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 mguttmann 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

사이버 보안 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 1003개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 1003개 중 76%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 1003개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Bitwarden Public API and Secrets Manager (unofficial), 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: BITWARDEN_SELFHOST_CLIENT_SECRET, BITWARDEN_CLOUD_CLIENT_SECRET, BWS_ACCESS_TOKEN

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.1)은 12일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Zeqqat, 4da MCP Server, Dependency Vulnerability Tracker — package security advisories ($0.01/query)

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Zeqqat

The safe MCP for Dokploy: agents deploy and fix apps without holding keys or seeing secrets.

제작자: zeqqat아주 새로움오늘 업데이트

클라우드에서 실행

4da MCP Server

Upgrade intelligence for AI agents: what an upgrade changes, where it touches your code, CVE scans.

제작자: 4DA-Systems아주 새로움↓ 254/주오늘 업데이트

내 컴퓨터에서 실행

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

Bitwarden MCP Server

Unofficial. This project is not made by, affiliated with or endorsed

by Bitwarden Inc. "Bitwarden" is a trademark of Bitwarden Inc. See

NOTICE.

A local Model Context Protocol (stdio) server that exposes Bitwarden's Public API (organization management) and the Bitwarden Secrets Manager (projects + secrets via the official SDK) as typed tools, read and write.

Intended use: an admin-facing MCP that lets an AI assistant manage members, groups, collections, policies, license seats, and Secrets-Manager data from a single host. Designed for a self-hosted Bitwarden instance, the official Bitwarden Cloud, or both.

Quick links: Architecture · Contributing · Security policy · Releasing · Changelog · Issues

Maintenance status
  • Maintained on a best-effort basis by one maintainer (@mguttmann) in spare time. The author uses it in production. There is no support contract and no guaranteed response time.
  • Security fixes take priority over features. Report vulnerabilities privately as described in SECURITY.md, never in a public issue.
  • Dependency updates come from Dependabot; CI fails when a runtime dependency has a known advisory.
  • Only the latest minor release gets fixes.
  • Issues and pull requests are welcome; see CONTRIBUTING.md.

Features

  • Public API: members, groups, collections, policies, events, organization import, subscription/licensing.
  • Secrets Manager: projects and secrets via the official @bitwarden/sdk-napi (Zero-Knowledge crypto; cleartext names and values returned directly).
  • Dual-instance aware: runs against a self-hosted Bitwarden instance, the official cloud, or both. Tools are wired to their instance at registration time so routing mistakes are impossible by accident.
  • Hand-written tools for common flows (bw_member_list, bw_license_subscription_get, bws_secret_get_value, ...) plus the bw_raw_request escape hatch. With self-host and cloud configured the server lists 54 tools, with or without Secrets Manager; names and required parameters are pinned by tests/tool-contract.test.ts, and parameters are only ever added (optional), never removed or renamed.
  • No generated tools in the shipped package: the generator for bw_ _ _raw tools exists (npm run generate), but the shipped spec (specs/public-api.spec.json) is empty, so 0 generated tools are registered. See Generated raw tools.
  • Confirm-gated writes: every write tool returns a request preview unless invoked with confirm: "YES". Default is on. The model sets confirm itself, so this is friction, not a security boundary (see Safety model).
  • Secret-safe by design: the metadata list never returns values; access tokens are managed in the web vault only.
  • Token-budget-aware list defaults: list tools (bw_member_list, bw_collection_list, bw_group_list, bw_event_query) return slim projections by default to stay within LLM tool-call token budgets. See List-response shape for the opt-in to full nested responses.

What this MCP can and cannot do

Bitwarden's APIs expose different surfaces with different auth and crypto requirements. This MCP wraps everything that's _cleanly_ reachable. Some operations require Bitwarden's encryption layer (so we use the official SDK); others have no public API at all and need the web vault.

Can: Public API (organization and members)

Uses the Organization Public-API key (organization. / client_credentials / scope api.organization).

  • List, get, invite, update, remove organization members
  • Create, update, delete groups; manage group membership
  • Update collection access per group (read / hide-passwords / manage); omitted fields of update tools keep their current value
  • Read, set organization policies
  • Query the event log
  • Bulk-import groups + members
  • Read full subscription details (PM seats, SM seats, storage, service-account slots)
  • Adjust PM seats, PM storage, SM seats, SM service-account slots via the unified PUT /public/organization/subscription endpoint: the tools take a delta, send current + delta as the new total and read it back
  • Cloud-only: license inspection on the cloud organization
Can: Secrets Manager (via the official Bitwarden SDK)

Uses the Machine-Account access token (BWS_ACCESS_TOKEN), exchanged through @bitwarden/sdk-napi which handles Bitwarden's Zero-Knowledge encryption.

  • List, get, create, update, delete projects (visible to the configured MA)
  • List secret metadata, fetch full secret incl. cleartext value, create, update, delete secrets
Cannot: these need a human in the web vault

These are not available to the credentials this server uses (organization API key, machine account access token). The SDK and the bws CLI don't offer them either.

  • Create, update, delete Machine Accounts
  • Assign projects to a Machine Account
  • Create or rotate Machine Account Access Tokens
  • List all Machine Accounts in the organization (machine accounts and access tokens can only be managed by a logged-in user in the web vault)
  • Trigger a cloud to self-host license re-sync
  • Read, grant or revoke a member's Secrets Manager access. Bitwarden's Public API neither returns nor applies accessSecretsManager; bw_member_grant_sm / bw_member_revoke_sm stay registered but always return an error.
  • Per-user collection access (bw_collection_update rejects a non-empty users list; give members direct access via bw_member_update collections), group accessAll (removed upstream), and filtering events by IP address.

For all of these: use the web vault at https:// /#/sm/{orgId}/.

Requirements

  • Node.js 22.12 or newer (engines.node >=22.12; CI tests 22, 24 and 26).
  • A Bitwarden Public-API key (client_id / client_secret) for at least one instance (self-host or cloud).
  • For Secrets Manager: a Machine-Account access token (from the web vault).

Platform support

This MCP works on any platform with Node.js 22.12 or newer for all Public API features (members, groups, collections, policies, events, license adjustments).

The Secrets Manager features (bws_project_*, bws_secret_*) depend on @bitwarden/sdk-napi (1.0.0, an optional dependency, not MIT licensed), which ships native Rust binaries as optional per-platform packages. The lockfile contains @bitwarden/sdk-napi-darwin-arm64, -darwin-x64, -linux-x64-gnu and -win32-x64-msvc:

OS / ArchSDK binarySM tools
macOS Apple Siliconavailableavailable
macOS Intelavailableavailable
Linux x86_64 (glibc)availableavailable
Windows x86_64availableavailable
Linux ARM64 (Raspberry Pi, AWS Graviton)not availablestubbed
Linux Musl / Alpinenot availablestubbed
Othernot availablestubbed

On unsupported platforms the MCP still starts and all Public-API tools work normally. The bws_project_* and bws_secret_* tools stay registered and return "Secrets Manager SDK not available on this platform" at call time; the load error is logged once at startup as a warn line.

If Bitwarden releases an SDK version with binaries for a new platform, updating the dependency and the lockfile picks it up; no code change is needed.

Installation

The package is the-real-bitwarden-mcp on npm, published from GitHub Actions with provenance. Its bin is bitwarden-mcp. Configuration is the same for every path (see Configuration).

Local MCP clients (npx or npm install)

npx fetches and starts the package; pin a version so an update is a decision, not a side effect of a restart:

npx -y the-real-bitwarden-mcp@<version>

Or install it once and start the bin:

npm install -g the-real-bitwarden-mcp@<version>

bitwarden-mcp

See Connector wiring for client configs.

Gateways and servers (pinned, from npm)

Install a pinned version with a lockfile and start it with node, without npx and without install scripts. Once, in an empty directory:

npm init -y

npm install --save-exact the-real-bitwarden-mcp@ # writes package-lock.json

Commit or keep package.json and package-lock.json. On every deploy:

npm ci --omit=dev --ignore-scripts

node --env-file=/path/to/.env node_modules/the-real-bitwarden-mcp/dist/index.js

The package has no install script and no runtime dependency in devDependencies, so --omit=dev --ignore-scripts is a complete install. The Secrets Manager SDK binary is an optional per-platform package that npm selects by OS and CPU; it needs no script either.

From source
git clone https://github.com/mguttmann/the-real-bitwarden-mcp.git

cd the-real-bitwarden-mcp npm ci # also pulls the platform-specific SDK binary cp .env.example .env

Fill in .env, see "Configuration".

npm run build node --env-file=.env dist/index.js

The SDK binary is an optional dependency: npm ci succeeds even on unsupported platforms (the binary is simply not present, and SM tools return a clear "not available" message).

Generated raw tools

npm run refresh-spec pulls the Swagger document of your self-host instance into specs/public-api.spec.json, and npm run generate builds one bw_ _ _raw tool per operation from it. The shipped spec is empty ({"paths": {}}), so a normal build registers 0 generated tools. Generating tools changes the tool list; if the server runs behind a gateway that pins the tool surface, treat that as a deploy change.

Configuration

All values are environment variables. They come from the process environment (for example node --env-file=.env, or the env block of an MCP client config). When the server is not started with --env-file (or --env-file-if-exists), a .env file in the process working directory is read as well and only fills variables that are not already set; with --env-file it is ignored. At least one instance must be fully configured, otherwise the server refuses to start. A partially configured instance (some but not all four variables) is also fatal, and so is an API base or identity URL that is not an http:// or https:// URL or that has a query or fragment (the error names the variable). Invalid values of the optional numeric and boolean variables fall back to the default.

VariableRequired whenPurpose

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기