前言¶
在 dsh agent 中讀取或寫入 Notion 時,常見的問題不只是能不能調用工具,還包括 OAuth 授權、token 刷新、本地回調、憑據存儲和失效處理。
dsh-notion-mcp 是一個 DeepSeek Harness(DSH)插件,它通過官方 Notion MCP 服務器,用 OAuth 2.0(授權碼 + PKCE)把 dsh 連接到 Notion。完成一次性瀏覽器授權後,Notion 搜索、頁面、數據庫、評論等工具會以 mcp__notion__* 的形式掛載給 dsh agent。
下面介紹它的定位、功能、安裝方式、授權流程和注意事項。
這是什麼¶
dsh-notion-mcp 是一個 DSH 插件,用於把 dsh 連接到 Notion。
它使用官方 Notion MCP 服務器,並通過 OAuth 2.0 授權碼 + PKCE 完成瀏覽器授權。插件負責處理客戶端註冊、token 換取、token 刷新和憑據存儲,最終讓 dsh agent 直接調用 mcp__notion__* 工具。
許可證爲 MIT。GitHub 倉庫地址爲:
https://github.com/mingzeng21/dsh-notion
核心功能¶
dsh-notion-mcp 提供以下已覈實能力:
- 通過官方 Notion MCP 服務器把
dsh連接到 Notion。 - 使用 OAuth 2.0 授權碼 + PKCE 完成一次性瀏覽器授權。
- 運行時動態客戶端註冊(RFC 7591),無需提供
client_id或密鑰。 - access token 到期前自動刷新,refresh token 原子落盤。
- Notion 搜索、頁面、數據庫、評論等工具以
mcp__notion__*掛載給 dsh agent。 - token 存在 dsh 的憑據層,不進入倉庫。
- refresh token 出現
invalid_grant時清掉並停止重試。
環境要求¶
運行前需要確認 DSH 和 Node.js 版本:
- DeepSeek Harness(
dsh)已驗證兼容以下版本: v0.1.0-rc.8v0.1.1-rc.1v0.1.1-rc.2v0.1.2-alpha.1- Node.js 要求:
^22.19.0或>=24.0.0。 - Node 23 不在支持範圍內。
安裝¶
安裝命令如下:
dsh plugin --profile web add dsh-notion-mcp
安裝命令中的 --profile 用於指定安裝插件的 profile。如果你要在最小 profile 中運行 notion 命令,也可以在該 profile 中安裝:
dsh plugin --profile notion add dsh-notion-mcp
注意:notion 命令需要在最小 profile 裏運行;web 等 UI app 不會把 notion 轉發給插件。
授權¶
授權在最小 profile 中執行。下面以 notion profile 爲例:
dsh --profile notion notion login
執行後,dsh notion login 會打印授權 URL,並在 127.0.0.1:53007 等待回調。
在瀏覽器中打開打印出的授權 URL,批准後 Notion 會重定向到:
http://127.0.0.1:53007/callback
授權完成後,Notion 工具會以 mcp__notion__* 形式可用。
本地 OAuth 回調端口爲 53007,監聽地址爲 127.0.0.1。
配置¶
默認配置項如下:
mcpUrl: https://mcp.notion.com/mcp
mcpUrl 是 Notion MCP 服務器 URL。
安全與注意¶
使用前建議先檢查倉庫源碼和許可證。插件以當前 dsh 進程權限運行,安裝前確認你信任該倉庫、依賴關係和你的運行環境。
已覈實的安全相關行爲包括:
- token 存在 dsh 的憑據層,不進入倉庫。
- 倉庫不包含任何密鑰。
- 運行時動態客戶端註冊,無需提供
client_id或密鑰。 - refresh token 原子落盤。
- Notion 每次刷新都會輪換 refresh token。
- 若 refresh token 出現
invalid_grant,插件會清掉並停止重試,需要重新執行:
dsh notion login
卸載¶
卸載命令如下:
dsh plugin --profile web remove dsh-notion-mcp
倉庫¶
GitHub 倉庫地址:
https://github.com/mingzeng21/dsh-notion
許可證:MIT。