dsh-plugin-mtsa
Verifieddsh-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-mcpserver — the official@deepseek-ai/dsh-mcp-clientbridge does the connecting; this plugin only writes its configuration row (tools appear asmcp__mtsa__*); - the «МТС Аналитика» agent preset (
mtsa-analytics): an analyst persona plus the bundledmtsa-*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
- Get a
connection_idfor the mtsa-mcp server (Chrome extension export, oruv run python -m mtsa_mcp auth list --fullfor operators). - Open Settings → Plugins → MTS Analytics.
- 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. - 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. Theconnection_idis 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/.envand write the row yourself withAuthorization: !!js 'Bearer ${process.env.MTSA_TOKEN}'— seedocs/deploy/dsh-plugin.mdin 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/dshnextchannel). DSH is in developer preview; other versions are not certified. The installer checks peer ranges before anything downloads;dsh plugin allow-versiongrants 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).