npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@deploygate/mcp

v1.5.1

Published

DeployGate MCP server: upload mobile apps, manage distribution pages, set up CI/CD, and onboard your team. Supports iOS (IPA) and Android (APK/AAB).

Readme

DeployGate Agent Plugin

DeployGate agent integration for Claude Code and Codex: upload mobile apps, manage distribution pages, set up CI/CD, and onboard your team. Supports iOS (IPA) and Android (APK/AAB).

Installation

This repository includes plugin metadata for both Claude Code and Codex:

  • Claude Code: plugin/.claude-plugin/plugin.json and .claude-plugin/marketplace.json
  • Codex: plugin/.codex-plugin/plugin.json and .agents/plugins/marketplace.json

Claude Code

Add the marketplace and install the plugin from within Claude Code:

/plugin marketplace add DeployGate/deploygate-agent-plugin
/plugin install deploygate@deploygate-marketplace

Codex

Add the marketplace from your shell:

codex plugin marketplace add DeployGate/deploygate-agent-plugin

Then enable or install the deploygate plugin from the configured DeployGate marketplace in Codex.

Standalone MCP server (any MCP client)

Beyond the Claude Code / Codex plugins, the server is published to npm as @deploygate/mcp and can be added to any MCP client via npx — no install step required.

Add it to your client's MCP configuration (Claude Desktop, Cursor, Cline, and others use the same mcpServers shape):

{
  "mcpServers": {
    "deploygate": {
      "command": "npx",
      "args": ["-y", "@deploygate/mcp"]
    }
  }
}

Authentication is the same as the plugin — see the Authentication section below for the login flow and the platform-specific token storage path. The token is shared with the plugin installs.

Getting Started

After installation, start the guided onboarding flow:

  • Claude Code: run /deploygate:setup
  • Codex: mention $deploygate:setup
  1. Account creation — sign in via browser-based device authorization (login_start → approve in browser → login_wait)
  2. App upload — build and upload your IPA/APK/AAB
  3. Distribution page — create a distribution page with an install link
  4. Notifications — connect Slack/Teams/Chatwork
  5. iOS device setup — UDID registration for Ad Hoc builds (if applicable)

Authentication

The plugin signs you in to DeployGate via a browser-based device authorization code:

  1. Ask your agent to set up DeployGate. Under the hood it calls the login_start tool, which returns a URL and a short code.
  2. Open the URL in a browser where you are signed in to DeployGate and click approve.
  3. The agent calls login_wait, which returns your workspace information once you approve.

The issued token is stored at ~/.config/deploygate/token (on Windows, %APPDATA%\deploygate\token) with 0600 permissions and reused across sessions. Run the logout tool to revoke it server-side and delete the local file.

Skills

Claude Code invokes plugin skills as slash commands. Codex invokes plugin skills by mentioning the skill name with $.

| Skill | Claude Code | Codex | Description | |---|---|---|---| | setup | /deploygate:setup | $deploygate:setup | Full onboarding flow with step-by-step progress display | | deploy | /deploygate:deploy | $deploygate:deploy | Build and upload the current project to DeployGate | | ci-setup | /deploygate:ci-setup | $deploygate:ci-setup | CI/CD integration — GitHub Actions, Bitrise, CircleCI (see external CI guide) | | sdk-setup | /deploygate:sdk-setup | $deploygate:sdk-setup | Android SDK integration (crash reporting, screen capture). iOS SDK is currently not recommended. |

MCP Tools

Authentication

| Tool | Description | |---|---| | login_start | Begin a browser-based device authorization login. Returns a URL for the user to open and approve. | | login_wait | Poll until the user approves login_start. On success, persists the token to ~/.config/deploygate/token (0600). | | logout | Revoke the stored token on the server and delete the local token file. | | get_user_info | Get current user information (workspace names, projects). Auto-clears the local token on a 401 response. |

App Upload

| Tool | Description | |---|---| | upload_app | Upload an app binary (IPA/APK/AAB) to DeployGate. |

Parameters:

  • owner_name (required): Owner name (user or project)
  • file_path (required): Absolute path to the app binary
  • message: Build description (max 32,766 bytes; auto-truncated if exceeded)
  • distribution_key: Distribution page key to update. Takes priority over distribution_name.
  • distribution_name: Distribution page name. Creates a new page if not found. Ignored if distribution_key is also specified.
  • release_note: Release note for the distribution page
  • disable_notify: Disable push notification to testers (iOS only)
  • ios_simulator_zip: Path to iOS simulator build zip for Instant Device (browser-based preview). Must be uploaded together with an IPA.

Distribution Page Management

| Tool | Description | |---|---| | create_distribution | Create a new distribution page. Returns access_key for the URL https://deploygate.com/distributions/{access_key} | | list_distributions | List all distribution pages for an app | | get_distribution | Get details of a specific distribution page | | update_distribution | Update a distribution page. active and release_scope are always required — use get_distribution first to retrieve current values. | | delete_distribution | Delete a distribution page. Uploaded builds (binaries) are preserved. |

