{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"yabolee-kkk-dsh-streaming-mcp-bridge","slug":"yabolee-kkk-dsh-streaming-mcp-bridge","rank":1532,"url":"https://github.com/yabolee-kkk/dsh-streaming-mcp-bridge","name":"yabolee-kkk/dsh-streaming-mcp-bridge","category":"remote","description":{"zh":"DeepSeek Harness 流式 MCP 桥接：将实时会话事件作为 MCP 进度输出，并提供 cc-connect/飞书 ACP 适配器。","en":"DeepSeek Harness streaming MCP bridge: live session events as MCP progress, plus ACP adapter for cc-connect/Feishu."},"stars":0,"starsCheckedAt":"2026-08-21","repository":{"owner":"yabolee-kkk","repo":"dsh-streaming-mcp-bridge","requestedRef":null,"subpath":""},"npm":"dsh-streaming-mcp-bridge","downloads":269,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-streaming-mcp-bridge","tarball":null,"added":"2026-08-19","page":"https://awesome-dsh-plugin.com/p/yabolee-kkk/dsh-streaming-mcp-bridge/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"yabolee-kkk-dsh-streaming-mcp-bridge","slug":"yabolee-kkk-dsh-streaming-mcp-bridge","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-21T13:17:37.768Z","scanStatus":"static-complete","verdict":"caution","score":84,"commit":"f6c96745cbc9b8fd1a376b20d090ce27c464806e","commitDate":"2026-08-19T13:22:27+08:00","artifactDigest":"sha256:d98628b46c31f0477ffc006649c192147277b0b72a1e80b22468ac5656e4b6d0","downloadUrl":"https://github.com/yabolee-kkk/dsh-streaming-mcp-bridge/archive/f6c96745cbc9b8fd1a376b20d090ce27c464806e.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-streaming-mcp-bridge","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-streaming-mcp-bridge","packageVersion":"0.1.1","bundle":{"patch":"./cordis.patch.yml"},"client":null,"lifecycleScripts":{},"peerDependencies":[]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-streaming-mcp-bridge","manifestName":"dsh-streaming-mcp-bridge","nameMatch":true,"npm":{"name":"dsh-streaming-mcp-bridge","latestVersion":"0.1.1","publishedAt":"2026-08-17T11:05:47.458Z","createdAt":"2026-08-17T10:57:22.380Z","versionCount":2,"maintainers":1,"repository":"git+https://github.com/yabolee-kkk/dsh-streaming-mcp-bridge.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"dsh-streaming-mcp-bridge","name":"dsh-streaming-mcp-bridge","path":"cordis.patch.yml","disabled":false}],"overrides":[{"id":"llm-deepseek","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-llm-deepseek","keys":["thinking","reasoningEffort","models"],"path":"config/sdk-streaming.cordis.yml"},{"id":"sandbox","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-sandbox-local","keys":[],"path":"config/sdk-streaming.cordis.yml"},{"id":"sandbox-policy","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-sandbox-policy","keys":["mode","workspaceRoot"],"path":"config/sdk-streaming.cordis.yml"},{"id":"subprocess","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-subprocess-local","keys":[],"path":"config/sdk-streaming.cordis.yml"},{"id":"bash","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-bash-sandbox","keys":["timeoutMs"],"path":"config/sdk-streaming.cordis.yml"},{"id":"approval","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-user-approval","keys":["policy"],"path":"config/sdk-streaming.cordis.yml"},{"id":"sdk-jsonrpc-server","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-sdk-jsonrpc-server","keys":["maxTokensAsSuccess"],"path":"config/sdk-streaming.cordis.yml"},{"id":"agent-spine","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-agent-spine-demo","keys":["workspaceContext","persona"],"path":"config/sdk-streaming.cordis.yml"},{"id":"sessions","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-session-persistence-jsonl","keys":["root","compression"],"path":"config/sdk-streaming.cordis.yml"},{"id":"session-checkpoints","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-session-checkpoint-policy","keys":[],"path":"config/sdk-streaming.cordis.yml"},{"id":"token-meter","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-token-meter","keys":[],"path":"config/sdk-streaming.cordis.yml"},{"id":"compaction-basic","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-compaction-basic","keys":["thresholdRatio","retainRatio","maxTokens","compactionRetries"],"path":"config/sdk-streaming.cordis.yml"},{"id":"session-projection","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-session-projection","keys":[],"path":"config/sdk-streaming.cordis.yml"},{"id":"subagent","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-subagent","keys":[],"path":"config/sdk-streaming.cordis.yml"},{"id":"subagent-spawn-in-process","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-subagent-spawn-in-process","keys":["providerName"],"path":"config/sdk-streaming.cordis.yml"},{"id":"tool-subagent","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-subagent","keys":["provider","toolName","backgroundMode","maxDepth"],"path":"config/sdk-streaming.cordis.yml"},{"id":"tool-todo","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-todo","keys":["allowParallelInProgress"],"path":"config/sdk-streaming.cordis.yml"},{"id":"fs-sandbox","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-fs-sandbox","keys":["cwd"],"path":"config/sdk-streaming.cordis.yml"},{"id":"fs-observation-policy","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-fs-observation-policy","keys":[],"path":"config/sdk-streaming.cordis.yml"},{"id":"tool-fs","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-fs","keys":[],"path":"config/sdk-streaming.cordis.yml"}],"jsExpressions":5,"clientPlatform":null,"parseErrors":[]},"capabilities":["agent-control","credentials","environment","filesystem","host-bundle","mcp","network","session","subprocess"],"outboundHosts":[],"findings":[{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"config/sdk-streaming.cordis.yml","pathClass":"cordis","line":19,"evidence":"!!js \"process.env.DSH_PERMISSION_MODE ?? 'workspace-write'\"","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"5b3311d668df62d385500d67"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"config/sdk-streaming.cordis.yml","pathClass":"cordis","line":20,"evidence":"!!js \"process.env.DSH_SANDBOX_ROOT ?? process.cwd()\"","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"0593696fc5c7c27a2ce3e27f"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/check-package.mjs","pathClass":"source","line":4,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"d3df25fb7379dba57455307b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/check-package.mjs","pathClass":"source","line":4,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"718f73107159638bed3af9c7"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/smoke-acp.mjs","pathClass":"source","line":2,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"00e2500308a8ad5dd74bb34c"},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":12,"evidence":"override: id=sandbox name=@deepseek-ai/dsh-sandbox-local","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 命令沙箱（sandbox）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"c8658e70f2aa851108078e3e","review":{"verdict":"functional","reason":"该 sandbox override 位于 config/sdk-streaming.cordis.yml，用于构建插件自身内嵌的 DSH 代理运行时（供 bin/mcp.js 生成流式事件），未被 package.json 的 dsh.bundle.patch 引用，不会自动覆盖宿主 cordis 实例。","model":"sonnet","reviewedAt":"2026-08-21T13:17:37.768Z"}},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":15,"evidence":"override: id=sandbox-policy name=@deepseek-ai/dsh-sandbox-policy config[mode,workspaceRoot]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 沙箱策略（sandbox-policy）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"87c98980e8120639948c44e1","review":{"verdict":"functional","reason":"sandbox-policy 的 mode/workspaceRoot 通过环境变量可控（默认 workspace-write/cwd），属于内嵌代理运行时的常规权限配置，同样未接入 dsh.bundle，不影响宿主安全策略。","model":"sonnet","reviewedAt":"2026-08-21T13:17:37.768Z"}},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":21,"evidence":"override: id=subprocess name=@deepseek-ai/dsh-subprocess-local","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 子进程执行（subprocess）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"34302eac04198cb03d553fbf","review":{"verdict":"functional","reason":"subprocess override 为内嵌代理执行 bash 等工具提供本地子进程实现，是流式桥接生成真实会话事件所必需的基础能力，非宿主级覆盖。","model":"sonnet","reviewedAt":"2026-08-21T13:17:37.768Z"}},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":29,"evidence":"override: id=approval name=@deepseek-ai/dsh-user-approval config[policy]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 工具审批（approval）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"f366d283e38d9a5560a4a413","review":{"verdict":"functional","reason":"approval policy:never 使内嵌代理在无 TTY 的流式/无人值守场景下自动放行工具调用，符合“流式 MCP 桥接”类插件需要后台自动运行代理的设计，但会移除该嵌入式代理的操作确认环节，值得用户知晓。","model":"sonnet","reviewedAt":"2026-08-21T13:17:37.768Z"}},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":61,"evidence":"override: id=compaction-basic name=@deepseek-ai/dsh-compaction-basic config[thresholdRatio,retainRatio,maxTokens,compactionRetries]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 compaction-basic；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"f58ae3b37d71c4eac8008868"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":69,"evidence":"override: id=session-projection name=@deepseek-ai/dsh-session-projection","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 session-projection；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"e2c139f15db98ccdca33f97a"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":72,"evidence":"override: id=subagent name=@deepseek-ai/dsh-subagent","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 subagent；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"216ad9a5af187ee96a1170f3"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":75,"evidence":"override: id=subagent-spawn-in-process name=@deepseek-ai/dsh-subagent-spawn-in-process config[providerName]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 subagent-spawn-in-process；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"c69b0827d8349c4d827ef826"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":80,"evidence":"override: id=tool-subagent name=@deepseek-ai/dsh-tool-subagent config[provider,toolName,backgroundMode,maxDepth]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 tool-subagent；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"9f21fac858e726432e332572"},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":98,"evidence":"override: id=fs-observation-policy name=@deepseek-ai/dsh-fs-observation-policy","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 文件可见性策略（fs-observation-policy）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"3f74726e39f8314a5853a601","review":{"verdict":"functional","reason":"fs-observation-policy override 属于同一内嵌代理运行时的文件可见性配置，与其余 fs-sandbox/tool-fs 组件配套，服务于插件自带的代理工具链，未挂载到宿主 bundle。","model":"sonnet","reviewedAt":"2026-08-21T13:17:37.768Z"}},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"config/sdk-streaming.cordis.yml","line":101,"evidence":"override: id=tool-fs name=@deepseek-ai/dsh-tool-fs","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 文件工具（tool-fs）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"3b709edeadfc51582d276c3f"}],"counts":{"critical":0,"high":0,"medium":13,"low":3},"rawCounts":{"critical":0,"high":0,"medium":13,"low":3},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"complete","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":18,"bytesScanned":60173,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"markdown":4,"source":10,"cordis":2,"data":1,"manifest":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-21T13:17:37.768Z","summary":"该插件描述为“流式 MCP/ACP 桥接”，实际随包附带了一份独立的 DSH SDK 运行时配置（config/sdk-streaming.cordis.yml），用于插件自身的 bin/mcp.js 内嵌运行一个具备 bash/子进程/文件读写能力、且审批策略为 never 的全权限代理，以产出真实的流式会话事件——这与其声称功能相符，属于实现所必需的组件。关键是：这份配置未被 package.json 的 dsh.bundle.patch（实际安装到宿主的补丁，仅设置 host/port/authToken/model 等）引用，因此不会自动覆盖用户宿主 DSH 会话的沙箱/审批策略；只有用户手动将该文件应用到自己的 profile 时才会生效。最值得用户注意的一点：该嵌入式代理默认 approval=never、sandbox=workspace-write，一旦被手动套用到宿主配置，将使工具调用无需确认即可执行，需谨慎对待。","intentMatch":"partially","findingsReviewed":5,"findingsCandidates":5,"fromCache":0,"usage":{"inputTokens":2,"outputTokens":6313,"costUsd":0.14151000000000002,"durationMs":72171}}},"timeline":[{"scannedAt":"2026-08-21T13:17:37.768Z","commit":"f6c96745cbc9b8fd1a376b20d090ce27c464806e","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:42:00.316Z","commit":"f6c96745cbc9b8fd1a376b20d090ce27c464806e","policyVersion":"HT-DSH-0.2.1","verdict":"review","status":"static-complete"},{"scannedAt":"2026-08-21T11:10:56.579Z","commit":"f6c96745cbc9b8fd1a376b20d090ce27c464806e","policyVersion":"HT-DSH-0.2.0","verdict":"review","status":"static-complete"}],"events":[{"kind":"verdict-change","from":"review","to":"caution","commit":"f6c96745cbc9b8fd1a376b20d090ce27c464806e","policyVersion":"HT-DSH-0.2.2","at":"2026-08-21T13:17:37.768Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"f6c96745cbc9b8fd1a376b20d090ce27c464806e","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:42:00.316Z"},{"kind":"first-scan","from":null,"to":"review","commit":"f6c96745cbc9b8fd1a376b20d090ce27c464806e","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T11:10:56.579Z"}]}