前言¶
DeepSeek Harness(DSH)通过插件机制扩展能力。在开发调试智能体时,往往需要访问服务器上的日志文件进行排查。直接给智能体开放 SSH 权限风险过高。dsh-ssh-logs 插件利用 DeepSeek Harness 内置的 @deepseek-ai/dsh-mcp-client 桥接,将 SSH 读取能力封装为三个 MCP 工具。它通过固定别名管理服务器,确保智能体只能读取预配置的日志路径,无法执行任意命令或修改文件。
插件定位¶
- 名称: dsh-ssh-logs
- 类别: 联网工具
- 功能: 允许在 DeepSeek Harness 会话中,通过 SSH 读取已授权的远程日志。
- 维护者: 452926826
- 许可证: MIT
核心功能¶
该插件在 DSH 上下文中暴露三个 MCP 工具,用于与日志服务器交互:
- list_log_servers: 列出已配置的服务器别名。
- read_log: 读取日志文件内容。
- search_log: 在日志文件中搜索特定关键词并返回上下文。
服务器配置基于固定别名,智能体无法指定任意主机或执行任意命令。每次文件读取请求必须在已授权的日志根目录(log root)范围内。
安装与启用¶
在 DSH 环境中执行以下命令安装插件:
dsh plugin --profile web add github:452926826/dsh-ssh-logs
安装后,需重启 dsh web 进程并刷新页面,使 Bundle 注册的 MCP 客户端生效。服务器和日志路径需提前配置。
典型用法¶
配置完成后,可以通过自然语言指令调用上述 MCP 工具:
-
读取生产环境应用日志根目录下的最后 300 行:
> Read the last 300 lines of service/api.log from the app log root on production. -
在预发环境的日志中搜索特定请求 ID 并展示上下文:
> Search logs/backend.log under staging/app for request-id=abc123 and include 3 lines of context.
注意事项¶
- 预配置限制: 服务器和日志根目录必须在安装前配置完毕。插件拒绝相对路径、反斜杠以及使用
..进行目录遍历。 - 权限与安全:
- SSH 连接强制使用
BatchMode=yes和StrictHostKeyChecking=yes,并指定显式的known_hosts路径。 - 服务器端必须使用专用的只读账号。
- 不支持密码提示、sudo、任意命令执行、SFTP 写入、文件删除或修改操作。
- 输出内容默认为 128 KiB,硬性限制为 4 MiB,单次请求最多读取 5,000 行或返回 1,000 个搜索匹配。
- SSH 连接强制使用
结尾¶
该插件为 DSH 生态提供了一种安全的日志检索机制,适合需要在对话中快速查看服务器日志的场景。相关目录与源码可查阅: