[TOOLS] 8 分鐘閱讀OraCore 編輯部

OpenCode 加入 MCP 與 OAuth

OpenCode 把 MCP server 接進 LLM,支援本機與遠端連線、OAuth 驗證、每個 agent 的工具控制,還有 token 風險提示。

分享 LinkedIn
OpenCode 加入 MCP 與 OAuth

OpenCode 最近把 Model Context Protocol 直接接進助手層。這次不是只做個展示而已。它同時支援本機和遠端 MCP server。

講白了,就是讓 LLM 直接呼叫外部工具。你不用自己寫一堆 glue code。你把 server 掛上去,工具就會出現在模型可用清單裡。

但這功能不是白送的。OpenCode 也很老實,直接提醒你:MCP 工具會吃 context。像 GitHub 這種 surface 很大的 server,很容易把 token 用爆。

OpenCode 怎麼把 MCP 接進去

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

OpenCode 把 MCP 設定放在 app config 的 mcp key 底下。每個 server 都要有唯一名稱。這個名稱會變成你在 prompt 裡呼叫的 handle。

OpenCode 加入 MCP 與 OAuth

這種設計很適合團隊。你可以把內部系統、公開 API、搜尋工具都包成 MCP server。然後讓模型直接用,不用每次都重寫 agent wrapper。

本機和遠端 server 也都算正式支援。Model Context Protocol servers 的官方範例也能拿來測。這對先在筆電上試水溫的人很方便。

  • 本機 server 用 command 啟動
  • 遠端 server 用 HTTP URL 連線
  • 工具探索 timeout 預設 5000 ms
  • server 名稱就是 prompt 裡的工具名

我覺得這點很實際。很多 agent 工具都愛把設定弄得很玄。OpenCode 反而是把它收斂成一個 config 檔。

你還可以停用某個 server。這很適合測試新工具。也適合先留著,之後再打開,不用一直改整份設定。

本機 MCP 很簡單,但還是要控管

本機 MCP 的寫法很直白。你設定 type: "local",再填一個 command array 就好。需要環境變數,也可以一起塞進去。

官方文件還拿 @modelcontextprotocol/server-everything 當測試例子。這種 server 很適合先驗證流程。至少你知道 OpenCode 跟 MCP 的接法是通的。

但簡單不代表可以亂加。每多一個 server,模型要看的工具就更多。context 也會跟著變胖。你如果一次掛五六個服務,模型會像在超市選東西,選到眼花。

  • type: "local" 是 command 型 server 必填
  • command 接的是 binary 和參數陣列
  • environment 可注入環境變數
  • enabled 可暫時關掉 server

OpenCode 文件還直接點名 GitHub MCP server 這類工具,可能很快把 token 吃掉。這不是危言聳聽。你一邊塞 code,一邊塞聊天紀錄,再加一堆工具,context 很快就見底。

所以比較務實的做法是:先上 1 到 2 個 server。看模型到底有沒有真的用。真的有幫上忙,再慢慢加。工具不是越多越好,能解決問題才算數。

遠端 MCP 加上 OAuth,部署就順很多

遠端 server 才是團隊最在意的地方。你可以直接指定 URL。需要 header 也能加。若 server 用 OAuth,OpenCode 還能幫你處理登入流程。

OpenCode 加入 MCP 與 OAuth

文件寫得很清楚。它偵測到 401 之後,就會啟動 OAuth flow。若 server 支援 Dynamic Client Registration,也能一起處理。這比手動發 token 好用很多。

這裡最有感的,是少了很多人工操作。以前常見做法,是每個開發者自己去拿 token,再塞進各種 config。現在 OpenCode 可以直接開瀏覽器登入,然後把 token 存在本機。

“OAuth 2.0 is the industry-standard protocol for authorization.” — IETF RFC 6749

如果 provider 有給 client ID 和 secret,你也能用 pre-registered client。這時候 scope 可以自己定。像只讀權限、限定操作範圍,都很適合這種模式。

