← 全部文章
Ecosystem

安裝官方 Marketplace 前,先審核 Claude Code Plugins

A developer workbench scene showing a Claude Code plugin marketplace card passing through a security scanner, with small

Anthropic 的官方 Claude Code plugin marketplace,已經不再是藏在 config 資料夾裡的傳聞。公開的 GitHub repo anthropics/claude-plugins-official,截至 2026 年 6 月 17 日已有超過 30,000 顆星;它的 README 描述這是一個經過策展的目錄,包含 Anthropic 內部 plugins,以及第三方項目。同一份 README 也寫著一句你該用來校準心態的話:「Make sure you trust a plugin before installing, updating, or using it」,因為 Anthropic 並不控制這些 plugins 裡的每一個 MCP server、檔案,或其他打包進來的相依項目(GitHub)。

那個警告不是法律樣板話。一個 Claude Code plugin 可以打包 slash commands、skills、agents、hooks、MCP servers、LSP servers、executables,以及 settings。用開發者聽得懂的話說:它可以加入 prompt context、啟動本機程序、呼叫遠端服務、在生命週期事件上執行 shell hooks,並把新的 tools 暴露給模型。

正確的心理模型不是「安裝一個編輯器主題」。而是「加入一個能在我的 source tree 附近執行程式碼的 dependency」。

Claude Code plugin 安裝路徑流程草圖,從 marketplace catalog 到 local cache,再到啟用的 components,並帶有 fou

Marketplace 是真的,但「官方」不代表「可以閉眼信任」

Anthropic 在 2025 年 10 月 9 日宣布 Claude Code plugins,將它們描述為 slash commands、agents、MCP servers 與 hooks 的集合,可透過 /plugin 安裝(Claude blog)。目前的 Claude Code 文件說,官方 Anthropic marketplace claude-plugins-official 會在 Claude Code 啟動時自動可用,而你可以用以下指令安裝 plugin:

/plugin install github@claude-plugins-official

如果 plugin 不見了,文件會叫你用這個指令重新整理 marketplace:

/plugin marketplace update claude-plugins-official

或用這個指令加入它:

/plugin marketplace add anthropics/claude-plugins-official

這是官方的順風路徑(Claude Code docs)。它有用。但如果拿來當作營運政策,還不完整。

官方 repo 的 marketplace file 指向混合來源:有些是本機 plugin 目錄,有些是用 commit SHA 釘住的外部來源。舉例來說,.claude-plugin/marketplace.json 裡的 entries 可以引用 GitHub repositories、subdirectories、refs 和 SHAs(raw marketplace file)。Pinning 有幫助,但它不會免除你檢查被釘住的程式碼到底在做什麼的責任。plugin 仍然可能啟動 server、要求 credentials、執行 hooks,或依賴一個會在 marketplace manifest 之外改變行為的 binary。

社群也注意到了同一件事。在最近一串詢問重要 Claude Code plugins 的 r/ClaudeAI 討論裡,有人回覆建議先用 CLAUDE.md 和 hooks,然後只加 project-specific MCP servers。另一個人警告不要把「一堆隨機 connectors」丟給 Claude Code,因為它們會消耗 tokens,也可能造成 context pollution(Reddit)。這就是現在真正的實務辯論:plugins 很強,但每多一個能力,就多一塊成本與風險面。

從 Manifest 開始,接著讀 Repo

你的第一個審核目標是 plugin source。在你能把來源追回 repo 和 manifest 之前,不要從搜尋摘要、部落格複製貼上的指令,或隨機 marketplace aggregators 安裝。

在官方 marketplace repo 裡,檢查:

  1. .claude-plugin/marketplace.json 裡的 marketplace entry
  2. source type、URL、path、ref 和 SHA
  3. plugin 的 .claude-plugin/plugin.json,如果有的話
  4. 任何 .mcp.json.lsp.jsonhooks/hooks.jsoncommands/skills/agents/bin/ 和 scripts

Anthropic 的 plugin reference 列出核心 component paths。Hooks 放在 hooks/hooks.json,MCP servers 可以放在 .mcp.json,executables 可以放在 bin/,而 plugin manifests 可以指向自訂的 component locations(Claude Code plugin reference)。這代表「我檢查過 plugin.json」還不夠。plugin 可以依賴預設 discovery paths。

快速人工 review 大概長這樣:

git clone https://github.com/OWNER/PLUGIN-REPO /tmp/plugin-audit
cd /tmp/plugin-audit

find . -maxdepth 3 \( \
  -name plugin.json -o \
  -name hooks.json -o \
  -name .mcp.json -o \
  -name .lsp.json -o \
  -path "*/bin/*" -o \
  -path "*/scripts/*" \
\) -print

