mcpField
P
pgyer

pgyer

github.com/pgyerCloud & DevOps156 installsUpdated 23w ago
Repository

About pgyer

pgyer is a skill for publishing iOS, Android, and HarmonyOS builds to PGYER and handling app details and release workflows. It chooses between PGYER’s MCP server, a bundled shell script, and API calls according to the task’s requirements.

Key features

  1. 01Upload IPA, APK, and HAP builds
  2. 02List apps and inspect app details
  3. 03Select MCP, shell, or API by task
  4. 04Provide CI/CD setup guidance
  5. 05Handle upload credentials safely

Use cases

  1. 01Distribute a mobile beta build
  2. 02Check versions and install links for apps
  3. 03Publish builds from a CI pipeline

MCP support

The skill prefers PGYER’s official MCP server when available for uploads, app listings, and lookup by shortcut. It falls back to its shell script or HTTP API where MCP tools lack required parameters or details.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/pgyer/pgyer-skill --skill pgyer

After installing, type/pgyerin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
LICENSE
install.sh
CHANGELOG.md
README.md
docs/
use-with-other-agents.md
examples/fastlane/
README.md
examples/github-actions/
android.yml
harmony.yml
ios.yml
examples/gitlab-ci/
android.yml
ios.yml
references/
api-cheatsheet.md
mcp-tools.md
troubleshooting.md
scripts/
UPSTREAM-README.md
pgyer_upload.sh
README.md
tests/
scenarios.md

Details

From the project README

PGYER (蒲公英) — Official Skill

PGYER (https://www.pgyer.com) is China's leading iOS / Android / HarmonyOS beta-distribution service. This skill helps you upload builds, fetch install links, inspect app metadata, and wire CI/CD to PGYER.

How this skill is structured

This skill prefers PGYER's official MCP server when it is installed, and falls back to a bundled official shell script otherwise. Both paths hit the same underlying API.

At the start of every task, check whether the MCP tools upload-app, list-my-apps, or get-app-info-by-shortcut are listed in this session. Then use the Capability map below as the single source of truth for which path (MCP / shell / curl) to use per task — including the cases where MCP is insufficient and you must drop down. Raw HTTP details are in references/api-cheatsheet.md.

Credentials

PGYER authenticates with an API key obtained at https://www.pgyer.com/account/api.

Resolve the key in this order (first match wins):

  1. $PGYER_API_KEY environment variable
  2. api_key=... line in ~/.pgyer/config

If neither is present, ask the user to set one. Prefer persisting it for future sessions:

mkdir -p ~/.pgyer && chmod 700 ~/.pgyer
echo 'api_key=<key>' > ~/.pgyer/config && chmod 600 ~/.pgyer/config

Never echo the key back in chat or commit it to repos.

Capability map

TaskPreferred pathFallback
Upload ipa/apk/hapMCP upload-appscripts/pgyer_upload.sh -k $KEY <file>
Upload with password / expiry / install typeShell script (MCP only exposes filePath)—
List my appsMCP list-my-appsPOST /apiv2/app/listMy
App info by shortcut URLMCP get-app-info-by-shortcutPOST /apiv2/app/getByShortcut
Full app info (password, QR, expiry, downloads)curl (MCP doesn't expose this)POST /apiv2/app/view with appKey
CI/CD on pushRecommend pgyer-upload-app-actionSee examples/ (per-platform templates)

When the user wants any upload parameter beyond filePath (password, install type, expiry dates, channel shortcut, update description), the MCP upload-app tool is insufficient — use the bundled shell script instead.

Typical workflows

"Upload this build to PGYER"
  1. Resolve the file path. If ambiguous, look for the most recent *.ipa, *.apk, or *.hap under build/, dist/, or the project root.
  2. Confirm credentials are resolvable.
  3. Run the upload (MCP if available; otherwise scripts/pgyer_upload.sh).
  4. Report back: app name, version, build number, install short URL (https://www.pgyer.com/<buildShortcutUrl>), QR code URL, and password if one was set.
"What's on PGYER right now?"

List my apps (MCP list-my-apps or POST /apiv2/app/listMy). Render a compact table: name, version (buildVersion / buildVersionNo / buildBuildVersion), shortcut URL, uploaded-at.

"Tell me about app X"

If the user gives an appKey (32-char hex), call app/view for the full record (password, install rules, QR, expiry). If the user gives a buildShortcutUrl (the URL slug), call app/getByShortcut or MCP get-app-info-by-shortcut.

"Set up CI to publish to PGYER on every merge to main"

Pick the template by (CI platform × target OS). Read the matching file from examples/ and adapt it to the user's project (scheme name, build output path, branches). Tell the user which secrets/variables to add.

CI platformAndroidiOSHarmonyOS
GitHub Actionsexamples/github-actions/android.ymlexamples/github-actions/ios.ymlexamples/github-actions/harmony.yml
GitLab CIexamples/gitlab-ci/android.ymlexamples/gitlab-ci/ios.yml— (use upload-only pattern from harmony.yml)
fastlaneexamples/fastlane/README.md (official plugin)same—
Bitrise / Jenkins / other— (no template yet; use shell-script pattern from gitlab-ci)samesame

Password / expiry / channel needed? The PGYER/pgyer-upload-app-action GitHub Action only accepts _api_key + appFilePath. For any extra parameter, swap the action for scripts/pgyer_upload.sh — every GitHub Actions template has a commented "with password" block showing the swap. GitLab CI templates already use the script directly, and the fastlane plugin supports these flags natively.

Default questions to clarify if the user doesn't say:

  1. Which CI platform? (GitHub Actions is the default if they don't say.)
  2. Which OS / package type? (.apk → android, .ipa → ios, .hap → harmony)
  3. Do they need install password / expiry / channel? (Drives upload-step choice — see callout above.)

HarmonyOS caveat: the SDK is not on GitHub-hosted runners. If the user has no self-hosted runner, point them at the upload-only variant at the bottom of harmony.yml.

Conventions when reporting results

  • Always include the install short URL (https://www.pgyer.com/{buildShortcutUrl}) — that's the one humans use.
  • Include the QR code URL for mobile testers to scan.
  • Surface buildPassword if the app uses password install (buildInstallType=2).
  • Note appExpiredDate when relevant — PGYER apps expire if not renewed.
  • For uploads, also surface buildVersion / buildBuildVersion so the user can confirm the build that landed.

Where to look next

  • references/mcp-tools.md — exact MCP tool schemas and example calls.
  • references/api-cheatsheet.md — raw HTTP endpoints, params, response shapes.
  • references/troubleshooting.md — common error codes, network/domain fallback, signing issues.
  • scripts/pgyer_upload.sh — bundled official upload script (multi-domain, all parameters).
  • examples/ — CI/CD templates organized as <platform>/<os>.yml.
    • github-actions/{android,ios,harmony}.yml
    • gitlab-ci/{android,ios}.yml
    • fastlane/README.md

Comments

Markdown supported