前言¶
自托管 TREK 已提供 MCP 服务,行程、地点、预算等能力都可以通过 Model Context Protocol 暴露给智能体。若在 DeepSeek Harness(DSH)里直接手写 MCP 端点、OAuth 机器客户端凭据,并自行维护短期 token 与长时间空闲后的会话,往往还要动 cordis.patch.yml。tyrantblue/dsh-trek-mcp 以 bundle 形式把 TREK 接到 DSH:在 Settings → TREK MCP 填端点与机器客户端 id/secret,由插件负责 token 续期与 MCP 会话恢复;密钥走 harness 配置通道,不回到浏览器与模型侧。
这是什么¶
dsh-trek-mcp 是社区维护的 DSH 插件(作者 tyrantblue,MIT 许可证,当前 package 版本 1.0.0),分类属于联网工具类能力:把自托管 TREK 的 MCP 工具以 mcp__trek__* 等形式交给 Web 场景下的智能体使用。它依赖 DSH >=0.2.2-rc.1 且 <0.3.0 的 Web profile,并要求 TREK 实例已启用 MCP 插件(Admin → Addons),且已在 TREK 中创建 machine client(OAuth 2.1,无浏览器登录)。
核心功能¶
接好后,智能体可使用 TREK MCP 面上的工具与资源,例如 trips、days、places、tours、bookings、budgets、packing lists、collections、journeys 等(以 TREK 实际暴露为准)。
Settings 页。 Settings → TREK MCP 提供 MCP endpoint、Client ID、Client secret,以及可选 Token URL;支持 Test connection(用当前输入试拿 token,不保存)和 Save and reconnect(写入 harness profile patch 并重连 MCP)。
OAuth 与代理。 插件以 OAuth 2.1 client_credentials 自动获取短期 access token:在过期前约 5 分钟续期,遇 401 会刷新;token 仅保存在进程内存。本地 loopback Streamable-HTTP 代理(默认 127.0.0.1:17890)把协议处理留在自带的 @deepseek-ai/dsh-mcp-client,client secret 不进入模型上下文。
空闲会话恢复。 TREK 在约一小时无请求后会结束 MCP 会话(MCP_SESSION_TTL)。插件维护会话映射并在需要时透明地重新初始化,避免工具调用因 Session not found 失败。
bundle 通过 cordis.patch.yml 安装三行 Loader:trek-mcp-ui(浏览器侧设置页)、trek-mcp-broker(主机侧:token、设置 API、/api/trek-mcp/*、loopback 代理)、trek-mcp(指向 loopback 的 MCP 客户端)。
环境要求¶
- DeepSeek Harness 0.2.2-rc.1 或更新(0.2.x 线),Web profile。
- TREK 实例开启 MCP addon。
- 在 TREK Settings → Integrations → MCP Configuration → OAuth 2.1 Clients 新建客户端,勾选 Machine client (no browser login),按智能体需要授予 scope(如
trips:*、places:*、budget:*等),记下client_id与一次性显示的client_secret(形如trekcs_…)。
安装与启用¶
DSH 默认不带该插件索引,需从仓库 spec 安装。安装后 Web 页面需刷新一次,以便加载新的 Settings 页。
Web(推荐)。 打开 Plugins,使用下列 spec 之一:
github:tyrantblue/dsh-trek-mcp
或固定到 release:
git+https://github.com/tyrantblue/dsh-trek-mcp.git#v1.0.0
CLI。 安装到 profile 后,在 Plugins 页面打开 bundle:
dsh plugin --profile web add github:tyrantblue/dsh-trek-mcp
配置¶
打开 Settings → TREK MCP,字段含义如下:
| 字段 | 含义 |
|---|---|
| MCP endpoint | 本地 Docker 常为 http://127.0.0.1:3000/mcp;远程为 https://<your-trek>/mcp |
| Client ID | 机器客户端 UUID |
| Client secret | 仅写入;页面只显示是否已保存,留空则保留已存值 |
| Token URL | 可选;默认取 endpoint 源站 + /oauth/token |
先可用 Test connection 验证凭据,再用 Save and reconnect 持久化并重连;重连的几秒内 MCP 工具可能暂时不可用。设置保存走 harness 配置编辑器,bundle 重装后仍可保留。
trek-mcp-broker 还可通过 patch 配置(多数可由 Settings 填入),例如 endpoint、tokenUrl、clientId、clientSecret(或环境变量 TREK_MCP_CLIENT_SECRET)、listenPort(默认 17890,需与 trek-mcp 行 URL 一致)、scope 等。纯 HTTP 端点若 TREK 在反向代理后启用 FORCE_HTTPS,broker 会对 plain HTTP 附加 X-Forwarded-Proto: https,也可直接把 endpoint 指到公网 HTTPS URL。
典型用法¶
完成安装与 Save and reconnect 后,无需在对话里粘贴 secret:智能体通过 DSH 已挂载的 mcp__trek__* 工具查询或维护 TREK 中的行程数据(具体工具名与参数以 TREK MCP 文档为准)。TREK MCP 总览见 TREK wiki:MCP Overview。
若出现 TREK is not configured yet 或看不到 mcp__trek__* 工具,检查三项是否已在 Settings 中保存;token 401 多为 secret 错误或客户端非 machine 类型;400 多为 scope 不足;长时间空闲后工具消失时,一般会自动恢复,否则可再次保存设置触发重连。
适用场景与注意¶
适合: 已在或计划自托管 TREK,希望在 DSH Web 智能体里用 MCP 操作行程规划,且希望 OAuth 与 MCP 会话由插件统一处理、凭据不入模型侧的开发与自用场景。
注意: 插件以当前 DSH 进程权限运行;安装前请查看 GitHub 仓库 源码与 MIT 许可证。client secret 存放在 harness profile patch(模式 600),不回传浏览器、不记入模型;loopback 代理仅绑定 127.0.0.1,与本机可访问 profile 目录的信任边界相当。机器客户端代表创建它的 TREK 用户,权限限于所选 scope;撤销或轮换请在 TREK 侧删除/更新客户端,并在 Settings 中更新 secret。
DSH 社区插件目录独立于 DeepSeek / 幻方,本文介绍的是社区 bundle,非官方应用商店条目。
结尾¶
dsh-trek-mcp 把自托管 TREK 的 MCP 能力接到 DeepSeek Harness:设置页配置端点与机器客户端,自动 client_credentials token 与空闲会话恢复,密钥与协议代理留在 harness 侧。更多说明见 SkillHub 目录页与 GitHub:tyrantblue/dsh-trek-mcp。