dsh-trio
Provides tools for interacting with GitHub's API, enabling AI agents to manage repositories, issues, pull requests, CI workflows, and webhook-driven automated reviews and issue fixing.
Provides tools for interacting with GitLab's API, enabling project, issue, and merge request management, including inline MR comments and webhook-automated MR reviews.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dsh-trioOpen my GitHub PRs and show me the ones awaiting review"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🐋 dsh-trio — DeepSeek Harness 全家桶
一条命令装三个超能力:浏览器自动化 + MCP Server + GitHub 集成。
dsh plugin --profile web add dsh-trio模块 | 做什么 | 端点/工具 |
🧭 浏览器自动化 | 多配置文件(工作/个人隔离)+ 多标签 + 下载/上传 + Cookie 持久化 + 表单填充与回放,人可旁观实时画面 |
|
🔌 MCP Server | 会话/agent 反向暴露,长任务流式输出 + 进度,resources,OAuth 2.0 鉴权 |
|
🐙 GitHub 集成 | issue/PR 全流程 + webhook 自动评审(去重)+ issue 自动修复闭环 + 事件看板 |
|
🦊 GitLab 集成 | 项目/issue/MR(含行内评论)+ webhook 自动 MR 评审 |
|
🎛️ 控制台 |
|
|
零构建、零配置依赖:src/ 直接是发布产物,不依赖任何 @deepseek-ai 包(版本兼容性最大化),唯一第三方依赖是 playwright-core(复用你系统里已装的 Edge/Chrome,不用下载 Chromium)。
安装
# 1. 安装(会自动通过 pnpm 链接到你的 web profile)
dsh plugin --profile web add dsh-trio
# 2. 重启 dsh
dsh web不需要某个模块?在 $DSH_HOME/profiles/web/cordis.patch.yml 里删掉对应行
(trio-browser / trio-mcp / trio-github / trio-gitlab / trio-console)即可,或给对应行加 config: { enabled: false }。
Related MCP server: VegaMCP
🧭 浏览器自动化
给 agent 一个共享浏览器会话(多标签页,默认 headless;channel: auto 自动探测
msedge → chrome → chromium,也可 executablePath 指定):
工具 | 说明 |
| 打开 URL |
| 标签管理:list / new / switch / close(按 id 或 index) |
| 读取页面文本/链接/输入框(纯文本模型"看"网页的核心) |
| 可交互元素结构化清单(input/button/select/链接 + 现成 CSS 选择器) |
| 点击 / 输入(可清空、可回车提交)/ 按键 |
| 批量填充表单(selector 或 label 定位,可选回车提交) |
| 页面内执行 JS 表达式或语句 |
| 截图存到 |
| 保存页面触发的下载到 |
| 上传本地文件到页面 |
| Cookie 管理:list(可显示值)/ set / clear,处理登录态 |
| 其余控制 |
| 多浏览器配置:list / use(work、personal…各自独立会话与登录态) |
| 表单保存与回放:保存填充记录, |
多配置文件:config.profiles 声明命名配置,每个可带独立的 userDataDir
(登录态隔离)——工作账号与个人账号互不干扰:
- id: trio-browser
name: dsh-trio/browser
config:
profiles:
work: { userDataDir: C:/path/work-profile, channel: msedge }
personal: { userDataDir: C:/path/personal-profile }登录态持久化:配置 userDataDir 后,浏览器使用独立的用户数据目录
(launchPersistentContext),Cookie 与 localStorage 跨 DSH 重启保留——登录一次,
重启后 agent 还是登录状态:
- id: trio-browser
name: dsh-trio/browser
config:
userDataDir: C:/path/to/dsh-trio-profile # 留空 = 临时会话(默认)| browser_wait / browser_back / browser_reload / browser_status / browser_close | 其余控制 |
实时画面:浏览器打开时访问 http://127.0.0.1:3080/trio/browser,每 2 秒自动
刷新截图,看着 agent 操作你的浏览器。
# 换个端口的话就是 http://127.0.0.1:<你 dsh web 的端口>/trio/browser首次调用浏览器工具时会自动启动浏览器;启动失败会提示你安装 Chromium (
npx playwright install chromium)或配置executablePath。
浏览器配置
# $DSH_HOME/profiles/web/cordis.patch.yml
- id: trio-browser
name: dsh-trio/browser
config:
channel: auto # auto | chrome | msedge | chromium | ""(playwright 默认)
executablePath: "" # 显式指定浏览器可执行文件(优先于 channel)
headless: true
screenshotDir: .dsh-trio/screenshots
downloadDir: .dsh-trio/downloads
liveViewPath: /trio/browser
maxTextChars: 20000
maxLinks: 50
timeoutMs: 30000🔌 MCP Server
把 DSH 变成一台 MCP 服务器。任何支持 Streamable HTTP 的 MCP 客户端都能接:
// Claude Desktop / Cursor / Cline 等客户端的 mcpServers 配置
{
"mcpServers": {
"dsh": {
"url": "http://127.0.0.1:3080/trio/mcp"
}
}
}暴露的工具:
工具 | 说明 |
| 列出本机 DSH 会话(标题/目录/时间) |
| 读取会话事件摘要(消息、工具调用、结束原因) |
| 全文搜索会话 |
| 用 DSH 模型跑一个一次性 agent,返回最终文本;支持 |
| 列出当前运行中的 agent(会话 id + 状态) |
Resources 支持:resources/list 暴露 dsh://sessions/<id> 会话资源,
resources/read 读取完整事件摘要(JSON)。tools/list 响应中同时声明资源目录。
OAuth 2.0 鉴权(可选,替代静态 token):启用后提供
client_credentials token 端点(/trio/mcp/oauth/token)与 RFC 8414
授权服务器元数据(/.well-known/oauth-authorization-server):
- id: trio-mcp
name: dsh-trio/mcp
config:
oauthEnabled: true
oauthClientIdEnv: MCP_CLIENT_ID # 客户端凭据从环境变量读取
oauthClientSecretEnv: MCP_CLIENT_SECRET
oauthTokenTtlMs: 3600000客户端流程:POST token 端点(grant_type=client_credentials)→ 拿
access_token → 所有 MCP 请求带 Authorization: Bearer <token>。
静态 authTokenEnv 与 OAuth 可并存;均未配置时不鉴权。
安全:设置 authTokenEnv(如 MCP_TOKEN)后,所有请求要求
Authorization: Bearer <token>。协议:零依赖手写实现 MCP
Streamable HTTP(2025-03-26),支持 initialize / ping / tools/list /
tools/call / resources/list / resources/read / SSE 响应 / GET 事件流 /
DELETE 会话 / 服务器主动进度与流式输出通知。
MCP 配置
- id: trio-mcp
name: dsh-trio/mcp
config:
path: /trio/mcp
authTokenEnv: "" # 例如 MCP_TOKEN;留空不鉴权
runAgentTimeoutMs: 300000
runAgentMaxOutputChars: 120000
listSessionsLimit: 50🐙 GitHub 集成
凭证:环境变量或 DSH credentials 里的 GITHUB_TOKEN(细粒度 token 只需
repo 权限)。
工具 | 说明 |
| 仓库元信息 |
| issue 三板斧 |
| 更新 issue/PR 状态、标签、指派、标题、正文 |
| 仓库内 issue/PR 搜索(支持 GitHub 搜索语法) |
| PR 列表 / 详情(可带文件 diff) |
| 评审/评论/合并 |
| diff 行内评论(path + line) |
| CI 状态 |
Webhook 评审去重:同一 PR 的同一 head commit 只评审一次(reviewDedupe,
默认开启),synchronize 推送新 commit 才会触发新一轮评审。
事件看板:控制台 /trio 的 GitHub 卡片下方实时展示最近 webhook 事件
(时间/类型/仓库/编号/处理结果),数据源 GET /trio/github/events。
Webhook 自动评审
在 GitHub 仓库 Settings → Webhooks 添加:
Payload URL:
http://<你的机器>:3080/trio/github/webhookContent type:
application/jsonSecret:与
webhookSecretEnv指向的环境变量一致(如GITHUB_WEBHOOK_SECRET)Events:勾选 Pull requests
评审模型:默认用 DSH 的默认模型;也可指定:
- id: trio-github
name: dsh-trio/github
config:
tokenEnv: GITHUB_TOKEN
apiBase: https://api.github.com
webhookPath: /trio/github/webhook
webhookSecretEnv: GITHUB_WEBHOOK_SECRET
reviewModel:
provider: deepseek
model: deepseek-chat
reviewMaxDiffChars: 60000
autoReviewEvents: [opened, synchronize, reopened]此后每个非 draft 的 PR 打开/更新时,DSH 会拉取 diff → 调用评审模型 →
以 COMMENT 评审提交到 PR。
Issue 自动修复闭环(webhook → agent 修 → 自动开 PR)
配置 autoFixRepos(仓库 → 本地路径)后,新 issue 会自动触发一个 DSH agent
在本地仓库里修复:fetch → 建 fix/issue-N 分支 → 修复 + 测试 → push →
自动开 PR(Fix #N: 标题,正文 Closes #N)。可选 autoFixLabels
只处理带指定标签的 issue(如 bug):
- id: trio-github
name: dsh-trio/github
config:
...
autoFixRepos:
"owner/repo": C:/path/to/local/repo
autoFixLabels: [bug, priority-high] # 空数组 = 所有 issue前提:仓库 webhook 同时勾选 Issues 事件;本地仓库路径存在且可写; agent 需要能 push(配置好 git 凭据);同一时间只跑一个修复任务。
公网部署提示:webhook 需要能从 GitHub 访问到你的机器,可配合 frp/ngrok/ Cloudflare Tunnel;不要暴露到公网时务必配置 webhook secret。
🦊 GitLab 集成
凭证:环境变量或 DSH credentials 里的 GITLAB_TOKEN(PRIVATE-TOKEN 方式)。
工具 | 说明 |
| 项目信息(星标/fork/issues/默认分支) |
| issue 三件套 |
| MR 列表(含来源/目标分支)/ 创建 MR |
| MR diff 行内评论(path + new_line) |
Webhook 自动 MR 评审:仓库 Settings → Webhooks 添加
http://<机器>:3080/trio/gitlab/webhook(Secret Token 与
GITLAB_WEBHOOK_SECRET 一致,事件勾选 Merge Request)。MR 打开/更新时自动
评审并以 note 发布(带 🤖 前缀)。reviewModel 配置与 GitHub 模块相同。
自建 GitLab 实例:改 apiBase(如 https://gitlab.example.com/api/v4)。
🎛️ 控制台
浏览器打开 http://127.0.0.1:3080/trio:
浏览器卡:开/关状态、标签数、当前 URL,一键跳转实时画面
MCP 卡:端点协议版本、工具数量、一键"测试连接"
GitHub 卡:webhook 端点在线状态 + 配置指引
页面每 5 秒自动刷新,样式与 banner 同源的 anthropic.com 人文简朴风。
开发与测试
npm install # 安装 playwright-core(本地测试用)
npm test # 冒烟测试(模块加载 + 工具表 + HMAC 签名)
node test/browser-launch.mjs # 验证本机浏览器通道可启动本地热加载调试(无需发布):
dsh --profile web --patch ./e2e.patch.yml --port 3111发布
npm publish # 纯 JS 无构建步骤,lib 即源码,无需 prepare 脚本/allowBuilds发布后记得:
给仓库打
dsh-plugintopic;给 awesome-dsh-plugin 提 PR 加入精选列表。
路线图
浏览器:多标签页、下载、Cookie 登录态、表单自动填充 ✅(0.2.0)
MCP:
dsh_run_agent流式进度通知 ✅(0.2.0)GitHub:PR 行内评论、issue 更新与搜索 ✅(0.2.0)
/trio控制台 ✅(0.2.0)浏览器:登录态持久化(userDataDir)、
browser_upload文件上传 ✅(0.3.0)MCP:
resources/支持、dsh_run_agent模型覆盖参数 ✅(0.3.0)GitHub:issue 自动修复闭环(webhook → 子 agent 修 → 开 PR)✅(0.3.0)
GitLab 支持 ✅(0.3.0)
浏览器:多配置文件(工作/个人)、表单保存回放 ✅(0.4.0)
MCP:OAuth 鉴权(client_credentials + RFC 8414)、流式输出推送 ✅(0.4.0)
GitHub:webhook 事件看板(控制台内)、评审缓存去重 ✅(0.4.0)
GitLab:MR 行内评论、webhook 评审 ✅(0.4.0)
浏览器:表单值加密存储(敏感字段)、录制回放(动作序列)
MCP:
dsh_run_agent可取消(progress 上报 + cancel)、会话续跑GitHub:webhook 事件持久化(重启保留)、批处理评审队列
GitLab:issue 自动修复闭环(镜像 GitHub 方案)
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for DeepSeek AI models (Chat + Reasoner). Supports multi-turn sessions, model fallback with circuit breaker, function calling, thinking mode, JSON output, multimodal input, and cost tracking.32,81017MIT
- AlicenseCqualityDmaintenanceA production-grade MCP server providing an autonomous AI agent swarm, persistent semantic memory, browser automation, multi-model reasoning, and 78+ tools for AI-first testing and development.63MIT
- AlicenseAqualityCmaintenanceMCP server that lets AI agents discover, inspect, install, and run DeepSeek Harness plugins via MCP, bridging the gap between the MCP protocol and Cordis-based plugin bundles.15MIT
- FlicenseAqualityCmaintenanceMCP server that packages DeepSeek agents as callable tools, offering a bare model for quick Q&A and a full agent capable of executing real coding and file-modifying tasks in a workspace.2
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/huey1in/trio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server