OpenCode 也保留了手動路線。若遠端 server 其實是 API key 模式,你可以關掉自動 OAuth 偵測,再自己送 headers。這對舊系統很重要,不然你會卡在遷移成本。

  • OAuth token 存在 ~/.local/share/opencode/mcp-auth.json
  • opencode mcp auth <server-name> 可手動登入
  • opencode mcp list 可看所有 auth 狀態
  • opencode mcp logout <server-name> 可移除憑證

這種操作體驗很像正經工具該有的樣子。你可以查狀態,也可以只重登單一 server。不用整包憑證一起炸掉。

對團隊來說,這種細節很重要。因為真正麻煩的,通常不是連不上,而是維運和權限管理太亂。

每個 agent 的工具表可以分開管

OpenCode 這次我最喜歡的點,是它不是把所有 MCP server 一次灌給全部 agent。你可以全域停用,再針對特定 agent 打開。

這很像在做權限切分。支援 agent 不需要看 repo 搜尋。工程 agent 不一定要碰 ticket 系統。每個角色看到的工具,最好都不一樣。

文件示範了全域關掉工具,再在 agent 設定裡重新啟用。這樣 default surface 會小很多。模型也比較不會亂選工具。

  • 全域可停用單一工具名
  • 可用 glob pattern 一次關很多工具
  • ? 可匹配單一字元
  • agent 層級可重新啟用指定工具

這不是小事。很多 agent 系統失敗,不是因為模型不夠強,而是工具太雜。工具清單一長,模型就像進了沒有整理的倉庫。

OpenCode 的做法比較像企業會買單的版本。你可以讓 support agent 看 ticket。讓 coding agent 看 repo。讓 release agent 只看部署狀態。分工很清楚。

這些案例很實用,不是在做 demo

文件裡的例子都很接地氣。Sentry 可以讓模型直接看 issue 和 project data。Context7 可以把文件搜尋變成 promptable tool

還有 Grep by Vercel。它能透過遠端 MCP endpoint 搜 code snippet。這種工具對寫 code 的人很有感。因為模型不用瞎猜,直接去資料源找答案。

說真的,這才是 MCP 真正有價值的地方。不是炫技。是讓模型少猜一點,多查一點。這對除錯、查文件、找 issue 都很有幫助。

  • Sentry 用遠端 OAuth 取 project 和 issue
  • Context7 可用 API key 提高 rate limit
  • Grep by Vercel 提供 code search endpoint
  • 每個 server 都能用名稱直接呼叫

但代價也很明白。工具愈多,context 愈貴。設定愈多,維護愈累。OpenCode 是把能力打開,不是幫你自動做選擇。

所以問題不是「MCP 有沒有用」。問題是「哪個資料源值得放進模型的第一層」。這個答案每家公司都不一樣。

這波對 agent 工具市場的意義

OpenCode 這次支援 MCP 和 OAuth,處理的是很現實的問題。模型需要外部資料。團隊也需要權限控管。兩邊都不能只靠口號。

如果你拿它跟其他 agent 工具比,差別就在這裡。很多工具只會說自己能接 API。OpenCode 則是把本機、遠端、OAuth、per-agent control 一起包好。

我覺得接下來大家會更在意兩件事。第一,是工具清單能不能縮小。第二,是每個 server 的 token 成本能不能量化。沒有這些,MCP 很容易變成工具垃圾場。

這也反映出整個 AI 軟體的方向。大家不再只問模型多強。還會問它能不能接內部資料,能不能管權限,能不能少花 token。

你現在該怎麼看這個更新

如果你已經在用 OpenCode,我會建議先從最常用的 1 個遠端 server 開始。先把 OAuth 跑通。再看模型實際使用情況。

如果你還沒上 MCP,也別一次全開。先挑一個最有價值的資料源。像文件、issue、或 code search。跑一週,再決定要不要擴充。

我的判斷很直接:接下來真正會贏的團隊,不是掛最多 server 的那批。是能把工具數量壓住,還能讓模型準確找到資料的那批。