rg -n "curl|wget|bash|sh -c|chmod|open |xdg-open|osascript|token|api_key|secret|eval|exec|spawn|subprocess"

那個 rg 指令很粗暴,但這裡粗暴是好事。你要找的是安裝時的意外行為、shell execution、瀏覽器啟動、遠端下載、credential handling,以及會修改你的 repo 或 home directory 的 scripts。

我的規則:如果一個 plugin 需要 shell script 才能完成它的核心工作,我會在安裝前理解那支 script 裡的每一道指令。如果它在 runtime 下載另一個 artifact,我會把那個 runtime artifact 視為 plugin 的一部分。

MCP Servers 是最昂貴的「方便」

MCP 是 plugin 的方便性可能變成隱性成本的地方。Anthropic 的 MCP 文件說,plugin-defined MCP servers 會在 plugin 啟用時自動啟動,而 plugin MCP tools 會和手動設定的 MCP tools 一起出現(Claude Code MCP docs)。文件也說 plugin MCP servers 使用與手動設定 servers 相同的 environment variables;如果你的 shell exports 了 cloud tokens、database URLs 或內部服務 credentials,這點就很重要。

社群抱怨很具體:MCP tool schemas 可能在你呼叫 tool 之前就吃掉 context。在一串 r/ClaudeCode token-overhead 討論裡,使用者指出 disabled plugins 和沒有重型 MCP servers,可能是 token burn 較低的原因;也有人把 MCP tool schemas 稱為「巨大的隱藏成本」(Reddit)。另一串討論裡,有留言者聲稱連上的 MCP servers 會把 tool schemas 註冊進 context,並建議每個 session 都修剪 servers(Reddit)。

Reddit 上的精確 token 估算,除非你在自己的 setup 裡重現,否則都當作軼聞就好。但底層方向仍然正確:一個 always-on、帶很多冗長 tools 的 server 不是免費的。

安裝 connector-style plugin 前,先用這張決策表:

NeedSafer defaultUse MCP when
執行 GitHub 操作透過 Bash 使用 gh CLIClaude 必須互動式瀏覽 issues、PRs 和 metadata
查詢 databaseRead-only CLI 或本機 scriptClaude 需要使用帶 scoped credentials 的 structured tool calls
檢查 cloud resources使用明確指令的 vendor CLIMCP server 具備 narrow permissions 和清楚的 audit logs
抓取 docsStatic docs、repo files 或 web linksResources 很大、動態,且會頻繁被引用
執行 policyPreToolUse hook判斷需要 Claude-visible context 或 tool metadata

CLI tool 通常更安全,因為它只在需要時被呼叫,而且只為那一輪產生 output。MCP 在提供 scoped OAuth、typed tools 和 audit logs 時也可能更安全。錯誤在於反射式地安裝 MCP。

精簡比較圖,跨四列比較 CLI tools 與 MCP servers:context cost、permission surface、setup

Hooks 值得獨立做一次安全審核

Hooks 是讓 plugins 感覺有魔法的功能。它們也是我審得最嚴的功能。

Claude Code hooks 可以在 SessionStartUserPromptSubmitPreToolUsePostToolUsePreCompactSessionEnd 等事件上執行。plugin reference 說 hook types 包含 command hooks、HTTP hooks、MCP tool hooks、prompt hooks 和 agent hooks(Claude Code plugin reference)。hooks guide 解釋,PreToolUse hook 可以透過 exit code 2 阻擋某個 action,而 UserPromptSubmitUserPromptExpansionSessionStart 的 stdout 可以被加進 Claude 的 context(Claude Code hooks guide)。

這是很大的權力。

好的 hook 會阻擋危險行為,或加入精簡、可預測的 context。壞的 hook 會把每個 prompt 變成昂貴的 RAG pipeline,把 prompt text 外洩到 HTTP endpoint,或默默改變你的 environment。

用四個問題審核 hooks:

  1. 是什麼 event 觸發它?
  2. 是什麼 matcher 限制它?
  3. 它會收到什麼 data?
  4. 它會把什麼寫到 stdout、stderr、disk、network 或 context?

社群在這裡的分歧很有用。在一串 r/ClaudeCode hooks 討論裡,有些開發者把 hooks 描述成強制執行規則、阻擋危險 git actions,或提醒 Claude 寫入 memory 的唯一可靠方法。其他人則在 UserPromptSubmit 上建立複雜的 memory 和 RAG flows(Reddit)。兩者都可能合理。差別在 budget 和 blast radius。

