iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
AI Engineering

[ opencode ] 開源 AI coding agent系列 第 14

14-opencode | MCP servers:接上外部工具與資料源

  • 分享至 

  • xImage
  •  

! 本篇文章將會介紹 MCP servers,讓你的 AI 讀文件、查 issue、搜 code 範例,全部在 terminal 裡發生 :D

TL;DR: https://dev.benben.me/slides/s/ironman-14-mcp-servers

本篇目標

讀完這篇你會學到:

  • MCP 是什麼、解決什麼問題
  • 設定 local 與 remote server(含 OAuth)
  • 管理與控制 MCP 工具的 context 成本

MCP 是什麼?

MCP(Model Context Protocol)是一個開放協定,讓 AI application 以標準方式連接外部工具與資料源。講白話:

AI agent 的能力 = 內建 tools + 外掛 tools。MCP 就是那個外掛規格。

裝了一個 MCP server,它提供的工具會自動出現在 AI 的工具箱裡,跟 read、bash 這些內建工具平起平坐。你在 prompt 裡說「用 context7 查一下文件」,AI 就會去呼叫。

設定:兩種 server

全部寫在 opencode.jsonmcp 區塊。先給懶人法:

opencode mcp add

互動式精靈會帶你選 local 或 remote、填指令或 URL。不過懂原理還是比較踏實:

Local server:跑在本機的 process

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mcp_everything": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-everything"]
    }
  }
}

command 是啟動指令(陣列),environment 可帶環境變數,timeout 預設 5000ms。

Remote server:直接連線上的服務

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sentry": {
      "type": "remote",
      "url": "https://mcp.sentry.dev/mcp",
      "headers": {
        "Authorization": "Bearer {env:MY_API_KEY}"
      }
    }
  }
}

Remote server 需要授權的話,opencode 會自動處理 OAuth 流程(支援 RFC 7591 動態註冊):偵測到 401 → 開瀏覽器給你授權 → token 存好下次直接用。手動觸發或管理:

opencode mcp auth my-server   # 手動授權
opencode mcp list             # 列出所有 server 與狀態
opencode mcp logout my-server # 拿掉憑證
opencode mcp debug my-server  # 連不上時診斷

三個官方示範的實用 server

Context7:查最新文件

"context7": {
  "type": "remote",
  "url": "https://mcp.context7.com/mcp"
}

之後在 prompt 加一句 use context7,AI 就會透過它查即時文件。也可免費註冊拿 API key 提高限流。

Grep by Vercel:搜 GitHub 上的 code 範例

"gh_grep": {
  "type": "remote",
  "url": "https://mcp.grep.app"
}

「這個框架的正確寫法到底是什麼?」——讓 AI 直接搜幾千萬個 GitHub repo 找示範。

Sentry:查線上錯誤

設定 https://mcp.sentry.dev/mcpopencode mcp auth sentry 授權後,直接問:

Show me the latest unresolved issues in my project. use sentry

讓 AI 「記得」用 MCP

MCP 工具這麼多,AI 不一定每次都想得起來用。兩招:

  1. Prompt 裡明講:加一句 use context7 / use the gh_grep tool

  2. 寫進 AGENTS.md

    需要查文件時,使用 context7 tools。
    不確定某框架用法時,用 gh_grep 搜尋 GitHub 上的範例。
    

第二招讓「查權威資料源」變成 AI 的常識——本系列寫作時查官方文件,靠的就是這套。

成本警語:MCP 很吃 context

官方文件特別警告:每個 MCP server 的工具清單都會常駐 context。裝太多,context 還沒開工就滿一半,GitHub MCP 這種大型 server 尤其肥。

控制手段:

{
  "tools": {
    "my-mcp*": false
  },
  "agent": {
    "docs-agent": {
      "tools": {"context7*": true}
    }
  }
}

全域關掉,只給特定 agent 開——工具跟著角色走,context 花在刀口上。MCP 工名的命名規則是 伺服器名_工具名,所以 "my-mcp*" 一次管整台 server。

常見問題

Q:我要的工具沒有現成的 MCP server 怎麼辦?
A:兩條路——Day 16 的 custom tools 可以自己寫(簡單情境更快),或照 MCP 規格包一個 server(跨工具共用時值得)。

Q:enabled: falsetools 關閉有什麼差?
A:enabled: false 是整台 server 不啟動(process 都不開);tools: false 是啟動但工具不進 AI 的工具箱。暫時停用用前者,精細調配用後者。

Q:怎麼確認 server 連上了?
A:opencode mcp list 看狀態,或在 TUI 問 AI「你現在有哪些工具」。

偷偷說筆者目前也沒裝什麼 MCP ,因為現在模型都越來越聰明,後面的 Skills 可以 Cover 大多的使用情境。

小結

  • MCP 把外部工具接進 AI 工具箱;local 用 command、remote 用 url
  • OAuth 自動處理,opencode mcp auth 手動管理
  • 實用三件套:Context7 查文件、grep.app 搜範例、Sentry 查錯誤
  • 工具清單吃 context——全域關、按 agent 開

明日預告

Day 15:Agent Skills——另一種擴充方式,讓 agent「學會」新技能而不是多一雙手。


有任何疑問但沒有 iT 邦幫忙帳號,或是想匿名提問?
歡迎到 https://dev.benben.me/q/P3C5U6 提問或加油打氣,沒意外的話會在完賽之後一起回答 :D


上一篇
13-opencode | Custom commands:把常用流程指令化
下一篇
15-opencode | Agent Skills:教 agent 新技能
系列文
[ opencode ] 開源 AI coding agent24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言