前言¶
在 DeepSeek Harness (DSH) 的生態中,連接外部服務通常需要命令行操作或手動處理認證令牌。dsh-notion-oauth-ui 插件提供了一個基於 GUI 的解決方案,利用 OAuth 2.0 和 PKCE 協議,通過官方 Notion MCP 服務器實現無感登錄。
插件定位¶
這是一個連接 Notion 的 GUI 插件。它允許用戶在 DSH 界面中直接通過瀏覽器完成 OAuth 2.0 授權,無需手動複製 Integration Token,也無需在終端中維護憑據。頁面、數據庫和評論通過官方 Notion MCP 服務器進行訪問。
核心功能¶
- GUI 登錄:在 DSH 設置頁面點擊“Login”按鈕即可完成認證,無需終端交互。
- OAuth 2.0 + PKCE:使用動態客戶端註冊(RFC 7591)和 PKCE(S256),無需配置 client_id/secret。
- 靜默刷新:訪問令牌會在過期前自動刷新,刷新令牌支持原子輪換。
- 標準工具:通過官方 MCP 服務器提供
mcp__notion__*系列工具,用於搜索、讀寫頁面和數據庫。 - CLI 回退:支持在無 GUI 環境或純 CLI profile 下使用
dsh notion login命令。
安裝與配置¶
安裝該插件需要使用 DSH 的包管理器。
dsh plugin --profile <name> add dsh-notion-oauth-ui
安裝完成後,需要在設置中配置相關參數,默認值如下:
| Key | Default | Meaning |
|---|---|---|
mcpUrl |
https://mcp.notion.com/mcp |
Notion MCP 服務器地址 |
port |
53007 |
本地 OAuth 回調端口 (127.0.0.1) |
refreshLeadMs |
300000 (5 min) |
提前多少毫秒刷新即將過期的令牌 |
refreshRetryMs |
60000 (1 min) |
刷新失敗時的重試間隔 |
使用方式¶
GUI 流程¶
- 打開 DSH,進入側邊欄的 Plugins,點擊 Add plugin。
- 輸入
dsh-notion-oauth-ui並點擊 Install。 - 打開 Settings(齒輪圖標或
Ctrl + ,),在插件列表中找到 Notion。 - 點擊 Login 按鈕,瀏覽器將打開 Notion 的授權頁面。
- 選擇工作區並勾選“我識別並信任此 URL”,點擊 Continue。
- 授權成功後,頁面顯示 Connected,
mcp__notion__*工具即可使用。
CLI 流程¶
對於無 GUI 或純 CLI profile,流程相同,只需在終端執行:
dsh plugin --profile <name> add dsh-notion-oauth-ui
dsh notion login
安全與架構¶
該插件在設計上側重於安全性:
- Loopback-only 控制路由:設置頁面的 API 路由(
/api/dsh-notion-oauth-ui/{status,login,logout})僅接受來自127.0.0.1的請求,並嚴格校驗 HTTP 方法和 Host 頭,防止跨站請求攻擊。 - OAuth 強化:採用授權碼模式 + PKCE(S256),每次授權流程攜帶唯一的 state 參數,並設置 10 分鐘的回調截止時間,防止惡意回調中斷真實授權。
- 傳輸安全:強制要求
mcpUrl必須爲https://協議,防止中間人攻擊。 - 令牌靜止存儲:訪問令牌和刷新令牌存儲在 DSH 的憑據服務中(記錄名爲
NOTION_OAUTH)。這些令牌僅在 DSH 進程內部可見,不會暴露給瀏覽器或寫入日誌。
適用場景¶
該插件適合需要頻繁操作 Notion 數據的開發者或用戶,特別是習慣於 GUI 操作而非命令行輸入的場景。
注意:DSH 插件與主進程運行在同一用戶權限下。插件通過 DSH 憑據服務存儲敏感信息,任何擁有憑據訪問權限的插件都可以讀取(包括 NOTION_OAUTH 和 DEEPSEEK_API_KEY),因此請確保你的系統環境安全。
結語¶
dsh-notion-oauth-ui 通過官方 MCP 標準和 OAuth 2.0 協議,簡化了 Notion 與 DSH 的集成流程。它將繁瑣的令牌管理自動化,同時通過嚴格的本地路由和 HTTPS 限制保證了安全性。