Erbina

io.github.noahhyden由 GitHub 帳號 noahhyden 發布v0.3.0更新於 Nov 1, 2026

Bootstrap, verify, and update CLI tools & MCP servers in Claude Code from recipes; audit scopes.

概覽

AI 產生的概覽

僅供 Claude Code 使用的 MCP 伺服器,依精選配方安裝、串接並驗證命令列工具與其他 MCP 伺服器,並稽核 MCP 伺服器的設定位置。

可以做什麼
  • 尋找與檢視配方:列出、搜尋、依分類瀏覽配方,並在不執行任何命令的情況下預覽配方將執行的指令
  • 安裝與管理工具:依配方引導安裝、更新、解除安裝與鎖定命令列工具或 MCP 伺服器,支援試運行
  • 稽核 MCP 設定:檢查更新、查看各作用域中設定了哪些 MCP 伺服器、找出失效伺服器並移除
  • 執行診斷:提供 doctor 工具排查受管環境的問題
適用情境
適合讓代理在 Claude Code 中建置開發環境,例如安裝命令列工具、註冊其他 MCP 伺服器,並梳理分散在使用者層級與專案層級作用域中的 MCP 設定。它只由代理驅動,沒有給人使用的命令列入口。
執行需求
以單一 Python 檔案透過 uv 在本機執行,需要 Claude Code。配方可能依賴 brew、winget、cargo、go、pipx 或 curl 等套件管理器,視安裝方式而定。會讀取 ~/.claude.json 與專案的 .mcp.json,並呼叫 claude mcp list 指令。
安裝前請注意
配方中的指令以一般程序、使用你的真實權限執行,不在 Claude Code 的 Bash 沙箱內,因此惡意配方等同於惡意 shell 腳本;只對來自可信程式庫且你已讀過的配方執行引導安裝。安裝、更新與解除安裝會變更系統,且沒有自動回復。Windows 支援為盡力而為,winget 識別碼可能解析到外觀相似的套件。伺服器本身不傳送遙測、不自行發出網路請求,但配方指令可能會。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Erbina,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

erbina

A Claude-Code-only MCP server that bootstraps your dev environment from one prompt — install, wire, and verify CLI tools and other MCP servers from curated recipes, and see where every MCP server lives across your scopes.

[CI] [Release] [License: Apache 2.0] [MCP]

[An interactive Claude Code session driving erbina: one prompt inspects the httpie recipe to show the plan, then bootstraps it — installing via pipx and verifying http --version for real]

Claude Code scatters MCP config across up to four files in two apps, with no single place that knows what's installed where (#27458, #8288, #5963). erbina is an MCP server an agent drives — there is no human entry point. Every recipe is a contract: detect → install → configure → verify, idempotent by construction, where success means the tool actually runs. Recipes compose (requires:, profiles), cover the full lifecycle (update, uninstall, doctor), and a weekly CI job installs a subset for real on macOS, Linux and Windows.

Install

A single Python file run by uv — it declares its dependencies inline, so there's no venv to manage.

bash
git clone https://github.com/noahhyden/erbina# --scope user makes it available everywhereclaude mcp add erbina --scope user -- uv run --script /absolute/path/to/erbina/server.py

Then just ask: "use erbina to set up ataegina" — the agent inspects the recipe, shows you exactly what it will run, then bootstraps and verifies it.

Needs uv and Claude Code, plus whatever a recipe's install method uses (brew, winget, cargo / go / pipx, or a curl fallback). Every method is guarded, so only one that exists on your machine ever runs.

Safety model

erbina runs as an ordinary sibling process of Claude Code — not inside its Bash sandbox — so a recipe's commands execute with your real privileges. The safety model is consent before execution: inspect_recipe and bootstrap(dry_run=true) show you the exact commands first, and the server instructs the agent to surface that plan before any real run.

A recipe's install.methods[].run is a shell command string, so a malicious or compromised recipe file is equivalent to a malicious shell script, and erbina does not — and cannot — sandbox it. Only bootstrap recipes you have read, from a checkout you trust.

erbina reads ~/.claude.json and any project .mcp.json to answer "what MCP servers are installed, and where", and shells out to claude mcp list. It sends no telemetry and makes no network calls of its own — the only outbound activity is whatever a recipe's own commands do when you bootstrap it.

Found a vulnerability? Report it privately through GitHub Security Advisories, not a public issue.

