Skip to content

集成:工具、钩子与事件入口 ​

MCP 在作用域中扩展工具与资源,命令钩子参与已定义的生命周期位置,Webhook 经认证与可信规则创建新会话。三类接入共享常规执行体系,保留独立的生命周期和可靠性责任。

三类独立外部接入关系

箭头表示标注的调用或依赖关系;点击组件定位正文。完整关系见下方文字说明。

文字关系说明与章节链接

Webhook 来源适配器 →(已认证事件)→ 事件运行时与可信规则;事件运行时与可信规则 →(规则可创建会话)→ Session/Agent;Session/Agent →(生命周期位置)→ 命令钩子适配器;作用域 MCP 客户端 →(连接/发现/调用)→ 外部 MCP 服务;作用域 MCP 客户端 →(注册资源提供者)→ 共享资源服务;作用域 MCP 客户端 →(注册外部工具)→ 常规工具体系;共享资源服务 →(注册资源工具)→ 常规工具体系;Session/Agent →(按需调用)→ 常规工具体系。

Webhook 来源适配器 · 事件运行时与可信规则 · Session/Agent · 外部 MCP 服务 · 作用域 MCP 客户端 · 命令钩子适配器 · 共享资源服务 · 常规工具体系

作用域客户端管理外部工具 ​

dsh-mcp-client 按配置为每个服务创建客户端,在自己的作用域发布外部工具;它支持 SDK stdio 与 Streamable HTTP,不依赖一个全局共享 ctx.mcp。

相同作用域内重复 serverName 会失败,工具名也必须能区分来源。外部服务连接、发现结果和工具注册都由插件生命周期拥有,卸载时撤销工具并关闭连接,不能留下仍可见但已断开连接的工具入口。

共享资源服务注册读取能力 ​

MCP 发现成功后,客户端将校验后的工具定义交给工具体系;资源由 dsh-mcp-resources 提供统一入口,模型需要指明服务并按需读取。

// 按作用域注册服务资源提供者,生命周期内启用共享资源工具。
register(server: string, provider: McpResourceProvider): () => void

// 使用明确服务名和列举或展开得到的 URI,按需读取外部资源。
{ server, uri }

服务 instructions 作为带来源的字面材料处理,长度受限且只在成功发现后发布。刷新失败时保留先前有效代次,而不是用不完整的新目录覆盖。外部图像结果走附件能力,避免临时编码内容脱离统一保存与完整性要求。

命令钩子适配生命周期 ​

dsh-hook-protocol 给出共享钩子协议,hooks-claude-code 和 hooks-codex 适配已有配置,在会话、提示、工具或停止等位置运行命令。

// 兼容钩子在工具执行前运行命令,可阻止工具或要求审批。
PreToolUse

钩子可以提供上下文、阻止动作并给模型可见说明,或要求继续执行;这些效果由适配器映射到 DSH 的扩展位置。仓库只支持对应生态的子集,不能把读取了对方配置等同于完整实现其全部行为。钩子也仍受自己的进程与取消管理约束。

认证事件经规则创建根会话 ​

dsh-webhook 接收经认证的提供者事件,webhook-github 负责对应来源,可信规则将事件映射为 null 或某个 Workspace 中的新根 Session 请求。

// 注册可信程序规则,卸载时中止并等待该规则的活动回调。
register<K extends string>(rule: WebhookRule<K>): () => Promise<void>

// 将已认证事件分派给匹配规则,回调结算前即返回。
dispatch<K extends string>(delivery: VerifiedWebhookDelivery<K>): void

规则决定是否启动任务,业务执行随后进入常规 Agent 路径。固定版本这一入口是进程内 fire-and-forget,没有投递数据库、队列、重试、去重或完成状态存储。因此接收端重启、重复外部投递与下游任务失败,均不具备持久消息系统的恢复保证。

辅助示例

用户让模型读取外部设计资源时,MCP 资源工具根据服务名发起读取,返回内容再进入正常工具结果路径。另一次 GitHub 事件则由 webhook 规则决定是否创建检查会话。前者是现有任务中的能力调用,后者是创建任务的入口;一个成功连接不意味着另一个具备自动重试。

设计取舍 ​

沿工具、生命周期钩子和事件入口分别接入外部系统,可以保留来源清楚的行为;代价是兼容面与可靠性必须单独说明。进程内 Webhook 实现轻量,但需要持久投递、幂等去重或完成追踪的部署需要另外实现这些能力。

相关包与插件
资料来源与核验范围

本章依据固定版本的官方文档整理,设计取舍根据所述机制分析;核验范围为文档,不包含运行实测。

图示
100%双指缩放 · 滑动查看