Release scope options (release_scope):

  • public — publicly accessible, indexable by search engines
  • unlisted — accessible to anyone with the link (default)
  • passcode — requires a passcode (passcode parameter required)
  • authorized_only — only accessible to logged-in team members

iOS UDID Management

| Tool | Description | |---|---| | get_udids | Get iOS device UDIDs for an app. Use unprovisioned_only=true to find devices not yet in the provisioning profile. |

Notification Settings

| Tool | Description | |---|---| | get_notification_settings_url | Generate the URL for configuring Slack/Teams/Chatwork notifications. Supports distribution-level and app-level settings. |

Member Management

| Tool | Description | |---|---| | add_member | Onboarding shortcut: add a member with a role (owner/developer/tester). Orchestrates workspace + project + role-team add, and attaches the role team to a target app for non-owner roles. Locale-aware (resolves role team by stable role keyword). Free plan limit: 2 members. | | add_team_member | Atomic single-step: add a user (who is already a project member) to a specific team in the project. | | list_team_members | List members of a specific team. Use get_project to discover team names. | | remove_team_member | Remove a member from a specific team in the project. |

Shared Team Management

| Tool | Description | |---|---| | create_shared_team | Create a workspace-level shared team for cross-project use | | add_shared_team_member | Add a member to a shared team (email or username, not both) | | assign_shared_team_to_app | Assign a shared team to an app (tester-level access) |

GitHub Actions Templates

Pre-built workflow templates in plugin/templates/:

| Template | Description | |---|---| | deploygate-upload.yml | Upload to DeployGate on push to main | | deploygate-pr.yml | PR-based distribution — auto-create distribution page with QR code, cleanup on close |

Development

npm install        # Install dependencies (also installs the pre-commit hook)
npm run build      # Compile TypeScript (does not touch plugin/scripts/bundle.js)
npm test           # Run tests
npm start          # Run the MCP server from dist/index.js (no bundle needed)
npm run bundle     # Regenerate plugin/scripts/bundle.js for plugin-level testing

plugin/scripts/bundle.js is the single-file build that end users execute when the plugin is loaded by Codex / Claude Code. For day-to-day iteration (unit tests, running the server via npm start) you do not need to touch it. When you want to verify the plugin end-to-end through the Codex / Claude Code plugin loader, run npm run bundle to refresh it locally — but do not commit the result. The release-please workflow regenerates and commits the bundle automatically when it opens or updates a release PR, and a pre-commit hook in .githooks/ (installed via the prepare script) blocks accidental commits.

Verifying changes in Claude Code

  1. Register your local checkout as a marketplace and install the plugin (once):

    /plugin marketplace add /path/to/deploygate-agent-plugin
    /plugin install deploygate@<marketplace-name>
  2. Iterate:

    1. Edit source under src/.
    2. Run npm run bundle to regenerate plugin/scripts/bundle.js.
    3. Restart your Claude Code session (/exit and relaunch, or /restart). The MCP server is spawned as a subprocess at session start, so a fresh session picks up the new bundle automatically — no plugin reinstall is needed.
  3. plugin reinstall is only required when you change plugin/.claude-plugin/plugin.json, .agents/plugins/marketplace.json, or add/remove skills under plugin/skills/.

Releasing

Releases are automated by release-please.

Branching and commits

  • All work lands on main via squash-merged pull requests.
  • PR titles must follow Conventional Commits:
    • feat: … → minor version bump
    • fix: … → patch version bump
    • feat!: … or a body containing BREAKING CHANGE: … → major version bump
    • chore:, docs:, refactor:, test:, build:, ci: → no version bump (and, by default, do not appear in the changelog unless changelog-sections is configured in .release-please-config.json)
  • Individual commits inside a PR can have any title; only the squash-merge title matters.

How a release happens

  1. Merge a feat: or fix: PR into main.
  2. The Release workflow opens (or updates) a Release PR that bumps the version in package.json, both plugin/.claude-plugin/plugin.json and plugin/.codex-plugin/plugin.json, the deploygate entry in .claude-plugin/marketplace.json, and .release-please-manifest.json, and appends to CHANGELOG.md.
  3. Merge the Release PR.
  4. The Release workflow runs again, creates the git tag deploygate--vX.Y.Z, and publishes a GitHub Release.

Installing a specific version

End users can pin to a tag with:

/plugin install DeployGate/[email protected]

Without a pin, claude plugin install follows main. Users can fetch the latest published tag with claude plugin update deploygate.

Support & Project Status

This plugin is open-source software provided as-is on a best-effort basis. See SUPPORT.md for where to get help and what to expect, and CONTRIBUTING.md for how to contribute. All participation in this repository is governed by our Code of Conduct.

License

MIT — DeployGate Inc.