
Bitwarden Public API and Secrets Manager (unofficial)
io.github.mguttmann由 GitHub 账号 mguttmann 发布v0.3.1更新于 Oct 30, 2026
Unofficial MCP server for the Bitwarden Public API and Secrets Manager, self-hosted or cloud.
发布方自己的服务:Secrets.RealEstate
概览
非官方本地 MCP 服务器,让助手管理 Bitwarden 组织的成员、群组、集合、策略,以及 Secrets Manager 的项目与密钥。
- 可以做什么
- 列出、邀请、更新、移除组织成员并管理其群组归属,批量导入成员与群组
- 创建、更新、删除群组,设置群组成员及集合访问权限
- 读取与设置组织策略、查询事件日志、查看订阅详情并调整席位与存储
- 列出、创建、更新、删除 Secrets Manager 项目与密钥,包括读取明文密钥值
- 通过原始请求工具发送任意 Public API 或 Secrets Manager REST 请求,并列出可用工具
- 适用场景
- 适合 Bitwarden 组织管理员让 AI 助手在一台主机上处理成员、群组、集合、策略和 Secrets Manager 的日常操作,可针对自建实例、Bitwarden 云端或两者。不适用于管理机器账户和访问令牌,这些只能在网页保险库中操作。
- 运行要求
- 需要 Node.js 22.12 或更高版本,通过 npx 或全局安装在本机运行。至少完整配置一个实例:四组 BITWARDEN_SELFHOST_* 变量或四组 BITWARDEN_CLOUD_* 变量,含客户端 ID 与客户端密钥。Secrets Manager 工具需要 BWS_ACCESS_TOKEN,通常还需 BWS_ORG_ID;原生 SDK 二进制仅支持部分平台。需要能访问实例的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Bitwarden Public API and Secrets Manager (unofficial),将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Bitwarden MCP Server
[npm version] [Node.js] [License: MIT] [TypeScript] [CI]
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 thebw_raw_requestescape hatch. With self-host and cloud configured the server lists 54 tools, with or without Secrets Manager; names and required parameters are pinned bytests/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_<resource>_<op>_rawtools 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 setsconfirmitself, 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.<uuid> /
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/subscriptionendpoint: 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_smstay registered but always return an error. - Per-user collection access (
bw_collection_updaterejects a non-emptyuserslist; give members direct access viabw_member_updatecollections), groupaccessAll(removed upstream), and filtering events by IP address.
For all of these: use the web vault at https://<your-host>/#/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:
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:
Or install it once and start the bin:
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:
Commit or keep package.json and package-lock.json. On every deploy:
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
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_<resource>_<op>_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.
Mode matrix
Getting a Secrets Manager access token
- In the self-host vault, open Secrets Manager > Machine accounts and
create one (a neutral name like
mcp-bitwardenworks). - Grant the machine account access to the projects you want the MCP to manage.
- Create an access token for the machine account and copy the cleartext
value into
.envasBWS_ACCESS_TOKEN. - Also set
BWS_ORG_IDto the organization UUID (from the URL of the organization in the web vault). - Restart the MCP; the
bws_*tools become operational.
Until then, the SM tools stay registered but return "Secrets Manager not configured" so the surface remains discoverable.
BWS_ACCESS_TOKEN format
The access token has a three-part format, separated by . and ::
Example (all values fictional):
The MCP passes this token directly to the Bitwarden SDK, which handles all credential parsing and crypto internally.
The OAuth request to the identity server uses scope=api.secrets (not
api.organization). The Org Public-API key (organization.* client_id with
api.organization scope) cannot access Secrets Manager endpoints; this
is by design, not a bug.
Self-hosted Bitwarden: Secrets Manager availability
Current self-hosted Bitwarden (server 2026.x) bundles the Secrets Manager API
inside the standard bitwarden-api container; there is no separate
sm-api container and no enable_secrets_manager toggle in
bwdata/config.yml. If your docker-compose.yml does not show an sm-api
service, that is correct and expected.
The SM endpoints are accessible as soon as you create a machine account with a valid access token in the web vault.
List-response shape
The four list tools (bw_member_list, bw_collection_list, bw_group_list,
bw_event_query) return slim projections by default because Bitwarden's
Public API embeds the full permission graph in every list item, which inflates
the response several times over and overruns LLM tool-call token budgets at
modest organization sizes.
Default fields:
For the full response, pass the include parameter (whitelist of nested
fields):
For per-item details, use the dedicated detail endpoints
(bw_member_get, bw_collection_get, bw_group_get,
bw_member_get_groups, bw_group_get_members).
A response-size guard adds a note field to any list response that exceeds
BW_MCP_MAX_LIST_RESPONSE_BYTES characters (default in the table above). The
note is a hint only; a response that also exceeds BW_MCP_MAX_RESPONSE_BYTES
is cut as described under Limits, and the note stays in the cut response.
Limits
The values live in src/limits.ts; tests/docs-numbers.test.ts holds this
section to them.
- Response size. A successful tool result larger than
BW_MCP_MAX_RESPONSE_BYTES(bytes, default 1048576) is cut, never failed. The result stays valid JSON: the leading items of its largest list are kept, together with aresponseTruncatedobject (originalBytes,limitBytes,cutArray,keptItems,totalItemsand ahinton how to narrow or page the query). A result whose root is a list becomes an object: the kept items move toitemsnext toresponseTruncated. AcontinuationTokennext to a cut list is removed (continuationTokenRemoved: true), because it would resume after the items that were cut. Output without a list (for example a preview) is replaced by theresponseTruncatedobject alone. Error results are not cut here; upstream error texts are shortened separately. - Input size. A tool call is rejected before anything is sent when any
string in its arguments is longer than 102400 bytes (100 KiB) or any array
has more than 10000 items (for example
bw_org_importwith more than 10000 members or groups). The error names the parameter path and the size, never the value. - Token backoff. After 3 consecutive failed token requests of one client
(self-host, cloud, Secrets Manager REST, and the Secrets Manager SDK login)
new token requests pause for 30 s. Calls during the pause fail at once
with
identity backoff: ... retry after N s; a success resets the count, and a failure right after a pause starts the next one.
Running
Connector wiring
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or the platform equivalent. From npm:
From a source checkout:
Instead of --env-file, the variables can also go into an env object
next to args. Without either, the server only finds a .env in the
working directory the client starts it in, which usually is not the
repository, and exits with "No Bitwarden instance configured".
Claude Code
Register the server with claude mcp add (user or project scope), or add
the same mcpServers block to a .mcp.json file at the project root:
Gateway and headless use
The server speaks MCP over stdio only and needs no terminal. A gateway or
supervisor installs the pinned npm package (see
Gateways and servers) and starts
it with node --env-file=/path/to/.env node_modules/the-real-bitwarden-mcp/dist/index.js,
or builds a source checkout:
- Logs are JSON lines on stderr (pino, level
LOG_LEVEL); stdout carries only the MCP stream. - Protocol revisions: clients that open with
initializefor 2025-06-18 or 2025-11-25 get that revision; clients that open with the 2026-07-28 revision (server/discover) are served at 2026-07-28. Pinned bytests/protocol-versions.test.ts. - Message size limit: the MCP SDK's stdio transport accepts incoming
lines (one JSON-RPC message each) of at most 10 MiB. A larger line
closes the transport; the server logs an
errorline and exits with code 1, and the client has to start it again. - Tool names are stable. Tool names, parameter names and required
parameters do not change and no tool or parameter is removed; a tool
may get a new optional parameter. Changes that a caller can notice are
listed under "Behaviour changes" in the changelog.
scripts/container-smoke.shbuilds and probes the server the way a gateway does (see CONTRIBUTING). - No user separation: every caller acts with the full rights of the configured keys. Restrict which tools each user may call in the gateway (see SECURITY.md).
Tool reference
Run bw_help from inside the MCP to get a grouped, always-current catalogue.
A short list:
Public API: operational (self-host)
bw_member_list,bw_member_get,bw_member_invite,bw_member_update,bw_member_remove,bw_member_reinvite,bw_member_get_groups,bw_member_set_groups,bw_member_grant_sm,bw_member_revoke_sm(the last two always return an error, see "Cannot")bw_group_list,bw_group_get,bw_group_create,bw_group_update,bw_group_delete,bw_group_get_members,bw_group_set_membersbw_collection_list,bw_collection_get,bw_collection_update,bw_collection_deletebw_policy_list,bw_policy_get,bw_policy_setbw_event_querybw_org_import
Optional parameters worth knowing:
bw_member_invite:permissionssets the Custom role flags of a type 4 member (accessEventLogs,manageUsers, ...; flags not given are false).bw_member_update:emailandnamechange a claimed member's address and name; the API rejects them for other members. Omitted: unchanged.bw_org_import:inviteUsersAfterProvisioning: falsecreates new members as Staged without an invitation email; a member withdeleted: trueneeds onlyexternalId.bw_policy_set:metadatais passed with the save (for exampledefaultUserCollectionNamefor policy type 5); it is not stored with the policy.bw_event_query:continuationTokenresumes a truncated result; pass the token it returned with the samestart,end, filters andlimit.limitreturns at most that many events (an integer of at least 1, capped atPAGINATION_MAX_ITEMS); when more exist the result istruncated: truewith acontinuationToken, also when the stop falls inside an API page.bw_member_list,bw_group_listandbw_collection_listtake no token: the Public API returns those lists in one response.truncated: truemeans the server stopped atPAGINATION_MAX_ITEMSorPAGINATION_MAX_PAGESwhile the API still offered a next page. If the last page ended exactly at the limit, that next page can turn out empty: the API sends a token without saying whether more items follow, and the server does not spend an extra request to find out. Resuming with the returned token then gives an empty list.
Public API: generated raw tools (self-host)
None in the shipped package (the spec is empty, see
Generated raw tools).
src/tools/generated/snapshot.json lists the set produced from the
current spec.
License / subscription (cloud)
bw_license_subscription_getbw_license_seats_update: adjusts Password Manager seats (passwordManager.seats)bw_license_storage_update: adjusts Password Manager storage (passwordManager.storage)bw_license_sm_seats_update: adjusts Secrets Manager seats (secretsManager.seats)bw_license_sm_service_accounts_update: adjusts Secrets Manager service-account slots (secretsManager.serviceAccounts)
All four take a delta, send current + delta as the new absolute total through
PUT /public/organization/subscription, read the subscription back and return
an error if the total did not change.
Secrets Manager: SDK-backed (require BWS_ACCESS_TOKEN and a supported platform)
- Projects:
bws_project_list,bws_project_get,bws_project_create,bws_project_update,bws_project_delete - Secrets:
bws_secret_list(identifiers only),bws_secret_get_value,bws_secret_create,bws_secret_update,bws_secret_delete
Without organizationId in the call, every bws_project_* /
bws_secret_* tool that needs one uses BWS_ORG_ID. bws_secret_update
keeps the current note and project when note or projectIds is
omitted (it reads the secret first); pass them to change them. A machine
account cannot remove all projects from a secret: the server rejects an
update with projectIds: [] for a secret that is in a project.
The SDK logs in with BWS_ACCESS_TOKEN on the first bws_* call, not at
startup. One HTTP_TIMEOUT_MS deadline covers a whole bws_* call,
including that login and, for bws_secret_update without note or
projectIds, the read of the current secret. A login that runs into the
deadline keeps running and the next call waits for it instead of starting
a second one. A timed-out write may or may not have been applied.
Secrets Manager: web vault only (always stubbed)
- Machine accounts:
bws_machine_account_list,..._get,..._create,..._update,..._delete,..._projects,..._grant_project,..._revoke_project - Access tokens:
bws_access_token_list,..._create,..._revoke
They are not available to the credentials this server uses; only a
logged-in user in the web vault can manage machine accounts and access
tokens. The tools are discoverable via tools/list and bw_help, but
calling them always returns isError: true with a link to the web vault. Use
https://<your-host>/#/sm/{orgId}/machine-accounts to manage them.
Universal
bw_raw_request: escape hatch withinstanceparameter (selfhost,cloud, orsm). Use this for any Public API or SM REST call not covered by the hand-written tools. Note: SMbws_*CRUD goes through the SDK (not raw REST); raw_request withinstance: "sm"still works for read operations but cannot create/update projects or secrets because the API requires encrypted names/values.bw_help: grouped catalogue of registered tools.
Safety model
BITWARDEN_CONFIRM_WRITES=true(default): write tools return a preview unless invoked withconfirm: "YES". This is a self-confirmation by the model, not a security boundary: the model decides to sendconfirm: "YES", also on the first call, and text in Bitwarden data can steer it. Read-only tools, includingbws_secret_get_value, are never gated. Limit what the configured keys and the machine account may do, and which tools each user may call.BITWARDEN_READ_ONLY=true(defaultfalse): write tools keep their names and schemas but refuse to run, also withconfirm: "YES", andbw_raw_requestallows GET only. Unlike the confirm gate, the model cannot switch this off.- Both switches accept
true/false,1/0,yes/noandon/offin any case. An empty or whitespace-onlyBITWARDEN_READ_ONLYcounts as unset (off); any other unrecognised value turns read-only mode on, and an unrecognisedBITWARDEN_CONFIRM_WRITESkeeps the confirm gate on. - The organization API key acts as a system user, not as a member, so
Bitwarden applies no role hierarchy to it:
bw_member_inviteandbw_member_updatecan create or promote Owners. Use read-only mode or gateway rules where callers must not do that. - The server sends MCP instructions telling the model to treat Bitwarden data as data, never as instructions. This is a hint to the model, not a control.
- The
bws_secret_listtool returns secret identifiers only (no value field). Cleartext values are only returned throughbws_secret_get_value(id), one secret at a time:bws_secret_create/bws_secret_updatereturn the metadata without the value, and confirm-gate previews show secret values as<redacted, N chars>. - Logs and error texts returned to the client go through one scrubber
(
src/redact.ts): the keys listed there (bearer tokens, client secrets, access tokens,value, ...) are removed at any depth, and secret-shaped substrings in messages are replaced with[REDACTED]. - Redirects are never followed;
bw_raw_requestpaths and ids with dot segments or encoded separators are rejected. - The
bw_raw_requestescape hatch defaults toinstance: "selfhost"and rejects calls against instances that are not configured. - The
{ENCRYPTION_KEY}portion ofBWS_ACCESS_TOKENis passed to the SDK and never sent to any server as a credential.
Troubleshooting
OAuth client_credentials returns invalid_client
The client_id must be segment 2 of the BWS_ACCESS_TOKEN (the UUID), and
client_secret must be segment 3 (between the second . and the :). Do
not use the full raw token or the encryption key as either field.
Fastest diagnosis: run docker logs bitwarden-identity on the server host
immediately after a failed auth attempt. Duende IdentityServer logs exactly
which client_id was attempted and whether the client was found.
Quick smoke test (replace placeholders with real values):
bws_* tools return "SDK not available on this platform"
The @bitwarden/sdk-napi native binary is not available for the current
platform (see the Platform support table above). The startup warn log
line on stderr has the reason in smSdk.kind (module_not_found or
binary_not_available).
A failed login (wrong token, identity server unreachable) gives a
different tool error, "Secrets Manager SDK login failed: ..." or "...
login timed out ...". Fix the token or URLs; the next bws_* call logs
in again (or waits for a login that is still running), no restart needed.
On unsupported platforms, all Public-API tools (bw_*) continue to work
normally. Only the bws_project_* and bws_secret_* tools are affected.
POST to /api/organizations/.../projects returns 400 "Name is not a valid encrypted string"
Do not use bw_raw_request to create or update projects/secrets. Bitwarden's
SM API requires encrypted names and values at the REST layer. The bws_*
wrapper tools go through the official SDK which handles encryption
transparently. Use bws_project_create, bws_secret_create, etc. instead.
Empty project / secret lists
If bws_project_list or bws_secret_list return empty arrays, the machine
account authenticated successfully but has no project assignments. This is
a permission issue, not an auth bug.
To fix: go to the web vault →
/#/sm/{ORG_ID}/machine-accounts/{SERVICE_ACCOUNT_ID}/projects and assign
the desired projects to the machine account.
The bws_project_list tool surfaces this hint inline when it detects an
empty response.
Self-host auth debugging
Run docker logs bitwarden-identity on the server host after a failed auth.
Duende IdentityServer logs the client_id attempted and the exact failure
reason (client not found vs. secret mismatch).
License
MIT, see LICENSE. NOTICE covers what the MIT
License does not: the trademark, the optional @bitwarden/sdk-napi
dependency (Bitwarden SDK License Agreement, installed from npm, not
bundled) and the API specification.
来源:README.md,提交 c80c66e
工具
0版本历史
1- v0.3.1最新Oct 29, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Secrets 集成
Secrets.RealEstate
realestate.secrets官方发布者
远程 MCP 端点,为助手提供有来源的法国房产情报:地址的成交价、能耗、风险、治安与学校数据。

LLM Data Guard: PII & Secrets Redaction
由 GitHub 账号 fairquery 发布
在文本、HTML或PDF进入LLM之前,检测并遮盖其中的PII和机密信息(API密钥、令牌)。AI 翻译

Keeper Secrets Manager
由 GitHub 账号 WYRE-AI 发布
Read-only multitenant Streamable HTTP bridge over Keeper Secrets Manager's MCP server.

Keeper Secrets Manager
由 GitHub 账号 wyre-technology 发布
只读的多租户 HTTP 桥接服务,重新暴露 Keeper Secrets Manager 的 MCP 服务器,让助手按租户列出、搜索和读取保险库机密。

Hive Secrets
由 GitHub 账号 srotzin 发布
一个远程 MCP 服务器,按代理命名空间加密存储和读取代理凭据,读写操作通过 Base 上的 USDC 付费结算。