LucidShark
Local code quality and security scanner: lint, types, SAST, SCA, tests, coverage.
作者による説明(英語の原文)
Local credential broker: agents call APIs, SSH and DBs via scoped presets; secrets stay in keychain.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。
ターミナルでこれを実行します
claude mcp add warden -- npx -y @mcp-warden/cli mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"warden": {
"command": "npx",
"args": [
"-y",
"@mcp-warden/cli",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"warden": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mcp-warden/cli",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント ermoluk で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.6.0)がレジストリに届いたのは4 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにRust, Node.js, MCPBも必要です。
同じカテゴリには:LucidShark, Threatist, Draugr
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Local code quality and security scanner: lint, types, SAST, SCA, tests, coverage.
Vulnerability records: CVE, GHSA, CISA KEV, EPSS and vendor fixes in one place. No key needed.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A local-first credential broker for the Model Context Protocol — lets any AI coding agent (Claude Code, Cursor, Cline, Codex, Continue, Zed) take real actions without ever seeing your secrets.
The agent calls high-level tools (proxy_http); mcp-warden injects the secret server-side, executes the action, and returns only the result. Your context window stays clean. A leaked transcript leaks nothing useful.
mcp-warden CLI.github-read, stripe-charges).mcp-warden as an MCP server (stdio).proxy_http with a preset name and a path/method.mcp-warden validates the request against the preset's allow-list, injects the credential, executes, and returns only the response./lock also works as a kill switch from your phone. Opt in to time-boxed approvals per preset so one OK can cover a short burst of follow-up calls without re-prompt spam.mcp-warden audit verify) — including a windowed decision for calls authorised by an active approval window, a refused decision (with the raw requested path or command) for calls the allow-list turned away, and a failed decision when the approval prompt could not be shown.The agent's context window contains zero secrets.
Every option installs the same single binary — no background service, no auto-updater, no telemetry. To update, run the same tool again.
macOS and Linux — Homebrew
brew install ermoluk/tap/mcp-warden
Windows — Scoop
scoop bucket add ermoluk https://github.com/ermoluk/scoop-bucket
scoop install ermoluk/mcp-warden
A winget package (ermoluk.mcp-warden) and an AUR package (mcp-warden-bin) are coming but not listed yet. Until they are, use Scoop on Windows, and Homebrew or the install script below on Arch Linux; on Linux the script installs the static musl build.
Nix (builds from source)
nix profile install github:ermoluk/mcp-warden
npm — for MCP clients configured with npx. The package is scoped: the unscoped mcp-warden on npm is an unrelated project.
{ "mcpServers": { "mcp-warden": { "command": "npx", "args": ["-y", "@mcp-warden/cli", "mcp"] } } }
The binary for your platform comes from an optional dependency; nothing is downloaded at install or run time. npx @mcp-warden/cli init and the other subcommands work the same way.
Rust — prebuilt with cargo-binstall, or from source (Rust 1.94.1+):
cargo binstall mcp-warden
cargo install --locked mcp-warden
Install script — downloads the release archive for your machine, refuses it unless it matches the release's SHA256SUMS, and puts the binary in ~/.local/bin (Windows: %LOCALAPPDATA%\Programs\mcp-warden\bin). No sudo, and it changes neither your PATH nor your shell profile. Read it first if you like: install.sh, install.ps1.
curl -fsSL https://github.com/ermoluk/mcp-warden/releases/latest/download/install.sh | sh
irm https://github.com/ermoluk/mcp-warden/releases/latest/download/install.ps1 | iex
Claude Desktop — download the .mcpb bundle for your platform from the latest release and open it. The bundle contains only the server; install the CLI with one of the options above to create presets and store secrets.
By hand — every GitHub release has archives for macOS (arm64, x86_64), Linux (x86_64, aarch64; static musl builds, plus an x86_64 glibc build) and Windows (x86_64), a combined SHA256SUMS, and a build-provenance attestation for each archive:
gh attestation verify mcp-warden-aarch64-apple-darwin.tar.gz --repo ermoluk/mcp-warden
The macOS binaries are not notarized. Homebrew, npm, cargo and the install script don't mark them as downloaded, but an archive or bundle saved from a browser may be blocked by Gatekeeper until you run xattr -d com.apple.quarantine on it.
There is no Docker image, on purpose: the OS keychain — macOS Keychain, Windows Credential Manager, the Linux kernel keyring — isn't reachable from inside a container, and mcp-warden never falls back to keeping secrets in a file.
mcp-warden init
mcp-warden secret add gh_pat # paste your GitHub PAT when prompted mcp-warden preset add github-read \ --type http \ --base-url https://api.github.com \ --auth-bearer gh_pat \ --allowed-methods GET \ --allowed-paths /user/repos \ --approval auto --confirm-auto
The preset auto-approves only GET /user/repos; any other path is refused before the token is touched. To let the agent read more, widen the allow-list (e.g. --allowed-paths '/user/repos,/repos/OWNER/[^/]+') and prefer a fine-grained PAT limited to specific repos. Patterns match the whole path, as exact strings or regexes anchored as ^(?:…)$, never as prefixes; [^/]+ is safer than .* for one segment. They see the percent-decoded path, so %2F is a separator: a GitLab-style id like /projects/group%2Fproject needs /projects/[^/]+/[^/]+. An HTTP preset with no allowed_paths allows every path under base_url — preset add and doctor warn about it, and the built-in github-read / gitea-read / stripe-read templates ship with approval = "prompt" for that reason.
Wire mcp-warden into your agent — see docs/claude-code-setup.md or docs/cursor-setup.md.
In your agent: ask "list my GitHub repos via mcp-warden". Watch the agent call list_presets, then proxy_http — and watch your PAT stay out of the prompt.
mcp-warden audit --last 5 # see what the agent did
Keys pasted into MCP client configs sit on disk in plaintext, where the agent, a synced dotfile or a screenshot can pick them up. Three commands fix that:
mcp-warden scan # where are plaintext keys? (shows type + length, never values)
mcp-warden import # move them into the keychain and rewire the client entries mcp-warden run github # what the rewired entry runs: the server, with its key injected
scan reads Claude Code, Claude Desktop, Cursor, Windsurf, VS Code and Codex configs plus .mcp.json / .env files in the current directory (--path DIR for more). import handles keys in a stdio server's env; for keys in arguments, headers, URLs or .env files, scan says what to do instead. To wrap a server by hand: mcp-warden server add github --env GITHUB_PERSONAL_ACCESS_TOKEN -- npx -y @modelcontextprotocol/server-github (the value is read from stdin). Details: docs/scan-and-import.md.
| Command | Description | |
|---|---|---|
mcp-warden init | Create the config directory and a template config | |
mcp-warden secret add | Store a secret (value read from stdin, never argv) | |
mcp-warden secret list | List secret names (never values) | |
mcp-warden secret remove | Delete a secret from the keychain | |
mcp-warden preset add ... | Define a preset (--confirm-auto required for auto, then an approval prompt confirms it) | |
mcp-warden preset confirm [name]... | Confirm auto presets through the approval prompt; an edited auto preset asks until confirmed again | |
mcp-warden preset list | Show all presets | |
mcp-warden preset test | Validate a preset against the current keychain | |
mcp-warden preset test GET /path | Policy simulator: would this call be allowed, and why? Sends nothing (--command, --get/--put, --query for other tools) | |
mcp-warden preset grant --for 1h | Time-limited access: calls are refused after the window (--permanent clears it) | |
mcp-warden preset revoke | End access to a preset now (next server start; lock for immediately) | |
mcp-warden lock [--reason …] | Kill switch: every MCP server refuses every call from its next one on (or send /lock to the Telegram bot) | |
mcp-warden approval telegram-test | Check the Telegram setup: token, chat, a test prompt you answer | |
mcp-warden unlock | Remove the lock after a human approves it in the dialog / Telegram | |
mcp-warden scan | Find plaintext keys in MCP client configs and .env files (never prints values) | |
mcp-warden import | Move the keys scan found into the keychain and point the client at mcp-warden run | |
mcp-warden server add --env VAR -- | Wrap another MCP server; its key is read from stdin into the keychain | |
mcp-warden run | Launch a wrapped MCP server with its keys injected (use as the client's command) | |
mcp-warden preset scaffold *(v0.3.0)* | Generate a preset from a built-in template (--list to discover) | |
mcp-warden preset from-openapi *(v0.3.0)* | Bootstrap a preset from an OpenAPI 3.x spec (URL or file) | |
mcp-warden approval [--window N] | Set approval policy; --window N (sec) enables time-boxed approvals for prompt | |
| `mcp-warden audit [--last N \ | --since T] [--decision D]…` | Read-only view of the audit log (append-only by design), with what the agent asked for — including refused calls — and which MCP client and session made each call. --decision refused --decision failed shows only those decisions; --window N shows approval #N and every call that ran inside the window it opened |
mcp-warden audit verify [--format json] | Check the audit log's hash chain and every event against it, and the log against its anchor in the keychain; names what was changed, deleted, cut short or rewritten. Exit code 1 if anything does not hold | |
mcp-warden doctor [--deep] *(v0.3.0 for --deep)* | Diagnostic summary; --deep runs safe read-only HTTP probes per preset | |
mcp-warden web [--port N] *(v0.3.0)* | Local read-only web UI (binds 127.0.0.1 only) | |
mcp-warden mcp | Run the MCP server over stdio (consumed by the AI agent) |
冒頭だけを表示しています。続きはリポジトリで読めます