前言¶
在 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 限制保证了安全性。