Tools

  • Discover — list_recipes, search_recipes, list_categories, inspect_recipe (the consent surface: shows what would run, executes nothing)
  • Act — bootstrap, update, uninstall, pin
  • Audit — check_updates, audit_scopes, find_dead_mcps, remove_mcp, doctor

Each tool's own description is its documentation — the agent reads it at call time. Everything that executes takes dry_run=true.

How a recipe works

Four phases an agent executes. From recipes/ataegina.yaml:

yaml
detect:   { command: "ataegina --version", expect_exit: 0 }   # skip install if presentinstall:                                                       # first guard to pass wins  methods:    - { id: homebrew, when: "command -v brew", run: "brew install noahhyden/tap/ataegina" }    - { id: curl,     when: "command -v curl", run: "curl -fsSL .../install.sh | sh" }configure: { steps: [ { run: "ataegina init --yes", needs_project_dir: true, optional: true } ] }verify:   [ { command: "ataegina --version", expect_exit: 0 } ]

A kind: mcp-server recipe instead wires a server into a chosen scope via claude mcp add <name> --scope ${scope} -- … (see recipes/fetch.yaml); a kind: profile installs nothing itself and just requires: a curated set. Because each when: guard runs in the host shell, methods self-select per OS. Optional blocks (requires:, version:, update:, uninstall:) and the full contract are in SCHEMA.md.

[!WARNING] Windows support is best-effort. Most winget ids were resolved in bulk against the winget catalog and are only spot-checked, so one may be wrong or resolve to a look-alike package — verify what got installed. A bad winget method fails cleanly rather than breaking a POSIX bootstrap.

Auto-updating tools

A recipe opting in with a version: block gets check_updates (compares installed vs latest via packaging, never claims an update it can't parse, skips pinned tools) and update (upgrades, then re-runs verify; on failure it marks the tool broken and returns a rollback_plan — there is no automatic rollback). erbina records what it manages in ~/.erbina/state.json.

Checking automatically (opt-in)

erbina has no CLI, so nothing calls check_updates on a timer — the agent has to. Both options below only nudge the agent; neither updates anything without your confirmation.

SessionStart hook. Point one at examples/erbina-session-start.sh, which prints a payload whose additionalContext asks the agent to run check_updates. In .claude/settings.json (or ~/.claude/settings.json for all projects):

json
{  "hooks": {    "SessionStart": [      {        "matcher": "startup|resume",        "hooks": [          { "type": "command", "command": "bash /ABSOLUTE/PATH/TO/erbina/examples/erbina-session-start.sh" }        ]      }    ]  }}

Scheduled routine. Or create a /schedule routine whose prompt asks the agent to run check_updates and report the summary before applying anything.

Headless / CI usage

A non-interactive claude -p run has no trust prompt, so load the server with --mcp-config and pre-approve its tools with --allowedTools — without that a headless call can call nothing, which is the one thing CI users trip on.

bash
# erbina.mcp.json: { "mcpServers": { "erbina": {#   "command": "uv", "args": ["run", "--script", "/absolute/path/to/erbina/server.py"] } } }claude -p "use erbina to list recipes, then inspect ripgrep" \  --mcp-config erbina.mcp.json --strict-mcp-config \  --allowedTools mcp__erbina__list_recipes mcp__erbina__inspect_recipe

Add mcp__erbina__bootstrap to install for real. --strict-mcp-config makes the run use only that file, never your global config.

What this is not

Not a package manager you run by hand (mcpm / brew / aqua), not a discovery registry (Smithery), and not reproducible provisioning (Nix / chezmoi / a Brewfile — an LLM-driven setup is the wrong tool for that). erbina's niche is the intersection: agent-run, verify-on-install recipes spanning CLI tools and MCP servers, aware of Claude Code's scopes.

Recipes

500+ live in recipes/; agents find them with search_recipes and list_categories. Adding one — a single YAML file following SCHEMA.md, with a cheap detect and an honest verify — is the most useful contribution. See CONTRIBUTING.md.

License

Apache 2.0. The names erbina and Noah Hyden and the project's logos are trademarks, not covered by that licence — see TRADEMARKS.md. Fork the code freely; just give your fork its own name.

來源:README.md,提交 3e16ed7

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.3.0最新Nov 1, 2026
  2. v0.2.1Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分