// 設定檔
opencode.json
在專案的 opencode.json 中把伺服器加到 mcp 底下;若要所有專案都用,就加到 ~/.config/opencode/opencode.json。
給 OpenCode 使用者
OpenCode 從 AGENTS.md 讀取工作方式,其餘一切都呼叫 MCP 伺服器。Maguyva 是一個遠端 MCP 伺服器,為 OpenCode 提供一張可查詢的程式碼庫地圖,附檔案路徑與行號。
Free 方案:3 個儲存庫, 最多索引 5 萬行儲存庫程式碼,免信用卡。
在 mcp 底下加一筆遠端項目。本機什麼都不用跑。 四項 OpenCode 專屬事實。
// 設定檔
在專案的 opencode.json 中把伺服器加到 mcp 底下;若要所有專案都用,就加到 ~/.config/opencode/opencode.json。
// 傳輸方式
OpenCode 透過 HTTP 連到 Maguyva 的端點。本機什麼都不執行,也不需要 Node.js。
// 金鑰
OpenCode 會替換設定中的環境變數,所以標頭寫成 Bearer {env:MAGUYVA_API_KEY},金鑰不會出現在你提交的檔案裡。
// 脈絡預算
每個 MCP 伺服器都會往脈絡裡加入工具定義。OpenCode 可以用 "maguyva*": false 這類 glob 在全域關閉某個伺服器的工具,再只為需要的代理重新開啟。
> /init
# 掃描程式碼庫並寫出 AGENTS.mdOpenCode 會讀取專案根目錄的 AGENTS.md,以及存放個人規則的 ~/.config/opencode/AGENTS.md。沒有 AGENTS.md 時,會退回讀取 CLAUDE.md。適合寫進去的有:
/init 當下的掃描是一份摘要,不是索引。它不會告訴 OpenCode 誰在呼叫昨天新增的函式。
OpenCode 靠 grep 和耐心補上的三個缺口。
AGENTS.md 可以點出重要的套件。它沒辦法列出每個符號和呼叫點,也不該嘗試。
文字比對分不清真正的呼叫、註解、測試替身,以及另一個類別上的同名方法。
AGENTS.md 在寫成那天是對的。程式碼一直在變,檔案只有在有人想起來時才會更新。
在 mcp 底下加一筆項目,OpenCode 就能獲得:
AGENTS.md 告訴 OpenCode 怎麼工作。
Maguyva 給 OpenCode 可以依據的東西。
在同一個終端機裡問地圖。
// workflow 01
opencode> 把 OrderStatus 重新命名為 FulfillmentStatus dependency_search("OrderStatus", dependents) 分布在 8 個套件中的 23 處參照 structural_search(switch_statement, "OrderStatus") 4 個窮舉式 switch → OpenCode 編輯完整清單,switch 也包含在內。 [exit 0]
正是這些窮舉式 switch,文字搜尋會漏掉,編譯器則很晚才抓到。
// workflow 02
opencode> FEATURE_BULK_EXPORT 在哪裡被讀取? text_pattern_search("FEATURE_BULK_EXPORT") src/config/flags.ts:17 src/export/bulk.ts:5 docs/flags.md:40 ← 只有文件 → 兩條程式碼路徑,一份過時的文件。 [exit 0]
精確比對連同路徑一起回傳,OpenCode 在編輯之前就能分清哪個是程式碼、哪個是文件。
三個步驟。Free 方案:3 個儲存庫, 最多索引 5 萬行儲存庫程式碼,免信用卡。
// step 01
挑一個你已經熟悉的,這樣你才能評分答案。
// step 02
opencode.json
{
"mcp": {
"maguyva": {
"type": "remote",
"url": "https://maguyva.tools/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:MAGUYVA_API_KEY}"
}
}
}
} // step 03
在啟動 OpenCode 的 shell 中設定 MAGUYVA_API_KEY。opencode mcp list 會列出每個已設定的伺服器;接著問一個你已經知道答案的問題。