Agent Build Log — Episode 016
今天,我把 DKS MCP 裡所有和 Jira 有關的功能都拔掉了。

原本的設計,是讓 DKS 可以在查 GitLab repo 相關時,附上 Jira ticket 來當輔助證明。
這樣 Agent 可以更加理解一個 feature 的來龍去脈。
但後來我發現,它有一個很嚴重的權限問題。
Jira 的 board、issue 和專案本身都有各自的存取權限。
如果 DKS MCP 使用自己的 Jira credential,替 user 查詢 Jira,那最後能看到哪些資料,取決於 DKS 使用的帳號,而不是正在使用 Agent 的那個人。
這代表,一個原本沒有權限查看某個 Jira board 的 stakeholder,可能透過 DKS 拿到超出自己權限範圍的 issue、需求背景,甚至其他相關資訊。
即使使用者只是問一個看起來很普通的問題:
「這個功能當初為什麼這樣做?」
DKS 也可能在背後查到使用者原本不應該看到的 Jira 內容,再把資訊整理進答案裡。
這是權限邊界設計錯了。
所以今天,我先把 DKS MCP 裡所有和 Jira 有關的 MCP 與查詢能力移除。
每個使用者都必須透過 Jira MCP 完成自己的 OAuth,使用自己的身分與權限查詢 Jira。
這樣 Jira 回傳的內容,才會和使用者原本在 Jira 裡能看到的範圍一致。
DKS 仍然負責 GitLab 相關的 repository、MR 和 commit 查詢。
當 Agent 需要 Jira 資訊時,則改由已完成使用者 OAuth 的 Jira MCP 處理。
兩邊仍然可以在 Agent 層整合,但不能再共用同一個 Jira 權限。
在有權限差異的系統裡,方便不能優先於存取控制。
