# List Murals — Mural

> List murals in a workspace. See the documentation

- Key: `mural-list-murals`
- 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-murals
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/mural/actions/list-murals/list-murals.mjs

## Description

List murals in a workspace. [See the documentation](https://developers.mural.co/public/reference/getworkspacemurals)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `workspaceId` | `string` | Yes | The ID of the Workspace. Options are loaded from the connected account. |
| `sortBy` | `string` | No | Sort order for the murals. lastCreated returns the most recently created murals first, lastModified (for example, to find murals with recent activity) returns the most recently edited first, and oldest returns the least recently created first. |
| `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-murals",
  arguments: {
    workspaceId: "Workspace ID",
    sortBy: "Sort By",
  },
})
```

**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-murals",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    mural: { authProvisionId: "apn_xxxxxxx" },
    workspaceId: "Workspace ID",
    sortBy: "Sort By",
  },
})

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-murals",
    "configured_props": {
      "mural": { "authProvisionId": "apn_xxxxxxx" },
      "workspaceId": "Workspace ID",
      "sortBy": "Sort By"
    }
  }'
```

---

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