# List Permissions — Google Drive

> List sharing permissions on a file or folder in Google Drive. Returns each permission's ID, type (user/group/domain/anyone), role (owner/writer/commenter/reader), and email address. Use Search Files first to find the file ID by name. Use…

- Key: `google_drive-list-permissions`
- Type: Action (Read-only)
- Version: 0.0.4
- App: Google Drive (`google_drive`) — https://pipedream.com/apps/google-drive.md
- This page (HTML): https://pipedream.com/apps/google-drive/actions/list-permissions
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/google_drive/actions/list-permissions/list-permissions.mjs

## Description

List sharing permissions on a file or folder in Google Drive. Returns each permission's ID, type (user/group/domain/anyone), role (owner/writer/commenter/reader), and email address. Use **Search Files** first to find the file ID by name. Use this tool when the user asks 'who has access to this file?' or needs to audit sharing. Pass permission IDs from this response to **Remove Sharing** to revoke access. [See the documentation](https://developers.google.com/drive/api/v3/reference/permissions/list)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `fileId` | `string` | Yes | The ID of the file or folder to list permissions for. Use Search Files to find the file ID by name. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "google_drive",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "google_drive-list-permissions",
  arguments: {
    fileId: "File ID",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_drive-list-permissions",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_drive: { authProvisionId: "apn_xxxxxxx" },
    fileId: "File ID",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "google_drive-list-permissions",
    "configured_props": {
      "google_drive": { "authProvisionId": "apn_xxxxxxx" },
      "fileId": "File ID"
    }
  }'
```

---

- App: https://pipedream.com/apps/google-drive.md · All apps: https://pipedream.com/apps
