Skip to content

dsh-plugin-mtsa

Verified

dsh-plugin-mtsa · v0.1.1 · MIT · Web UI

MTS Analytics for DeepSeek Harness: token-managed MCP connection (mcp__mtsa__* tools through the official dsh-mcp-client) plus the "MTS Analytics" agent preset with bundled mtsa-* skills.

Install

dsh plugin add dsh-plugin-mtsa

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

dsh-plugin-mtsa

MTS Analytics for DeepSeek Harness.

One bundle gives you:

  • a token-managed MCP connection to the mtsa-mcp server — the official @deepseek-ai/dsh-mcp-client bridge does the connecting; this plugin only writes its configuration row (tools appear as mcp__mtsa__*);
  • the «МТС Аналитика» agent preset (mtsa-analytics): an analyst persona plus the bundled mtsa-* skills, registered into the preset's scope layer so the skill catalog appears only in those sessions;
  • a Settings → Plugins tab where you paste the connection token, see the connection state, and browse the live tool inventory.

Install

Enter one of these in DSH's plugin installation interface:

dsh-plugin-mtsa

or the tarball URL (self-hosted distribution; always the latest build). Paste the FULL address exactly as written — the DSH installer recognizes a tarball only when the spec ends in .tgz (a bare file name is treated as an npm package name and fails lookup):

https://mtsa-next.ru/mcp/dsh-plugin/dsh-plugin-mtsa-latest.tgz

To pin a release, use https://mtsa-next.ru/mcp/dsh-plugin/dsh-plugin-mtsa-<version>.tgz (SHA-256 published alongside as .sha256).

After installing or upgrading, let running tasks finish, fully quit DSH, and reopen it. Closing a window may not quit the application.

Setup

  1. Get a connection_id for the mtsa-mcp server (Chrome extension export, or uv run python -m mtsa_mcp auth list --full for operators).
  2. Open Settings → Plugins → MTS Analytics.
  3. Paste the token and press Save token. The plugin appends one generated operation to the profile's cordis.patch.yml (backup-first, append-only, verified against the loader); the web profile hot-reloads it — no restart.
  4. Create a session with the «МТС Аналитика» preset.

To disconnect, press Disconnect and redact token: the row is disabled (tools unregister) and the effective credential is blanked. Earlier blocks in the patch file's history may still hold previous tokens — prune the file to purge them completely.

Security notes

  • The token is stored in plaintext in the profile's cordis.patch.yml (same shape as the official DSH examples). Treat that file as a secret. The connection_id is revocable: re-export from the Chrome extension to rotate.
  • The token value never leaves the host: the status snapshot carries presence booleans only, and the settings tab input is write-only.
  • Manual alternative (headless / SDK profiles): put MTSA_TOKEN=<connection_id> into ~/.dsh/.env and write the row yourself with Authorization: !!js 'Bearer ${process.env.MTSA_TOKEN}' — see docs/deploy/dsh-plugin.md in the mtsa-mcp repository.
  • Disabling the plugin does not disconnect the MCP server — the written row lives in the profile patch. Disconnect first, then disable.

Compatibility

  • Developed and tested against DSH 0.2.0-rc.* (@deepseek-ai/dsh next channel). DSH is in developer preview; other versions are not certified. The installer checks peer ranges before anything downloads; dsh plugin allow-version grants an explicit exemption.
  • UI dictionaries ship in English and Chinese (the harness locale registry accepts en/zh); the analyst persona and skills are Russian-first.

Development

Node.js 22+, pnpm 10+.

pnpm install
pnpm run prebuild   # sync skills from docs/skills/src + generate cordis.patch.yml
pnpm run typecheck
pnpm test
pnpm run build      # tsdown: lib/index.js + lib/typert.host.js + lib/client.js

Prebuilt lib/, synced skills/, and the generated cordis.patch.yml are committed (no install lifecycle scripts — a profile that installs this package never builds code). Regenerate and commit all three after changing sources: docs/skills/src/*, persona/prefix.md, or package.json version.

Structure:

Path Role
src/index.ts host entry: global row mounts the mtsa Remote service; the preset row registers bundled skills
src/service.ts status snapshot + token actions (append-only profile-patch writes, backup + readback + loader verification)
src/patch.ts / src/write.ts fragment rendering (insert / update / disable+redact) and the atomic append-only writer
src/skills.ts bundled mtsa-* skill loading and scoped registration
src/wire.ts / src/typert.host.ts Typert invocation descriptors shared by both faces
src/client/ Settings tab (Remote contribution, locales, styles, React component)
persona/prefix.md the «МТС Аналитика» persona source
tools/sync-skills.mjs / tools/gen-patch.mjs skills sync + patch generation (with gates)

License

MIT. The append-only writer follows the discipline of dsh-mcp-panel (Apache-2.0).