DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Tool Grafana — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-tool-grafana

Tool Grafana

Grafana capability for DeepSeek Harness: composes the community mcp-grafana server with Grafana-specific prompt guidance and a troubleshooting skill

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-tool-grafana@0.1.3
READMECompatibilityVersions

Compatibility and provenance

Tool Grafana is published as dsh-tool-grafana and currently resolves to version 0.1.3. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/20/2026

Versions

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

Related plugins

Loading related plugins…

Latest
0.1.3
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
60.5 kB
Files
14
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
40
Last push
8/25/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in integrations-communication.

Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rIm@xmanrui/dsh-im把十一种 IM 渠道和公网 AI Office 接入本机 DeepSeek Harness。 Connect eleven IM channels and a public AI Office to a local DeepSeek Harness.DSCODE@toddzheng024/dscode-bundleA complete DeepSeek coding agent with persistent shell, Ultra collaboration and automatic permission review.Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-base

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