[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-opencode-mcp-servers-oauth-support-zh":3,"tags-opencode-mcp-servers-oauth-support-zh":35,"related-lang-opencode-mcp-servers-oauth-support-zh":52,"related-posts-opencode-mcp-servers-oauth-support-zh":56,"series-tools-d18f279f-60d5-4b67-a304-61649912c957":93},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":23,"translated_content":10,"views":24,"is_premium":25,"created_at":26,"updated_at":26,"cover_image":11,"published_at":27,"rewrite_status":28,"rewrite_error":10,"rewritten_from_id":29,"slug":30,"category":31,"related_article_id":32,"status":33,"google_indexed_at":34,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":10,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":25},"d18f279f-60d5-4b67-a304-61649912c957","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",[13,14,15,16,17,18,19,20,21,22],"OpenCode","MCP","OAuth","Model Context Protocol","LLM","API","token","agent","OAuth 2.0","per-agent control","zh",2,false,"2026-04-02T11:06:35.811934+00:00","2026-04-02T11:06:35.747+00:00","done","98845d66-7f9a-405a-bfcf-7b9c86824292","opencode-mcp-servers-oauth-support-zh","tools","d2e7ef6d-8f7d-4d70-bdae-51b8f3fc1e70","published","2026-04-08T09:00:52.622+00:00",[36,38,40,42,44,46,48,50],{"name":37,"slug":20},"Agent",{"name":15,"slug":39},"oauth",{"name":22,"slug":41},"per-agent-control",{"name":16,"slug":43},"model-context-protocol",{"name":14,"slug":45},"mcp",{"name":17,"slug":47},"llm",{"name":21,"slug":49},"oauth-20",{"name":51,"slug":19},"Token",{"id":32,"slug":53,"title":54,"language":55},"opencode-mcp-servers-oauth-support-en","OpenCode adds MCP servers with OAuth support","en",[57,63,69,75,81,87],{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":31},"68e4be16-dc38-4524-a6ea-5ebe22a6c4fb","why-vidhub-huiyuan-hutong-bushi-quan-shebei-tongyong-zh","為什麼 VidHub 會員互通不是「買一次全設備通用」","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778789450987-advz.png","2026-05-14T20:10:24.048988+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":31},"7a1e174f-746b-4e82-a0e3-b2475ab39747","why-buns-zig-to-rust-experiment-is-right-zh","為什麼 Bun 的 Zig-to-Rust 實驗是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778767879127-5dna.png","2026-05-14T14:10:26.886397+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":31},"e742fc73-5a65-4db3-ad17-88c99262ceb7","why-openai-api-pricing-is-product-strategy-zh","為什麼 OpenAI API 定價是產品策略，不是註腳","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778749859485-chvz.png","2026-05-14T09:10:26.003818+00:00",{"id":76,"slug":77,"title":78,"cover_image":79,"image_url":79,"created_at":80,"category":31},"c757c5d8-eda9-45dc-9020-4b002f4d6237","why-claude-code-prompt-design-beats-ide-copilots-zh","為什麼 Claude Code 的提示設計贏過 IDE Copilot","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778742645084-dao9.png","2026-05-14T07:10:29.371901+00:00",{"id":82,"slug":83,"title":84,"cover_image":85,"image_url":85,"created_at":86,"category":31},"4adef3ab-9f07-4970-91cf-77b8b581b348","why-databricks-model-serving-is-right-default-zh","為什麼 Databricks Model Serving 是生產推論的正確預設","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778692245329-a2wt.png","2026-05-13T17:10:30.659153+00:00",{"id":88,"slug":89,"title":90,"cover_image":91,"image_url":91,"created_at":92,"category":31},"b3305057-451d-48e4-9fb9-69215f7effad","why-ibm-bob-right-kind-ai-coding-assistant-zh","為什麼 IBM 的 Bob 才是對的 AI 寫碼助手","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778664653510-64hc.png","2026-05-13T09:30:21.881547+00:00",[94,99,104,109,114,119,124,129,134,139],{"id":95,"slug":96,"title":97,"created_at":98},"de769291-4574-4c46-a76d-772bd99e6ec9","googles-biggest-gemini-launches-in-2026-zh","Google 2026 最大 Gemini 盤點","2026-03-26T07:26:39.21072+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"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":110,"slug":111,"title":112,"created_at":113},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"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":120,"slug":121,"title":122,"created_at":123},"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":125,"slug":126,"title":127,"created_at":128},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":130,"slug":131,"title":132,"created_at":133},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":135,"slug":136,"title":137,"created_at":138},"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":140,"slug":141,"title":142,"created_at":143},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00"]