DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Tool Grafana — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-tool-grafana

Tool Grafana

DeepSeek Harness 的 Grafana 能力:将社区 mcp-grafana 服务器与 Grafana 专属提示指导和故障排除技能组合在一起

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-tool-grafana@0.1.3
README兼容性版本

兼容性与来源证明

Tool Grafana 以 dsh-tool-grafana 发布,当前版本为 0.1.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.1.3stable
2026/8/25
0.1.2stable
2026/8/25
0.1.1stable
2026/8/25

相关插件

正在加载相关插件…

最新版
0.1.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
60.5 kB
文件数
14
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
40
最近提交
2026/8/25
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-tool-grafana

English | 简体中文

Grafana capability for DeepSeek Harness (dsh).

This plugin owns no Grafana tool logic. It composes the community mcp-grafana server as a child @deepseek-ai/dsh-mcp-client plugin — the model sees mcp__grafana__* tools exactly as in any MCP-aware agent — and layers on what a plain MCP bridge cannot provide:

  1. One config owner for connection material (URL, service-account token, tool-category selection, read-only mode) instead of raw env passthrough.
  2. A standing system-prompt section (grafana:workflow, order 115) encoding the upstream context-window discipline: summary before full JSON, JSONPath for partial reads, datasource discovery before querying.
  3. An embedded runtime skill (grafana-troubleshooting) teaching a systematic alert → dashboard → metrics → logs → incident workflow, invocable on both model and user surfaces.
┌─ dsh-tool-grafana (this plugin) ─────────────┐
│  config validation · prompt section · skill       │
└──────────────┬─────────────────────────────────────┘
               │ ctx.plugin(dsh-mcp-client, plan)
               ▼
┌─ mcp-grafana (community Go binary, stdio) ────────┐
│  mcp__grafana__search_dashboards                  │
│  mcp__grafana__query_prometheus / loki / ...      │
└───────────────────────────────────────────────────┘

The same mcp-grafana binary remains directly usable by Cursor, Claude Code, OpenClaw, etc. — one core, both ecosystems.

Install into a profile

dsh plugin --profile web add dsh-tool-grafana

That is the whole installation: the package ships a bundle patch (cordis.patch.yml + dsh.bundle declaration), so the plugin mounts with its schema defaults — no YAML required. Finish setup in Settings → Plugins → Grafana observability: enter the Grafana URL and the service-account token, then restart the profile.

Custom configuration (optional)

To pin categories, a launcher, or defaults without the card, add a same-id row to ~/.dsh/profiles/web/cordis.patch.yml — the profile layer wins over the shipped bundle layer:

- insert:
    - id: grafana
      name: 'dsh-tool-grafana'
      config:
        url: https://myinstance.grafana.net   # default; the settings card can override
        # The token is resolved through the DSH credential store under this
        # reference — never inline in this file:
        tokenCredentialRef: GRAFANA_SERVICE_ACCOUNT_TOKEN
        readOnly: true
        categories: [search, datasource, dashboard, prometheus, loki, alerting]
        launcher:
          kind: uvx
          version: '0.7.9'   # pin the upstream release; omit to track latest
        # kind: binary
        # path: /usr/local/bin/mcp-grafana   # go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@vX.Y.Z

Card values are stored in the DSH settings document / credential store and override the patch config per field; the patch url remains the fallback default.

Config

FieldDefaultMeaning
url''Default Grafana base URL; the settings card value (web) overrides it. Both empty fails activation with guidance
tokenCredentialRefGRAFANA_SERVICE_ACCOUNT_TOKENCredential reference resolved through ctx.credentials (see below). No inline token field exists, by design
categoriesupstream default set*mcp-grafana --enabled-tools categories
readOnlytrueDefault for --disable-write; the settings card toggle overrides it (web)
launcher{kind: 'uvx', version: ''}How to start the server process; pin version (uvx) or use a versioned binary/docker tag to avoid upstream drift
env{}Extra env merged into the server process
toolCallTimeoutMs60000Per-tool-call timeout (dsh-mcp-client)

* search, datasource, dashboard, folder, prometheus, loki, alerting, incident, oncall, sift, navigation, annotations. Heavy backends (clickhouse, cloudwatch, snowflake, athena, elasticsearch, quickwit, graphite, influxdb) and the runpanelquery/examples/ agento11y/assistant groups stay opt-in.

Credentials

The token is resolved through the DSH credential seam (ctx.credentials), not read from a plugin-owned env var. With the default local provider (dsh-credentials-local), the first configured source wins:

  1. Launching environment — GRAFANA_SERVICE_ACCOUNT_TOKEN=… dsh web
  2. Managed store — $DSH_HOME/.credentials.yaml (what the Web Models page writes; writable from inside DSH)
  3. Project .env in the invocation directory
  4. User .env at $DSH_HOME/.env

There is no inline token config field, so the token can never be committed into cordis.patch.yml or leak through --dump-config output.

Connection changes take effect on profile restart. The token and URL are resolved once at activation and handed to the mcp-grafana process environment; stdio MCP servers cannot receive env updates after spawn. (Native-tool plugins like the dsh-grafana dashboard editor resolve per tool call and pick up changes live — that is the trade-off of composition over re-implementation.)

Web settings card

The package ships a dsh.client entry (client.js) that mounts a card under Settings → Plugins → Grafana observability:

  • Service Account Token — written to the credential store (write-only; the card shows a mask, never the value)
  • Grafana URL — stored in the grafana settings namespace, shown verbatim after saving
  • Read-only toggle — stored in the same namespace

Precedence is card value > patch config > activation error, per field.

Development

npm install
npm run build   # tsc → lib/
npm test        # node --test (unit + real-Cordis integration)

The integration test boots the plugin under a real Cordis context with the real dsh-system-prompt and dsh-skill services, stubbing only the child mcp-client mount so no Grafana is needed.

Design notes

  • Why not re-implement the tools natively? The community server ships 60+ tools with per-category flags, auth handling, and active upstream maintenance. Re-implementing buys nothing and forks the maintenance burden.
  • Why not just dsh-mcp-client directly? You can — one YAML row works. This plugin exists for the delta MCP can't express: validated config, prompt-level usage discipline, and bundled workflow knowledge.
  • Token hygiene: the token only ever travels into the child process env, never into prompts, tool output, or logs (declared as this package's invariant in ./invariant).

License

MIT

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rIm@xmanrui/dsh-im将十一种 IM 渠道和一个公网 AI Office 接入本地 DeepSeek Harness。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理