Tools
The fifteen toolsets of the HotCodePush MCP server with every tool, what it does and the parameters that locate its object.
The tools of the MCP server come in fifteen toolsets: docs, which needs no token, and one per resource in the order of the CLI's nouns. The query ?toolsets= on the endpoint URL selects them by name, and readonly=true keeps the reads, as Toolsets describes.
Each table lists a tool's name, what it does and the required parameters, the ones that locate its object. The optional filters and fields are in the tool's own description, which the client shows. Every id is a UUID, resolved from a name through the list tool of its resource: list_organizations, then list_apps, then list_channels.
| Toolset | Tools | What it covers |
|---|---|---|
| docs | 2 | Searches the documentation and reads a page whole, without a token. |
| organization | 5 | Lists and gets organizations, and creates, updates and deletes one. |
| member | 4 | Lists and gets members, changes a role and removes a member. |
| invitation | 3 | Lists, sends and withdraws invitations. |
| audit-log | 1 | Lists who did what to which object, when and from where. |
| sso-provider | 3 | Reads, verifies and removes the single sign-on provider. |
| app | 6 | Lists, gets, creates and updates apps, and deletes and transfers one. |
| channel | 7 | Lists, gets, creates, updates, deletes, pauses and resumes channels. |
| bundle | 3 | Lists and gets bundles with their deltas, and deletes one. |
| release | 8 | Lists, gets, creates, updates, pauses, resumes and revokes releases, and rolls a channel back. |
| statistics | 3 | Reads the fleet, the update statistics and the usage of an app. |
| audience | 2 | Previews the devices a release would reach, and reads the ones an existing release reaches. |
| webhook | 6 | Lists, gets, creates, updates, deletes and tests webhooks. |
| webhook-delivery | 2 | Lists a webhook's deliveries and redelivers one. |
| telemetry-export | 4 | Reads and tests the telemetry export, lists its deliveries and redelivers one. |
Reads, writes and destructive tools
Of the 59 tools, 27 read and survive readonly=true, and the other 32 write. Twelve of the writes do what cannot be undone and carry the destructive annotation, so a client asks you before running them: update_organization, delete_organization, update_member, delete_member, delete_invitation, delete_sso_provider, delete_app, transfer_app, delete_channel, delete_bundle, revoke_release and delete_webhook.
Tools an API token cannot use
Changing who acts in an organization, or spending its money, takes a person: a signed-in session or an OAuth access token. What a token cannot do lists those endpoints. The server registers these 26 tools for an OAuth access token alone, and a client signed in through OAuth gets them all:
organization:create_organization,update_organization,delete_organizationmember:update_member,delete_memberinvitation:list_invitations,create_invitation,delete_invitationaudit-log:list_audit_logssso-provider:get_sso_provider,delete_sso_provider,verify_sso_provider_domainapp:delete_app,transfer_appwebhook:list_webhooks,get_webhook,create_webhook,update_webhook,delete_webhook,test_webhookwebhook-delivery:list_webhook_deliveries,redeliver_webhook_deliverytelemetry-export:get_telemetry_export,test_telemetry_export,list_telemetry_export_deliveries,redeliver_telemetry_export_delivery
docs
The docs toolset is public: it reads this site without a token. A request that selects it is counted by IP address, 600 a minute, as Troubleshooting describes.
| Tool | What it does | Parameters |
|---|---|---|
search_docs | Search the documentation by keyword, best page first, each with its matching headings and paragraphs and the URL of their anchors. | query |
get_doc_page | Read a page of the documentation whole, as the markdown the site serves for it. | url |
A search answers 5 pages unless limit says otherwise, 20 at most. get_doc_page takes a URL from a result or a path such as /docs/quickstart. Both are reads.
organization
The organization toolset manages the organizations the token's user belongs to, as hotcodepush organization does from the terminal. list_organizations comes first in nearly every session.
| Tool | What it does | Parameters |
|---|---|---|
list_organizations | List the organizations the token's user belongs to, newest first. | none |
get_organization | Get one organization: its plan, its limits, its storage and its security settings. | organizationId |
create_organization | Create an organization with the token's user as its Owner. | name |
update_organization | Rename an organization, set its monthly spending cap, require two-factor authentication of every member, or restrict the console and the API to IP ranges or countries. | organizationId |
delete_organization | Delete an organization with everything under it, gone for every member at once and hard-deleted after seven days. | organizationId |
The two reads survive readonly=true and register for an API token. The three writes register for an OAuth access token alone, and the deletion takes the Owner role.
member
The member toolset manages who belongs to an organization and with which role, as hotcodepush member does from the terminal. A memberId is the membership, not the user, and list_members finds it by email with query.
| Tool | What it does | Parameters |
|---|---|---|
list_members | List the members of an organization, newest first, each with their user's email and name. | organizationId |
get_member | Get one member by the member id, with their user. | organizationId, memberId |
update_member | Change a member's role. owner transfers the ownership of the organization to that member and makes the caller an admin. | organizationId, memberId, role |
delete_member | Remove a member from an organization at once. The person keeps their account and loses the organization's apps. | organizationId, memberId |
The two reads survive readonly=true and register for an API token. The two writes are destructive, take the Owner or Admin role and register for an OAuth access token alone.
invitation
The invitation toolset invites people to an organization with a role, as hotcodepush invitation does from the terminal. The person receives a mail with the link to accept. An invitation never grants owner.
| Tool | What it does | Parameters |
|---|---|---|
list_invitations | List an organization's invitations, newest first, or the pending ones alone with status. | organizationId |
create_invitation | Invite an email address to the organization with a role. The person receives a mail with the link to accept. | organizationId, email |
delete_invitation | Withdraw a pending invitation. Its link stops working. | organizationId, invitationId |
The whole toolset registers for an OAuth access token alone. list_invitations is the read readonly=true keeps, delete_invitation is destructive, and inviting takes the Owner or Admin role.
audit-log
The audit-log toolset reads the organization's audit log: who released, revoked, paused or changed what, when and from where. What devices did is not here. That is get_update_statistics and the counters of get_release.
| Tool | What it does | Parameters |
|---|---|---|
list_audit_logs | List an organization's audit log, newest first: who did what to which object, when and from where, with the object's snapshot. | organizationId |
The tool is a read, stays under readonly=true and registers for an OAuth access token alone, and it needs a plan that includes the audit log.
sso-provider
The sso-provider toolset reads, verifies and removes an organization's single sign-on provider, as hotcodepush sso-provider does from the terminal. Setting the provider carries the identity provider's secret and stays the console's one-time setup.
| Tool | What it does | Parameters |
|---|---|---|
get_sso_provider | Get the single sign-on provider: its type, OIDC or SAML, the email domain whose users sign in through it, and whether the domain is verified. | organizationId |
delete_sso_provider | Remove the single sign-on provider: password, GitHub and Google sign-in work again for its members, and the domain is forgotten. | organizationId |
verify_sso_provider_domain | Look up the domain's TXT records for the verification token and mark the domain verified when one carries it. | organizationId |
The whole toolset registers for an OAuth access token alone. get_sso_provider is the read readonly=true keeps, and delete_sso_provider is destructive and takes the Owner or Admin role.
app
The app toolset manages the apps of an organization, as hotcodepush app does from the terminal. The list_apps tool resolves a name to the appId every channel, bundle, release and statistics tool takes. A project's hotcodepush.json carries the same id.
| Tool | What it does | Parameters |
|---|---|---|
list_apps | List the apps of an organization, newest first. query matches the name. | organizationId |
get_app | Get one app: its framework, its default channel and its channel link template. | appId |
create_app | Create an app in an organization with its default channel production, naming the framework it is built with. | organizationId, name, framework |
update_app | Rename an app, correct its framework, change the default channel, or set the channel link template for QR codes and deep links. | appId |
delete_app | Delete an app with its channels, bundles and releases, gone at once and hard-deleted after seven days. Devices keep what they run. | appId |
transfer_app | Move an app, with everything under it, to another organization the token's user is an Owner or Admin of. It keeps its id. | appId, organizationId |
The two reads survive readonly=true, and the other four tools register for an API token too. The writes delete_app and transfer_app are destructive, take the Owner or Admin role and register for an OAuth access token alone.
channel
The channel toolset manages the channels of an app, as hotcodepush channel does from the terminal. list_channels resolves a name to the channelId a release takes. The failure* fields set the auto-pause policy.
| Tool | What it does | Parameters |
|---|---|---|
list_channels | List the channels of an app, newest first, with their pause, protection, expiry and auto-pause policy. query matches the name. | appId |
get_channel | Get one channel, to check whether it is paused, protected or expired before releasing to it. | appId, channelId |
create_channel | Create a channel of an app, with its protection, discoverability, expiry and auto-pause policy. | appId, name |
update_channel | Rename a channel, change its protection, discoverability or expiry, or set its auto-pause policy. | appId, channelId |
delete_channel | Delete a channel at once with its release log. Devices on it keep what they run and receive nothing new. | appId, channelId |
pause_channel | Pause a channel: it serves nothing new, and devices keep what they have. | appId, channelId |
resume_channel | Resume a paused channel so it serves its releases again. | appId, channelId |
The two reads survive readonly=true, delete_channel is destructive, and every tool registers for an API token. A pause or a resume applies within about a minute, as How an update reaches a device describes.
bundle
The bundle toolset reads and deletes the bundles of an app. Uploading one stays with hotcodepush bundle upload or release create --path. list_bundles then finds it, and create_release releases it.
| Tool | What it does | Parameters |
|---|---|---|
list_bundles | List the bundles uploaded to an app, newest first, with their status, size, fingerprint and git facts, narrowed by number, version, platform, source, status or use. | appId |
get_bundle | Get one bundle with its signing facts and its deltas, one per base bundle its devices run. | appId, bundleId |
delete_bundle | Delete a bundle now, with the files no other bundle shares, to reclaim storage from a build that was never released. | appId, bundleId |
The two reads survive readonly=true, delete_bundle is destructive and refused for a bundle a release serves, and every tool registers for an API token.
release
The release toolset manages the releases of an app, as hotcodepush release does from the terminal. Bundles and releases is the concept. A create_release call takes exactly one of bundleId or fromChannelId, and the conditions of Target devices with attributes narrow its audience.
| Tool | What it does | Parameters |
|---|---|---|
list_releases | List the releases of an app, newest first, across its channels or of one channel, each with its counters. | appId |
get_release | Get one release with its bundle, its channel and its counters: the applied, confirmed and failed updates by reason. | appId, releaseId |
create_release | Release a ready bundle in a channel, or copy what another channel serves, with a rollout, a progression, the mandatory flag and conditions. | appId, channelId, bundleId or fromChannelId |
update_release | Edit a published release in place: the rollout percentage in either direction, the progression, the mandatory flag, the notes or the auto-pause policy. | appId, releaseId |
pause_release | Pause a release: the channel stops offering it, and devices on it keep it. | appId, releaseId |
resume_release | Resume a paused release so the channel offers it again. | appId, releaseId |
revoke_release | Revoke a release for good: devices on it move to the newest older release they qualify for, or back to the bundle embedded in their binary. | appId, releaseId |
create_rollback | Roll a channel back: a new release of the channel's previous bundle, or of the bundle a named release served, mandatory by default. | appId, channelId |
The two reads survive readonly=true, revoke_release is destructive and final, and every tool registers for an API token. A rollback is a release of its own with the next number, as Roll back a release lays out.
statistics
The statistics toolset reads the three statistics of an app, as hotcodepush statistics does from the terminal. The channelId parameter narrows the fleet and the updates to one channel, releaseId the updates to one release. The periodSince and periodUntil parameters set the period as UTC days.
| Tool | What it does | Parameters |
|---|---|---|
get_fleet_statistics | Get the fleet of an app or of one channel: the devices seen in the last thirty days, in total and by platform, OS version, binary version, SDK version, country and release. | appId |
get_update_statistics | Get the update statistics of an app for a period: per day the active devices, applied updates, failures and rollbacks, per release the adoption curve, and the failure and skip reasons. | appId |
get_usage_statistics | Get the usage of an app for a period: the monthly active devices and data transfer per month, and per day the update checks and the bytes served and downloaded. | appId |
All three are reads, stay under readonly=true and register for an API token, and the usage is what Billing and MAU bills.
audience
The audience toolset counts devices, as hotcodepush audience does from the terminal. It previews how many of a channel's active devices a release would reach before it exists, and counts the devices an existing release reaches. The preview takes the same conditions and rolloutPercent as create_release.
| Tool | What it does | Parameters |
|---|---|---|
get_channel_audience | Preview how many of a channel's active devices a release with the given conditions and rollout would reach, before it exists. | appId, channelId |
get_release_audience | Get the devices an existing release reaches: the channel's active devices its own conditions match, and the estimate at its rollout percentage. | appId, releaseId |
Both answer deviceCount, reachedDeviceCount, estimatedDeviceCount, the split by platform and binary version, and warnings such as fingerprint_unknown. Both are reads and register for an API token.
webhook
The webhook toolset manages the webhooks that post an organization's events, as hotcodepush webhook does from the terminal. Webhooks is the concept. Owners and Admins use it on a plan that includes webhooks, and a raw webhook's signing secret is answered once, by create_webhook.
| Tool | What it does | Parameters |
|---|---|---|
list_webhooks | List an organization's webhooks, newest first, to see where its events go and to find a webhook's id. | organizationId |
get_webhook | Get one webhook, to confirm its URL, events and app filter, or to see whether failed deliveries disabled it. | organizationId, webhookId |
create_webhook | Create a webhook that posts the organization's events to an https URL, as signed JSON or as a Slack, Discord or Teams message. | organizationId, events, format, name, url |
update_webhook | Rename a webhook or change its URL, events, app filter or whether it is enabled. The format and the secret never change. | organizationId, webhookId |
delete_webhook | Delete a webhook at once with its delivery log, so its receiver gets no further events. | organizationId, webhookId |
test_webhook | Send one sample event, webhook.test, through the normal delivery path and answer the receiver's response. | organizationId, webhookId |
The two reads survive readonly=true, and delete_webhook is destructive. Turning a webhook off for a while is update_webhook with isEnabled: false, which is reversible. No tool registers for an API token.
webhook-delivery
The webhook-delivery toolset reads a webhook's deliveries and sends one again, as hotcodepush webhook-delivery does from the terminal. A delivery is one event with its attempts and the receiver's last answer, kept for 30 days.
| Tool | What it does | Parameters |
|---|---|---|
list_webhook_deliveries | List a webhook's deliveries, newest first, to find out why a receiver missed events and which ones to send again. | organizationId, webhookId |
redeliver_webhook_delivery | Deliver a webhook's event again, once, and answer the receiver's response. A pending delivery is taken from the retries. | organizationId, webhookId, deliveryId |
The read survives readonly=true, and neither tool registers for an API token. A redelivery never counts toward the failures that disable the webhook, and the receiver may see the event twice.
telemetry-export
The telemetry-export toolset reads and tests an organization's telemetry export and sends its deliveries again, as hotcodepush telemetry-export does from the terminal. Telemetry export is the concept. Owners and Admins use it, and testing and redelivering need a paying plan.
| Tool | What it does | Parameters |
|---|---|---|
get_telemetry_export | Get the export's base URL, signals and header names, whether it is disabled and its count of failed deliveries in a row. | organizationId |
test_telemetry_export | Send one record per enabled signal through the normal delivery path and answer the settled deliveries. | organizationId |
list_telemetry_export_deliveries | List the export's deliveries, newest first, to find out why the vendor misses telemetry and which ones to send again. | organizationId |
redeliver_telemetry_export_delivery | Send a delivery again, once, and answer the vendor's response. A metrics document goes out with the current numbers. | organizationId, deliveryId |
The whole toolset registers for an OAuth access token alone, and the two reads survive readonly=true. Setting the export carries the vendor's credentials, so setting, switching and removing it stay with a person in the console or the CLI.
Last updated on