mcpField
P
PubShip

PubShip

VerifiedFeaturedLocal
pubship.devDeveloper Tools0Updated 2w ago

About PubShip

PubShip is a local-first MCP server for developers managing their own Google Play apps. It supports release, review, report, and catalog inspection, with optional writes prepared for explicit authorization.

Key features

  1. 01Read releases, reviews, vitals, and reports
  2. 02Inspect catalog and account resources
  3. 03Prepare and review authorized changes
  4. 04Bounded local file transfers

Use cases

  1. 01Review app releases and user feedback
  2. 02Inspect Play Console reports and resources
  3. 03Stage and approve app or catalog changes

MCP support

PubShip runs as a local stdio MCP server using the operator's Google service account and Play Console permissions. It exposes Google Play workflow tools; optional writes and sensitive reads require explicit configuration.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"pubship-pubship": {
"command": "uvx",
"args": [
"pubship"
]
}
}
}
Run commanduvx pubship

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypipubship0.24.2

Tools

13

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
methodstringYesExact pinned Google method ID, not a URL; discover it with list_api_methods and inspect describe_api_method. It must be supported by this tool and authorized for the target.
parametersobjectYesGoogle path/query parameters using exact names from describe_api_method; include all required target identifiers. Put request JSON in body when supported, not here. For pagination, repeat filters and pass the returned provider token.

Details

From the project README

PubShip

Google Play developer workflows, from your own computer. Inspect releases, understand reviews and reports, and prepare explicitly authorized changes from your MCP client.

CI Release AGPL-3.0-only PubShip MCP server – quality and maintenance score on Glama

Start locally

Use your own service account with permissions for your apps in Play Console. Keep its private JSON outside this repository. Grant only the permissions needed for your intended operations. Never paste credentials into an assistant conversation.

export GOOGLE_APPLICATION_CREDENTIALS=/absolute/private/path/service-account.json
export GOOGLE_PLAY_PACKAGES=com.example.app
uvx pubship

This starts the stdio server, which waits for an MCP client. For a credential-free installation check:

uvx pubship --check

The commands above install the published PyPI package. A source checkout may contain changes that are not yet published; after uv sync, use uv run pubship --check to check the local version.

Connect an assistant

Claude Code
claude mcp add --transport stdio pubship -- uvx pubship

Set the environment variables above in the shell launching your client. Restart the client after changing its environment.

Codex
codex mcp add pubship -- uvx pubship
Cursor and Gemini CLI

Client manifests in this repository declare the local service-account key path and package names. See client setup for configuration and the Gemini CLI installation command. For agent-assisted installation, read llms-install.md. Provide only the key file path, never its contents.

Generic MCP harness

Configure a stdio server with executable uvx, argument pubship, and your local environment. For clients that require explicit configuration:

{
  "mcpServers": {
    "pubship": {
      "command": "uvx",
      "args": ["pubship"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/absolute/private/path/service-account.json",
        "GOOGLE_PLAY_PACKAGES": "com.example.app"
      }
    }
  }
}

Client configuration stays on your computer. Consult setup for alternate authentication modes, enabled APIs, reports and permission boundaries.

What can it do?

Local API coverage

The pinned inventory contains 172 method definitions. 170 have implementations, one subscription-archive method is unsupported by Google, and voided-purchases access is deliberately disabled by project policy. Disabled operations cannot be called through local or self-host tools.

  • Read releases, reviews, Android vitals and scoped bulk reports.
  • Inspect catalog, subscription, product and account resources with separate sensitive-data grants.
  • Prepare and review writes with explicit app/method permissions and single-use execution.
  • Keep local file transfers bounded and separate publication from edit staging.

Reads are the default. Optional writes and sensitive reads require explicit configuration. Provider text is untrusted data. Missing data is not zero; a submitted change is not necessarily published. No operation count is a claim of live Google verification.

Explore the contracts and boundaries

Self-hosting for your own accounts

pubship-server retains the HTTP implementation for infrastructure you control. It refuses to start without PUBSHIP_SERVER_ALLOWED_EMAILS. Sign-in requires a signed Google ID token, a verified exact email match and nonce binding before any Google credentials are persisted. Removing an account from the allowlist invalidates its stored grants on next use. Legacy grants without verified identity must reconnect. Enrollment stays closed until the operator explicitly enables it.

There is no project-run Google-connected service. See the local-first decision and self-host setup.

Release notes

PubShip 0.24.2 improves tool descriptions and approval hints, and checks the same definitions across source and packaged installs. See the changelog for earlier versions. Source versions can precede package publication.

Development

Tool definition quality documents the TDQS 1.2 offline checks, reviewed heuristic findings and MCP contract regression coverage. Offline lint is not a model-scored grade.

env -u GOOGLE_APPLICATION_CREDENTIALS uv sync --frozen --all-extras --group browser --group tdqs
env -u GOOGLE_APPLICATION_CREDENTIALS uv run --frozen --all-extras --group browser --group tdqs pytest
env -u GOOGLE_APPLICATION_CREDENTIALS uv run ruff check .
env -u GOOGLE_APPLICATION_CREDENTIALS uv run ruff format --check .
env -u GOOGLE_APPLICATION_CREDENTIALS uv run python scripts/generate_catalog.py --check
env -u GOOGLE_APPLICATION_CREDENTIALS uv run python scripts/generate_verification.py --check
env -u GOOGLE_APPLICATION_CREDENTIALS uv run python scripts/distribution_metadata.py --check
env -u GOOGLE_APPLICATION_CREDENTIALS uv build
env -u GOOGLE_APPLICATION_CREDENTIALS uv run python scripts/check_artifacts.py

Tests use fake providers. Browser tests require installed Playwright engines; backup integration tests require age. Record unavailable platform checks honestly. See contribution policy, release process, and security reporting.

Intended use

PubShip helps developers automate their own Google Play distribution work. It runs on your computer or on infrastructure you control, with your own Google credentials and Play Console permissions. The PubShip project does not run a hosted service and never receives your credentials. Use it only for apps and developer accounts that you or your organization own, and follow Google's Play Developer API Terms. Hosted PubShip instances run by others are not provided or endorsed by the PubShip project.

PubShip is an independent open-source project and is not affiliated with, endorsed by, or sponsored by Google. Google, Google Play and Android are trademarks of Google LLC.

License

PubShip is free software under the GNU Affero General Public License v3.0 only (AGPL-3.0-only). Copyright (C) 2026 Denys Vorobyov. For other license terms, contact [email protected].

Trademarks · Third-party notices · Website

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.