[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-opencode-mcp-servers-oauth-support-zh":3,"article-related-opencode-mcp-servers-oauth-support-zh":30,"series-tools-d18f279f-60d5-4b67-a304-61649912c957":87},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":11,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":11},"d18f279f-60d5-4b67-a304-61649912c957","opencode-mcp-servers-oauth-support-zh","OpenCode 加入 MCP 與 OAuth","\u003Cp>\u003Ca href=\"https:\u002F\u002Fopencode.ai\u002F\" target=\"_blank\" rel=\"noopener\">OpenCode\u003C\u002Fa> 最近把 \u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002F\" target=\"_blank\" rel=\"noopener\">Model Context Protocol\u003C\u002Fa> 直接接進助手層。這次不是只做個展示而已。它同時支援本機和遠端 MCP server。\u003C\u002Fp>\u003Cp>講白了，就是讓 LLM 直接呼叫外部工具。你不用自己寫一堆 glue code。你把 server 掛上去，工具就會出現在模型可用清單裡。\u003C\u002Fp>\u003Cp>但這功能不是白送的。Open\u003Ca href=\"\u002Fnews\u002Fclaude-code-source-map-leak-zh\">Code\u003C\u002Fa> 也很老實，直接提醒你：MCP 工具會吃 context。像 GitHub 這種 surface 很大的 server，很容易把 token 用爆。\u003C\u002Fp>\u003Ch2>OpenCode 怎麼把 MCP 接進去\u003C\u002Fh2>\u003Cp>OpenCode 把 MCP 設定放在 app config 的 \u003Ccode>mcp\u003C\u002Fcode> key 底下。每個 server 都要有唯一名稱。這個名稱會變成你在 prompt 裡呼叫的 handle。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775128020961-fl82.png\" alt=\"OpenCode 加入 MCP 與 OAuth\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這種設計很適合團隊。你可以把內部系統、公開 API、搜尋工具都包成 MCP server。然後讓模型直接用，不用每次都重寫 agent wrapper。\u003C\u002Fp>\u003Cp>本機和遠端 server 也都算正式支援。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\" target=\"_blank\" rel=\"noopener\">Model Context Protocol servers\u003C\u002Fa> 的官方範例也能拿來測。這對先在筆電上試水溫的人很方便。\u003C\u002Fp>\u003Cul>\u003Cli>本機 server 用 command 啟動\u003C\u002Fli>\u003Cli>遠端 server 用 HTTP URL 連線\u003C\u002Fli>\u003Cli>工具探索 timeout 預設 5000 ms\u003C\u002Fli>\u003Cli>server 名稱就是 prompt 裡的工具名\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我覺得這點很實際。很多 agent 工具都愛把設定弄得很玄。OpenCode 反而是把它收斂成一個 config 檔。\u003C\u002Fp>\u003Cp>你還可以停用某個 server。這很適合測試新工具。也適合先留著，之後再打開，不用一直改整份設定。\u003C\u002Fp>\u003Ch2>本機 MCP 很簡單，但還是要控管\u003C\u002Fh2>\u003Cp>本機 MCP 的寫法很直白。你設定 \u003Ccode>type: \"local\"\u003C\u002Fcode>，再填一個 command array 就好。需要環境變數，也可以一起塞進去。\u003C\u002Fp>\u003Cp>官方文件還拿 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\" target=\"_blank\" rel=\"noopener\">@modelcontextprotocol\u002Fserver-everything\u003C\u002Fa> 當測試例子。這種 server 很適合先驗證流程。至少你知道 OpenCode 跟 MCP 的接法是通的。\u003C\u002Fp>\u003Cp>但簡單不代表可以亂加。每多一個 server，模型要看的工具就更多。context 也會跟著變胖。你如果一次掛五六個服務，模型會像在超市選東西，選到眼花。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>type: \"local\"\u003C\u002Fcode> 是 command 型 server 必填\u003C\u002Fli>\u003Cli>\u003Ccode>command\u003C\u002Fcode> 接的是 binary 和參數陣列\u003C\u002Fli>\u003Cli>\u003Ccode>environment\u003C\u002Fcode> 可注入環境變數\u003C\u002Fli>\u003Cli>\u003Ccode>enabled\u003C\u002Fcode> 可暫時關掉 server\u003C\u002Fli>\u003C\u002Ful>\u003Cp>OpenCode 文件還直接點名 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fgithub-mcp-server\" target=\"_blank\" rel=\"noopener\">GitHub MCP server\u003C\u002Fa> 這類工具，可能很快把 token 吃掉。這不是危言聳聽。你一邊塞 code，一邊塞聊天紀錄，再加一堆工具，context 很快就見底。\u003C\u002Fp>\u003Cp>所以比較務實的做法是：先上 1 到 2 個 server。看模型到底有沒有真的用。真的有幫上忙，再慢慢加。工具不是越多越好，能解決問題才算數。\u003C\u002Fp>\u003Ch2>遠端 MCP 加上 OAuth，部署就順很多\u003C\u002Fh2>\u003Cp>遠端 server 才是團隊最在意的地方。你可以直接指定 URL。需要 header 也能加。若 server 用 OAuth，OpenCode 還能幫你處理登入流程。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775128012065-13g0.png\" alt=\"OpenCode 加入 MCP 與 OAuth\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>文件寫得很清楚。它偵測到 \u003Ccode>401\u003C\u002Fcode> 之後，就會啟動 OAuth flow。若 server 支援 Dynamic \u003Ca href=\"\u002Fnews\u002Fgpt-5-4-vs-claude-opus-4-6-ai-benchmark-zh\">Cl\u003C\u002Fa>ient Registration，也能一起處理。這比手動發 token 好用很多。\u003C\u002Fp>\u003Cp>這裡最有感的，是少了很多人工操作。以前常見做法，是每個開發者自己去拿 token，再塞進各種 config。現在 OpenCode 可以直接開瀏覽器登入，然後把 token 存在本機。\u003C\u002Fp>\u003Cblockquote>“OAuth 2.0 is the industry-standard protocol for authorization.” — IETF RFC 6749\u003C\u002Fblockquote>\u003Cp>如果 provider 有給 client ID 和 secret，你也能用 pre-registered client。這時候 scope 可以自己定。像只讀權限、限定操作範圍，都很適合這種模式。\u003C\u002Fp>\u003Cp>OpenCode 也保留了手動路線。若遠端 server 其實是 API key 模式，你可以關掉自動 OAuth 偵測，再自己送 headers。這對舊系統很重要，不然你會卡在遷移成本。\u003C\u002Fp>\u003Cul>\u003Cli>OAuth token 存在 \u003Ccode>~\u002F.local\u002Fshare\u002Fopencode\u002Fmcp-auth.json\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>opencode mcp auth &lt;server-name&gt;\u003C\u002Fcode> 可手動登入\u003C\u002Fli>\u003Cli>\u003Ccode>opencode mcp list\u003C\u002Fcode> 可看所有 auth 狀態\u003C\u002Fli>\u003Cli>\u003Ccode>opencode mcp logout &lt;server-name&gt;\u003C\u002Fcode> 可移除憑證\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這種操作體驗很像正經工具該有的樣子。你可以查狀態，也可以只重登單一 server。不用整包憑證一起炸掉。\u003C\u002Fp>\u003Cp>對團隊來說，這種細節很重要。因為真正麻煩的，通常不是連不上，而是維運和權限管理太亂。\u003C\u002Fp>\u003Ch2>每個 agent 的工具表可以分開管\u003C\u002Fh2>\u003Cp>OpenCode 這次我最喜歡的點，是它不是把所有 MCP server 一次灌給全部 agent。你可以全域停用，再針對特定 agent 打開。\u003C\u002Fp>\u003Cp>這很像在做權限切分。支援 agent 不需要看 repo 搜尋。工程 agent 不一定要碰 ticket 系統。每個角色看到的工具，最好都不一樣。\u003C\u002Fp>\u003Cp>文件示範了全域關掉工具，再在 agent 設定裡重新啟用。這樣 default surface 會小很多。模型也比較不會亂選工具。\u003C\u002Fp>\u003Cul>\u003Cli>全域可停用單一工具名\u003C\u002Fli>\u003Cli>可用 glob pattern 一次關很多工具\u003C\u002Fli>\u003Cli>\u003Ccode>?\u003C\u002Fcode> 可匹配單一字元\u003C\u002Fli>\u003Cli>agent 層級可重新啟用指定工具\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這不是小事。很多 agent 系統失敗，不是因為模型不夠強，而是工具太雜。工具清單一長，模型就像進了沒有整理的倉庫。\u003C\u002Fp>\u003Cp>OpenCode 的做法比較像企業會買單的版本。你可以讓 support agent 看 ticket。讓 coding agent 看 repo。讓 release agent 只看部署狀態。分工很清楚。\u003C\u002Fp>\u003Ch2>這些案例很實用，不是在做 demo\u003C\u002Fh2>\u003Cp>文件裡的例子都很接地氣。\u003Ca href=\"https:\u002F\u002Fsentry.io\u002F\" target=\"_blank\" rel=\"noopener\">Sentry\u003C\u002Fa> 可以讓模型直接看 issue 和 project data。\u003Ca href=\"https:\u002F\u002Fcontext7.com\u002F\" target=\"_blank\" rel=\"noopener\">Context7\u003C\u002Fa> 可以把文件搜尋變成 promptable to\u003Ca href=\"\u002Fnews\u002Fsolanas-2026-push-institutions-ai-and-fixes-zh\">ol\u003C\u002Fa>。\u003C\u002Fp>\u003Cp>還有 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fgrep\" target=\"_blank\" rel=\"noopener\">Grep by Vercel\u003C\u002Fa>。它能透過遠端 MCP endpoint 搜 code snippet。這種工具對寫 code 的人很有感。因為模型不用瞎猜，直接去資料源找答案。\u003C\u002Fp>\u003Cp>說真的，這才是 MCP 真正有價值的地方。不是炫技。是讓模型少猜一點，多查一點。這對除錯、查文件、找 issue 都很有幫助。\u003C\u002Fp>\u003Cul>\u003Cli>Sentry 用遠端 OAuth 取 project 和 issue\u003C\u002Fli>\u003Cli>Context7 可用 API key 提高 rate limit\u003C\u002Fli>\u003Cli>Grep by Vercel 提供 code search endpoint\u003C\u002Fli>\u003Cli>每個 server 都能用名稱直接呼叫\u003C\u002Fli>\u003C\u002Ful>\u003Cp>但代價也很明白。工具愈多，context 愈貴。設定愈多，維護愈累。OpenCode 是把能力打開，不是幫你自動做選擇。\u003C\u002Fp>\u003Cp>所以問題不是「MCP 有沒有用」。問題是「哪個資料源值得放進模型的第一層」。這個答案每家公司都不一樣。\u003C\u002Fp>\u003Ch2>這波對 agent 工具市場的意義\u003C\u002Fh2>\u003Cp>OpenCode 這次支援 MCP 和 OAuth，處理的是很現實的問題。模型需要外部資料。團隊也需要權限控管。兩邊都不能只靠口號。\u003C\u002Fp>\u003Cp>如果你拿它跟其他 agent 工具比，差別就在這裡。很多工具只會說自己能接 API。OpenCode 則是把本機、遠端、OAuth、per-agent control 一起包好。\u003C\u002Fp>\u003Cp>我覺得接下來大家會更在意兩件事。第一，是工具清單能不能縮小。第二，是每個 server 的 token 成本能不能量化。沒有這些，MCP 很容易變成工具垃圾場。\u003C\u002Fp>\u003Cp>這也反映出整個 AI 軟體的方向。大家不再只問模型多強。還會問它能不能接內部資料，能不能管權限，能不能少花 token。\u003C\u002Fp>\u003Ch2>你現在該怎麼看這個更新\u003C\u002Fh2>\u003Cp>如果你已經在用 OpenCode，我會建議先從最常用的 1 個遠端 server 開始。先把 OAuth 跑通。再看模型實際使用情況。\u003C\u002Fp>\u003Cp>如果你還沒上 MCP，也別一次全開。先挑一個最有價值的資料源。像文件、issue、或 code search。跑一週，再決定要不要擴充。\u003C\u002Fp>\u003Cp>我的判斷很直接：接下來真正會贏的團隊，不是掛最多 server 的那批。是能把工具數量壓住，還能讓模型準確找到資料的那批。\u003C\u002Fp>","OpenCode 把 MCP server 接進 LLM，支援本機與遠端連線、OAuth 驗證、每個 agent 的工具控制，還有 token 風險提示。","opencode.ai","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fmcp-servers\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775128020961-fl82.png","tools","zh","d2e7ef6d-8f7d-4d70-bdae-51b8f3fc1e70",[17,18,19,20,21,22,23,24,25,26],"OpenCode","MCP","OAuth","Model Context Protocol","LLM","API","token","agent","OAuth 2.0","per-agent control",10,"2026-04-02T11:06:35.811934+00:00","2026-04-02T11:06:35.747+00:00",{"tags":31,"relatedLang":46,"relatedPosts":50},[32,33,35,37,39,41,43,45],{"name":24,"slug":24},{"name":19,"slug":34},"oauth",{"name":26,"slug":36},"per-agent-control",{"name":20,"slug":38},"model-context-protocol",{"name":18,"slug":40},"mcp",{"name":21,"slug":42},"llm",{"name":25,"slug":44},"oauth-20",{"name":23,"slug":23},{"id":15,"slug":47,"title":48,"language":49},"opencode-mcp-servers-oauth-support-en","OpenCode adds MCP servers with OAuth support","en",[51,57,63,69,75,81],{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"9816974a-8337-447e-9b37-0872c5d2ceb9","rigmodels-free-sora-3d-models-zh","RigModels 提供 54 個免費 Sora 3D 模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780609680630-4fz6.png","2026-06-04T21:47:30.947861+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"d55eb067-d6c5-4f0b-9374-9504ac61e00e","denver-hail-map-209-spotter-reports-zh","Denver 冰雹地圖記錄 209 回報","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780602477218-8rz6.png","2026-06-04T19:47:24.175663+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"91822854-0010-478e-b70c-6a624d039703","cloudflare-turns-startup-traffic-into-a-moat-zh","Cloudflare 讓流量變護城河","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780590804649-xc2z.png","2026-06-04T16:32:50.96702+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"6ea3977e-ea7f-4d71-9472-08b512f81593","ai-code-review-tools-catch-hard-bugs-zh","AI code review 讓你抓到硬 bug","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780582701702-jnoi.png","2026-06-04T14:17:50.313258+00:00",{"id":76,"slug":77,"title":78,"cover_image":79,"image_url":79,"created_at":80,"category":13},"0342ff17-feea-4e43-81ff-d12c43cc93c0","claude-partner-network-learning-path-launches-zh","Claude 合作夥伴課程上線","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780578178111-1za9.png","2026-06-04T13:02:27.319581+00:00",{"id":82,"slug":83,"title":84,"cover_image":85,"image_url":85,"created_at":86,"category":13},"1a92ac0a-75ea-4877-874d-4a309cd0085b","nvidia-research-gpu-template-zh","NVIDIA 研究頁把 GPU 資源變模板","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780567412863-e8oq.png","2026-06-04T10:02:58.043845+00:00",[88,93,98,103,108,113,118,123,128,133],{"id":89,"slug":90,"title":91,"created_at":92},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":99,"slug":100,"title":101,"created_at":102},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":134,"slug":135,"title":136,"created_at":137},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]