Skip to main content
Glama

drive.apps.list

List a user's installed Drive apps, optionally filtered by MIME types or file extensions. Use it to discover which apps can open specific files.

Instructions

Lists a user's installed apps. For more information, see Return user info [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get.

Input Schema

NameRequiredDescriptionDefault
queryNoExtra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe.
paramsNoParameter map merged into the request; typed parameters win.
dry_runNoReturn the request that would be sent, without sending it.
body_fileNoRead the request body from this file ('-' for stdin) instead of building one from the parameters.
languageCodeNo[query parameter] A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/).
appFilterMimeTypesNo[query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types wil
appFilterExtensionsNo[query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extension

Output Schema

NameRequiredDescriptionDefault
kindNo
itemsNo
selfLinkNo
defaultAppIdsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / appFilterExtensions / default
      Added value: +""
    • changedInput schema / properties / appFilterExtensions / description
      Previous value: -"A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extension"New value: +"[query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extension"
    • addedInput schema / properties / appFilterMimeTypes / default
      Added value: +""
    • changedInput schema / properties / appFilterMimeTypes / description
      Previous value: -"A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types wil"New value: +"[query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types wil"
    • changedInput schema / properties / languageCode / description
      Previous value: -"A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/)."New value: +"[query parameter] A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "defaultAppIds": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "items": {
      +      "items": {
      +        "properties": {
      +          "authorized": {
      +            "type": "boolean"
      +          },
      +          "createInFolderTemplate": {
      +            "type": "string"
      +          },
      +          "createUrl": {
      +            "type": "string"
      +          },
      +          "hasDriveWideScope": {
      +            "type": "boolean"
      +          },
      +          "icons": {
      +            "items": {
      +              "properties": {
      +                "category": {
      +                  "type": "string"
      +                },
      +                "iconUrl": {
      +                  "type": "string"
      +                },
      +                "size": {
      +                  "type": "integer"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "installed": {
      +            "type": "boolean"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "longDescription": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "objectType": {
      +            "type": "string"
      +          },
      +          "openUrlTemplate": {
      +            "type": "string"
      +          },
      +          "primaryFileExtensions": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "primaryMimeTypes": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "productId": {
      +            "type": "string"
      +          },
      +          "productUrl": {
      +            "type": "string"
      +          },
      +          "secondaryFileExtensions": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "secondaryMimeTypes": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "shortDescription": {
      +            "type": "string"
      +          },
      +          "supportsCreate": {
      +            "type": "boolean"
      +          },
      +          "supportsImport": {
      +            "type": "boolean"
      +          },
      +          "supportsMultiOpen": {
      +            "type": "boolean"
      +          },
      +          "supportsOfflineCreate": {
      +            "type": "boolean"
      +          },
      +          "useByDefault": {
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "kind": {
      +      "type": "string"
      +    },
      +    "selfLink": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full load, yet it discloses nothing specific about this operation: no authorization/scope requirements, no statement about whether the list is scoped to the authenticated user, no result-shape or empty-result behavior. The only behavioral content ('HTTP GET', 'returns JSON', body_file mechanics) is boilerplate that applies to every tool in the family.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is correctly front-loaded, but the body is padded with transport-level filler ('HTTP GET', request-body construction, body_file fallback) that is irrelevant to a parameterless GET list and pushes the useful sibling pointer to the very end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the purpose is stated. However, for a zero-required-parameter listing tool with two filtering parameters and no annotations, the description leaves the agent without scoping, auth, or filter-usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains languageCode, appFilterMimeTypes, and appFilterExtensions. The description adds no meaning beyond the schema for any parameter, which is the baseline case when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource ('Lists a user's installed apps') and the closing line names the sibling over the same resource ('get'), so an agent can distinguish read-one from read-many. The generic transport boilerplate that follows dilutes but does not obscure the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only routing hint is 'Siblings over the same resource: get', which names an alternative without stating the condition that selects it. There is no guidance on when to prefer this over drive.apps.get, no prerequisites, and no note about which filter parameters to supply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools