# MCP Tools Reference: Android Device Management MCP Server

## Tool: `get_application`

Gets application details for a given enterprise and application ID. Requires the resource name in the format: enterprises/{enterpriseId}/applications/{applicationId}.

The following sample demonstrate how to use `curl` to invoke the `get_application` MCP tool.

| Curl Request |
|---|
| ```bash curl --location 'https://androidmanagement.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "get_application", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' ``` |

## Input Schema

Request to get info about an application.

### GetApplicationRequest

| JSON representation |
|---|
| ``` { "name": string, "languageCode": string } ``` |

| Fields ||
|---|---|
| `name` | `string` The name of the application in the form `enterprises/{enterpriseId}/applications/{package_name}`. |
| `languageCode` | `string` The preferred language for localized application info, as a BCP47 tag (e.g. "en-US", "de"). If not specified the default language of the application will be used. |

## Output Schema

Information about an app.

### Application

| JSON representation |
|---|
| ``` { "name": string, "title": string, "permissions": [ { object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ApplicationPermission`) } ], "managedProperties": [ { object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ManagedProperty`) } ], "iconUrl": string, "smallIconUrl": string, "appTracks": [ { object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.AppTrackInfo`) } ], "author": string, "playStoreUrl": string, "distributionChannel": enum (`DistributionChannel`), "appPricing": enum (`AppPricing`), "description": string, "screenshotUrls": [ string ], "category": string, "recentChanges": string, "minAndroidSdkVersion": integer, "contentRating": enum (`ContentRating`), "updateTime": string, "availableCountries": [ string ], "features": [ enum (`AppFeature`) ], "appVersions": [ { object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.AppVersion`) } ], "fullDescription": string } ``` |

| Fields ||
|---|---|
| `name` | `string` The name of the app in the form enterprises/{enterprise}/applications/{package_name}. |
| `title` | `string` The title of the app. Localized. |
| `permissions[]` | ``object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ApplicationPermission`)`` The permissions required by the app. |
| `managedProperties[]` | ``object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ManagedProperty`)`` The set of managed properties available to be pre-configured for the app. |
| `iconUrl` | `string` A link to an image that can be used as an icon for the app. This image is suitable for use up to a pixel size of 512 x 512. |
| `smallIconUrl` | `string` A link to a smaller image that can be used as an icon for the app. This image is suitable for use up to a pixel size of 128 x 128. |
| `appTracks[]` | ``object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.AppTrackInfo`)`` Application tracks visible to the enterprise. |
| `author` | `string` The name of the author of the apps (for example, the app developer). |
| `playStoreUrl` | `string` A link to the (consumer) Google Play details page for the app. |
| `distributionChannel` | ``enum (`DistributionChannel`)`` How and to whom the package is made available. |
| `appPricing` | ``enum (`AppPricing`)`` Whether this app is free, free with in-app purchases, or paid. If the pricing is unspecified, this means the app is not generally available anymore (even though it might still be available to people who own it). |
| `description` | `string` The localized promotional description, if available. |
| `screenshotUrls[]` | `string` A list of screenshot links representing the app. |
| `category` | `string` The app category (e.g. RACING, SOCIAL, etc.) |
| `recentChanges` | `string` A localised description of the recent changes made to the app. |
| `minAndroidSdkVersion` | `integer` The minimum Android SDK necessary to run the app. |
| `contentRating` | ``enum (`ContentRating`)`` The content rating for this app. |
| `updateTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. The approximate time (within 7 days) the app was last published. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `availableCountries[]` | `string` The countries which this app is available in as per ISO 3166-1 alpha-2. |
| `features[]` | ``enum (`AppFeature`)`` Noteworthy features (if any) of this app. |
| `appVersions[]` | ``object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.AppVersion`)`` Versions currently available for this app. |
| `fullDescription` | `string` Full app description, if available. |

### ApplicationPermission

| JSON representation |
|---|
| ``` { "permissionId": string, "name": string, "description": string } ``` |

| Fields ||
|---|---|
| `permissionId` | `string` An opaque string uniquely identifying the permission. Not localized. |
| `name` | `string` The name of the permission. Localized. |
| `description` | `string` A longer description of the permission, providing more detail on what it affects. Localized. |

### ManagedProperty

| JSON representation |
|---|
| ``` { "key": string, "type": enum (`ManagedPropertyType`), "title": string, "description": string, "entries": [ { object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ManagedPropertyEntry`) } ], "defaultValue": value, "nestedProperties": [ { object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ManagedProperty`) } ] } ``` |

| Fields ||
|---|---|
| `key` | `string` The unique key that the app uses to identify the property, e.g. "com.google.android.gm.fieldname". |
| `type` | ``enum (`ManagedPropertyType`)`` The type of the property. |
| `title` | `string` The name of the property. Localized. |
| `description` | `string` A longer description of the property, providing more detail of what it affects. Localized. |
| `entries[]` | ``object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ManagedPropertyEntry`)`` For `CHOICE` or `MULTISELECT` properties, the list of possible entries. |
| `defaultValue` | ``value (`https://protobuf.dev/reference/protobuf/google.protobuf#value` format)`` The default value of the property. `BUNDLE_ARRAY` properties don't have a default value. |
| `nestedProperties[]` | ``object (`https://developers.google.com/android/management/reference/mcp/get_application#Output.Schema.ManagedProperty`)`` For `BUNDLE_ARRAY` properties, the list of nested properties. A `BUNDLE_ARRAY` property is at most two levels deep. |

### ManagedPropertyEntry

| JSON representation |
|---|
| ``` { "value": string, "name": string } ``` |

| Fields ||
|---|---|
| `value` | `string` The machine-readable value of the entry, which should be used in the configuration. Not localized. |
| `name` | `string` The human-readable name of the value. Localized. |

### Value

| JSON representation |
|---|
| ``` { // Union field `kind` can be only one of the following: "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array // End of list of possible types for union field `kind`. } ``` |

| Fields ||
|---|---|
| Union field `kind`. The kind of value. `kind` can be only one of the following: ||
| `nullValue` | `null` Represents a null value. |
| `numberValue` | `number` Represents a double value. |
| `stringValue` | `string` Represents a string value. |
| `boolValue` | `boolean` Represents a boolean value. |
| `structValue` | ``object (`https://protobuf.dev/reference/protobuf/google.protobuf#struct` format)`` Represents a structured value. |
| `listValue` | ``array (`https://protobuf.dev/reference/protobuf/google.protobuf#list-value` format)`` Represents a repeated `Value`. |

### Struct

| JSON representation |
|---|
| ``` { "fields": { string: value, ... } } ``` |

| Fields ||
|---|---|
| `fields` | ``map (key: string, value: value (`https://protobuf.dev/reference/protobuf/google.protobuf#value` format))`` Unordered map of dynamically typed values. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |

### FieldsEntry

| JSON representation |
|---|
| ``` { "key": string, "value": value } ``` |

| Fields ||
|---|---|
| `key` | `string` |
| `value` | ``value (`https://protobuf.dev/reference/protobuf/google.protobuf#value` format)`` |

### ListValue

| JSON representation |
|---|
| ``` { "values": [ value ] } ``` |

| Fields ||
|---|---|
| `values[]` | ``value (`https://protobuf.dev/reference/protobuf/google.protobuf#value` format)`` Repeated field of dynamically typed values. |

### AppTrackInfo

| JSON representation |
|---|
| ``` { "trackId": string, "trackAlias": string } ``` |

| Fields ||
|---|---|
| `trackId` | `string` The unmodifiable unique track identifier, taken from the `releaseTrackId` in the URL of the Play Console page that displays the app's track information. |
| `trackAlias` | `string` The track name associated with the `trackId`, set in the Play Console. The name is modifiable from Play Console. |

### Timestamp

| JSON representation |
|---|
| ``` { "seconds": string, "nanos": integer } ``` |

| Fields ||
|---|---|
| `seconds` | `string (https://developers.google.com/discovery/v1/type-format format)` Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
| `nanos` | `integer` Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |

### AppVersion

| JSON representation |
|---|
| ``` { "versionString": string, "versionCode": integer, "trackIds": [ string ], "production": boolean } ``` |

| Fields ||
|---|---|
| `versionString` | `string` The string used in the Play store by the app developer to identify the version. The string is not necessarily unique or localized (for example, the string could be "1.4"). |
| `versionCode` | `integer` Unique increasing identifier for the app version. |
| `trackIds[]` | `string` Track identifiers that the app version is published in. This does not include the production track (see production instead). |
| `production` | `boolean` If the value is True, it indicates that this version is a production track. |

### Tool Annotations

Destructive Hint: ❌ \| Idempotent Hint: ✅ \| Read Only Hint: ✅ \| Open World Hint: ❌