對團隊安裝來說,我會比 context-injection hooks 更早允許 policy hooks。一個阻擋 rm -rf patterns 的 PreToolUse hook 很容易推理。一個每輪都抓取並注入 memory 的 UserPromptSubmit hook,則需要 measurements、caps 和清楚 ownership。

窄範圍安裝,測量,再推廣

Claude Code 支援 user、project、local 和 managed plugin scopes。文件把 user scope 描述為跨 projects 的個人範圍,project scope 是透過 .claude/settings.json 共享,而 local scope 是 project-specific 但不共享(Claude Code docs)。

把這些 scopes 當成 rollout mechanism:

  1. 先安裝到 local。
  2. 跑一個真實 task。
  3. 檢查 /plugin details 和 /mcp
  4. 啟用前後使用 /context/usage
  5. 停用任何不值得佔位的東西。
  6. review 後才推到 project scope。

文件現在說,在 Claude Code v2.1.143 之後,plugin details pane 可以顯示 context cost estimates;v2.1.144 之後可以顯示 last updated dates;v2.1.145 之後可以顯示「Will install」inventory(Claude Code docs)。按下 install 前先用那份 inventory。如果一個 plugin 聲稱自己是 formatter,卻安裝了 MCP server、hook 和 background monitor,停下來檢查。

也要注意 auto-updates。Anthropic 說官方 marketplaces 預設啟用 auto-update,而第三方和 local marketplaces 預設停用。文件也描述了用來控制 update behavior 的 DISABLE_AUTOUPDATERFORCE_AUTOUPDATE_PLUGINSClaude Code docs)。Auto-update 對 security fixes 很方便,但它會改變你的 runtime supply chain。對受監管的團隊來說,應該把 marketplace versions pin 在經過 review 的 internal marketplace,而不是讓每台 laptop 各自漂移。

前後對照的 audit dashboard mockup,顯示已安裝 plugin inventory 從許多 MCP servers 和 hooks 縮減為

我安裝前會用的清單

這是我會給任何使用 Claude Code 的團隊開發者的短版清單。

Source:

  • Marketplace 是 anthropics/claude-plugins-official、internal repo,還是 third-party repo?
  • Plugin source 是否 pinned to a SHA?
  • Homepage 是否符合 source owner?
  • Repo 是否有近期非預期變更、generated blobs,或 install scripts?

Components:

  • 它有加入 MCP servers 嗎?
  • 它有加入 hooks 嗎?
  • 它有在 bin/ 加入 executables 嗎?
  • 它有加入能呼叫 tools 的 agents 嗎?
  • 它有加入需要 local binaries 的 LSP servers 嗎?

Permissions:

  • 它要求哪些 credentials?
  • Sensitive values 是否透過 plugin userConfig 以 sensitive fields 儲存?
  • MCP server 拿到的是 read-only 還是 write access?
  • Hook 會透過 HTTP phone home 嗎?
  • 有任何 script 會繼承 broad environment variables 嗎?

Cost:

  • /plugin 回報的 context cost 是多少?
  • 啟用後 /context 有什麼變化?
  • Plugin 是每個 session 都有價值,還是只在罕見 workflows 裡有用?
  • CLI command 能不能用更少 persistent context 產生同樣結果?

Operations:

  • 你能用 /plugin disable name@marketplace 乾淨地停用它嗎?
  • 你能乾淨地 uninstall 它嗎?
  • 它會留下 config、credentials、daemons、caches 或 browser auth 嗎?
  • 誰負責 updates?
  • 如果 plugin source 消失,什麼會壞掉?

我的偏執答案是:少裝一點 plugins,比你想裝的更少。偏好小而無聊、只加入一個 workflow 的 plugins。One-shot operations 優先用 CLIs。只有在 server scoped、audited,而且真的需要互動時才用 MCP。把 hooks 用在 guardrails 上,不要把它們當成你希望模型記得的所有偏好垃圾桶。

Plugins 正在變成 Claude Code 的 workflow package format。這是好事。它讓團隊可以共享可重複的 setups,而不是靠部落口耳相傳的 prompt lore。但這個 package format 強大到值得做 dependency review、permission review 和 cost review。如果你不會在沒讀過內容的情況下,把一個 tool curl | bash 進你的 repo,那也不要只因為 plugin 出現在友善的 marketplace UI 裡,就安裝它的 plugin 版本。

Quiet footer: 如果你想自己試試 Claude Fable 5,可以透過 Claude Fable 5 on OneHop 使用,這是一個 drop-in endpoint,價格大約比 list 低 30%。新帳號可以 start with $10 free,不需要信用卡。

Further reading: Getting started with Claude Fable 5.