# List Widgets — Mural

> List widgets in a mural. See the documentation

- Key: `mural-list-widgets`
- Type: Action (Read-only)
- Version: 0.0.1
- App: Mural (`mural`) — https://pipedream.com/apps/mural.md
- This page (HTML): https://pipedream.com/apps/mural/actions/list-widgets
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/mural/actions/list-widgets/list-widgets.mjs

## Description

List widgets in a mural. [See the documentation](https://developers.mural.co/public/reference/getmuralwidgets)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `workspaceId` | `string` | Yes | The ID of the Workspace. Options are loaded from the connected account. |
| `muralId` | `string` | Yes | The ID of the Mural. Options are loaded from the connected account. |
| `type` | `string[]` | No | Filter by widget types, passed as an array such as ["sticky notes", "images"]. When not specified, returns all widget types. |
| `parentId` | `string` | No | Return only widgets contained in this area. Must be the id of an area widget, as returned by this action when filtering on the areas type Options are loaded from the connected account. |
| `maxResults` | `integer` | No | The maximum number of results to return |

## 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": "mural",
      },
    },
  },
)

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: "mural-list-widgets",
  arguments: {
    workspaceId: "Workspace ID",
    muralId: "Mural 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: "mural-list-widgets",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    mural: { authProvisionId: "apn_xxxxxxx" },
    workspaceId: "Workspace ID",
    muralId: "Mural 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": "mural-list-widgets",
    "configured_props": {
      "mural": { "authProvisionId": "apn_xxxxxxx" },
      "workspaceId": "Workspace ID",
      "muralId": "Mural ID"
    }
  }'
```

---

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