dsh-rustore: a RuStore publishing plugin for DeepSeek Harness

dsh-rustore

A plugin, a skill and a standalone MCP server with 22 RuStore tools: draft, AAB upload, moderation and publishing

  • 0 ★ on the repository
  • Last commit
Plugin

Broad access

Why this level

  • The RuStore key publishes application versions and deletes drafts
  • The private key sits in a settings file on disk unless moved to DSH credentials
All reasons and checks
Russian stack

yurinkonstantin/dsh-rustore

Install

Services

Manual install

dsh plugin --profile <профиль> add github:YurinKonstantin/dsh-rustore

For DeepSeek Harness; the line from `cordis.patch.yml` is then moved into the profile. The standalone MCP server connects to Cursor or Claude Desktop as described in the README.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The RuStore key publishes application versions and deletes drafts
  • The private key sits in a settings file on disk unless moved to DSH credentials

This is third-party code. Review the repository files before installing.

What it does

The plugin for DeepSeek Harness (DSH) registers 22 `rustore_*` tools for the RuStore publishing API: a version draft, AAB and APK upload, icons and screenshots, publish settings, moderation, manual publishing, archiving and draft deletion. A `rustore` skill ships with the plugin. The same set works as a standalone stdio MCP server with no external dependencies and connects to Cursor, Claude Desktop or your own agent. RuStore does not issue a long-lived token: a JWE lives 900 seconds, so the plugin stores `keyId` and the private key, issues the token itself and refreshes it a minute before expiry. The DSH settings page checks authorization and shows the number of apps.

Who it is for. Mobile developers who work in DeepSeek Harness or connect MCP to Cursor and Claude Desktop and publish builds to RuStore.

Good fit when

  • A build is ready and the draft version with an AAB must be created from chat without opening the Console
  • A version awaits moderation and must be published by hand after approval
  • An old draft is in the way and must be deleted
  • The same toolset is needed in both DSH and Cursor

Not a fit when

  • You need reviews, payments and subscriptions: the description covers only version publishing
  • Work runs with neither DSH nor an MCP client: the description mentions no ready CLI
  • You want to keep the key in the repository: it is safer in the DSH credentials

Example request

Create a draft for version 2.4.0, upload the AAB, add screenshots and submit it to moderation

Limitations

The plugin targets DeepSeek Harness and installs with `dsh plugin add` or through the `market.json` store index. An API key from the RuStore Console is required: `keyId` and a Base64 private key that is shown once. Settings are saved in `%USERPROFILE%\.dsh\rustore.json` with 0600 rights, and the private key is better kept in DSH credentials. Version publishing is covered: reviews, payments and subscriptions are absent among the 22 tools.

How to disable. Remove the plugin with `dsh plugin`, take the line out of the profile `cordis.patch.yml` and delete the API key in the RuStore Console.

FAQ

How do I install dsh-rustore?

With `dsh plugin --profile <profile> add github:YurinKonstantin/dsh-rustore`; then the line from `cordis.patch.yml` is moved into the profile.

Why does the token refresh itself?

RuStore issues a JWE for 900 seconds, so the plugin stores the key and issues a new token a minute before the old one expires.

Can the set be used without DSH?

Yes: the same tools run as a standalone stdio MCP server that connects to Cursor or Claude Desktop.

Which RuStore operations are available?

A version draft, AAB and APK upload, icons and screenshots, publish settings, moderation, manual publishing, archiving and draft deletion.

Where does the plugin keep the key?

In the `%USERPROFILE%\.dsh\rustore.json` file with 0600 rights; the plugin configuration has priority, then the DSH secret `RUSTORE_PRIVATE_KEY` and the `RUSTORE_*` variables.

Discussion

No questions or reviews yet.

RuStore ASO

RuStore ASO Skill

Russian stack

An app store optimization skill for RuStore: metadata, search tags, categories, ranking factors and listing conversion

SkillMinimal access4Repository stars
Official

An Android debugging app for macOS with an MCP server: an agent reads Reactotron data from React Native on localhost

MCP serverExtended access62Repository stars

The Itsyconnect MCP server edits App Store Connect listings, translates fields and adds locales from your coding agent.

MCP serverBroad access130Repository stars

App Store Connect MCP

appstoreconnect-mcp

An MCP server for App Store Connect: subscription prices by country, offers, review submission and sales reports straight from an agent chat

MCP serverBroad access5Repository stars

README in short

The README describes installation from GitHub and through the DSH plugin store, key setup through the interface and through the profile configuration, the order of secret sources and the tool list. It explains separately why the token is issued again every 900 seconds.

README badge

Report a problem

Foxx AIdsh-rustore: a RuStore publishing plugin for DeepSeek Harness
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.