別再用共享資料夾分享技能:收成一台可授權、可稽核的 MCP

你寫了一個好用的技能(skill):有說明、有範本、有腳本。同事想用,你怎麼給他?把資料夾丟給他?十個人就丟十份 —— 然後你**永遠不知道誰有、誰在用、你改了他同步了沒、想收回也收不回**。這篇講一個實際又可控的做法:把技能收成一台 MCP,大家來接,透過 MCP 取得你的技能;而 MCP 能授權又能記 log —— 你會知道是誰把技能拿走了

🧭 一句話心法
共享資料夾分享技能不可持續:零控管、零紀錄。把技能收成 MCP 服務 —— 大家接同一份、你改一次全員即得、token 知道誰接、log 知道誰拿走了哪個技能。執行仍在對方本機(讀他的真實資料),你只供「說明+範本+腳本」。
重點摘要
  • 共享資料夾的死結:改不同步、不知道誰有/誰用、收不回。
  • 解法:技能收成 MCP bundle(說明+範本+腳本),對外開 search / get_skill / read_file
  • 可控的關鍵:MCP 能授權(token→誰)+ 稽核 log(誰拿走了什麼) —— 資料夾給不了。
  • 擴充 = 加一個資料夾;收回 = 撤一個 token。改一次,全員下次接就是新的。
  • 執行留對方本機(讀真實資料才填端點/欄位/金鑰)—— 知識共享、機密不出門。
🧭 本文導覽
Part 一 — 共享資料夾行不通
Part 二 — 解法:收上 MCP
Part 三 — 架構與流程
Part 四 — 可授權、可稽核
Part 五 — 實作
Part 六 — 治理・決策・FAQ
Part 一 — 共享資料夾行不通

你不可能用共享資料夾分享技能

先說為什麼「丟資料夾」這條路一開始就錯。技能不是一個檔,是一整包:說明、範本、腳本。你把這包複製給十個人,當下能用,但你立刻失去四件事:

  • 同步:你改了範本/修了腳本 bug,十份副本沒人自動更新;
  • 可見度:你不知道誰手上有、版本各停在哪;
  • 使用狀況:誰在用、用多少、拿去幹嘛 —— 完全黑箱;
  • 收回:想停用某個舊技能?副本已經散出去了,收不回。

這不是技能不好,是「分發方式」沒有控管。人越多、技能越多,失控越嚴重。

為什麼共享資料夾必然失控

把「共享資料夾」跟「收成一台 MCP」擺一起看,差別一眼就懂:

共享資料夾(各自複製一份) 人1技能副本 人2技能副本 人3技能副本 改了不同步 · 不知道誰有 · 誰在用不知道 · 收不回 每多一人、每改一次 = 又要重發一輪。零控管、零紀錄。 收成一台 MCP(大家來接) 技能 MCP授權 + log 大家來接一份 改一次全員即得 · token 知道誰接 · log 知道誰拿了什麼 加一個技能 = 加一個資料夾;想收回 = 撤一個 token。 集中一份、可授權、可稽核。
共享資料夾收成一台 MCP
分發複製一份給每個人大家接同一個 URL
改版每份各自過時改一次,全員下次接即得
誰在用黑箱log 有紀錄:誰拿了什麼
授權/收回收不回token 給/撤,一行搞定
擴充每加一人一技能都線性膨脹加一個資料夾
Part 二 — 解法:收上 MCP

解法:把技能變成「可被取用」的形式,收上 MCP

做法:把每個技能收成一個 bundle(說明 + 範本 + 腳本),放進一個受管的技能庫;再用一台 MCP 對外開幾個 tool,讓人來查、取說明、抓範本/腳本:

MCP tool做什麼
`search_skills(q)`查詢:關鍵字找相關技能
`get_skill(name)`說明 + 檔案清單(有哪些範本/腳本)
`read_file(name,path)`抓某個範本/腳本的內容(去敏 + 白名單擋 traversal)

技能就這樣「像提示詞一樣可被取用」—— 別人不用安裝你的資料夾,連上 MCP 就能把你的技能下來用。

執行留本機、技能上 MCP(兩種 MCP 的分界)

這裡有個關鍵分野,決定能不能遠端共享。MCP 有兩種賣法:

執行型 MCP技能型 MCP(本文)
賣什麼替你執行動作供說明/範本/腳本
執行在哪server 端對方 agent 自己本機
能遠端共享?要看執行能否搬 server可以,純供技能

技能型 MCP 不執行、只回文字 → 所以能公開讓大家接,而且**執行在對方本機、讀對方的真實資料**,你的技能(形狀)共享出去,對方的機密(真實端點/金鑰)不會流到你這。這條路數跟我寫過的〈導向型 MCP Gateway〉一致。

Part 三 — 架構與流程

架構圖:大家來接一台 MCP

整個拓撲:多人/多 agent 經 Cloudflare 接同一台技能 MCP(授權+log),MCP 回說明/範本/腳本,執行各自在本機、讀各自的真實資料。

Agent 甲 Agent 乙 …更多人/agent CloudflareHTTPS 技能 MCP(gateway) ① 授權:token → 是誰② 擋 401 未授權③ 稽核 log:誰拿走了什麼list / search / get_skill / read_file 技能庫N 個 bundle說明+範本+腳本 ① 接上(Bearer token) 檢索 ② 回 說明/範本/腳本(文字) ③ 各自在【本機】跑腳本、填範本讀真實資料才填端點/欄位/金鑰。MCP 不執行、不碰你的本機。

流程圖:技能怎麼收進來、怎麼被取用

上半「收容」:某人的技能 → 去敏 + 補治理 → 進技能庫(git)→ MCP 索引;下半「取用」:別人的 agent → token 接上 → get_skill / read_file 抓檔 → 本機跑。每一步都記 log。

收容側 —— 技能怎麼「收進 MCP」 某人的技能說明+範本+腳本 收容 + 去敏補治理 frontmatter 技能庫(git) MCP 自動索引→ 可被搜到 PR 索引 取用側 —— 別人怎麼「透過 MCP 取得技能」 別人的 Agent 技能 MCP授權 + log get_skill + read_file說明 / 範本 / 腳本 本機跑腳本 / 填範本讀真實資料才填 ① token ② search→取 ③ 抓檔 每一步都記 log:誰(token)、拿了哪個技能的哪個檔
Part 四 — 可授權、可稽核

可授權:誰能接、誰不能

這是共享資料夾給不了、而 MCP 天生就有的第一件事。連上要帶 token,MCP 用 token 認出是誰,沒 token 或 token 不對 → 擋 401。加人 = 發一個 token,停用 = 撤一個 token,不用重發任何東西。

沒 token   → HTTP 401(擋下)
帶 token   → 認出身分 → 放行
加人 = tokens 檔加一行 "kg_xxx: 某人"(熱加,免重啟)
收回 = 刪那一行

可稽核:知道是誰把技能拿走了

第二件、也是你最想要的:每一次呼叫都記一行 log —— 誰(token 對應的身分)、呼叫了什麼、拿了哪個技能的哪個檔、什麼時候。真實 log 長這樣:

{"identity":null,   "result":"401",                        "ip":"<ip>","ts":"..."}   ← 未授權被擋
{"identity":"Alice","method":"tools/call","tool":"get_skill", "ts":"..."}            ← Alice 看了某技能
{"identity":"Bob",  "method":"tools/call","tool":"read_file", "ts":"..."}            ← Bob 抓走了某腳本
為什麼這是重點:資料夾一旦複製出去,誰拿了、拿去幹嘛,你永遠不知道。收成 MCP 後,「取用」變成一次可記錄的呼叫 —— 你能回答「這個技能被誰拿走過」,能算用量、能砍沒人用的、能追責。可授權 + 可稽核,才是「分享技能」能規模化的前提。這也是〈企業 AI Agent 治理〉一路在講的:地端要好用,得先能集中控管。
Part 五 — 實作

一個技能 = 一包(說明 + 範本 + 腳本)

落地長這樣 —— 每個技能是一個資料夾:

skills/<name>/
  SKILL.md        說明(治理 frontmatter + how-to)
  templates/*.md  範本(去敏、placeholder)
  scripts/*.py    腳本(通用、可跑)

`SKILL.md` 的 frontmatter 就是 Claude Code `SKILL.md` 的治理超集(多了 owner / status / classification / last_reviewed)。所以同一份來源,既能當本地 skill、也能上 MCP。(例如我把〈手寫 .pbip 產 Power BI 報表〉那個技能,就收成這樣一包:說明 + TMDL 範本 + 產生器腳本。)

收 10 個人的技能 = 加 10 個資料夾

收容某人的技能 = 把他那包整包收進技能庫、補治理欄位、去敏、過驗證、PR:

import_skill_bundle <他的技能資料夾>
  → 整包進 skills/<name>/(含他的範本/腳本)
  → 自動補治理 frontmatter(owner 待補)
  → validate(缺欄位 / 洩漏 url·金鑰 → 擋)→ PR review → merge
擴充成本 = 一個資料夾。收一個技能不改 server、不用任何人重裝;MCP 下次啟動自動索引,所有接上的人立即有。這就是「收得住、也用得起來」。
Part 六 — 治理・決策・FAQ

治理八維度(checklist)

維度不治理治理手段
收斂掛 N 個來源,context 爆一台 MCP 索引全部,按需取
發現不知道有啥、重複造search + 技能庫
擁有者孤兒技能沒人養每個 owner(DRI)
去敏URL/欄位/金鑰外洩只給形狀;提交擋、取用再遮
生命週期過時技能比沒有更糟version + last_reviewed;deprecated
授權誰都能拿token,依分級授權
稽核不知道誰拿了log:誰/什麼/何時
觀測不知哪些沒人用用量 → 砍死技能

決策樹:你的技能該怎麼發

① 只有你自己/一台機器用?
是 → 本地 skill 資料夾就好
要給別人 → 往下
② 要知道誰在用、想能收回?
要 → 收成技能 MCP(授權+log)
不在乎 → 共享資料夾(但別怪失控)
③ 技能要「執行」還是「教怎麼做」?
教怎麼做(可遠端)→ 技能型 MCP;要碰本機才跑 → 執行留本機

常見問題 FAQ

為什麼不直接用共享資料夾 / plugin?

資料夾複製出去就失控:改不同步、不知道誰有、收不回、更不知道誰在用。MCP 讓「取用」變成一次可授權、可記錄的呼叫。

技能的腳本會在誰的機器上跑?

對方的機器。MCP 只回文字(說明/範本/腳本),對方 agent 抓下來後在自己本機跑、讀自己的真實資料 —— 你的機密不會流出去。

怎麼知道是誰把技能拿走了?

每次呼叫都寫稽核 log:token 對應的身分、呼叫的 tool、拿了哪個技能的哪個檔、時間。你能回答「這技能被誰拿過」、能算用量、能追責。

加一個新技能要動 server 嗎?

不用。加一個技能 = 在技能庫加一個資料夾 → 過驗證 → PR。MCP 下次啟動自動索引,所有接上的人立即有。

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *