---
title: list_dashboards
description: Enumerate your dashboards newest-updated first, with cursor pagination. Parameters, return shape, the degraded folder state and scope.
updated: 2026-08-27
tools: [list_dashboards]
---

Lists your active dashboards, most-recently-updated first. Soft-deleted
dashboards are excluded. Pagination is cursor-based over
`(updated_at DESC, dashboard_id DESC)`.

Behaviour hints for clients: read-only, not open-world.

## Parameters

| Parameter | Type | Required | Notes |
|---|---|---|---|
| `limit` | integer | no | Page size, minimum 1, maximum 100. Default 50. |
| `cursor` | string | no | Opaque cursor from a prior response's `next_cursor`. Omit on the first call. |

Treat the cursor as opaque. Its format may change.

## Returns

```text
2 dashboards for the acme workspace (more available - pass next_cursor to paginate).

• revenue-overview - Revenue Overview
  URL: https://acme.dashies.ai/revenue-overview
  Updated: 2026-07-30T14:00:03Z · Chart: bar
  Tags: revenue, board

• churn-2026 - Churn 2026
  URL: https://acme.dashies.ai/churn-2026
  Updated: 2026-07-28T09:11:00Z

Next cursor: eyJ1cGRhdGVkX2F0Ijoi...

BEGIN_JSON
{"user_handle":"mickey","count":2,"has_more":true,"next_cursor":"eyJ1...","folder_path_degraded":false,"dashboards":[]}
END_JSON
```

**`user_handle` in the JSON block is YOUR handle, not the space**, and the two are
deliberately different values: the header line above names the workspace, while the
structured payload carries the handle of the account that made the call. Do not read one as
a copy of the other.

Empty and continuation states:

| State | Text |
|---|---|
| No dashboards at all | `No active dashboards for <label>.` |
| A cursor page past the end | `No more dashboards after cursor.` |
| A non-first page | `<n> dashboards for <label> (continuation page)` |

:::note{title="This tool never reports a folder"}
No entry carries a `Folder:` segment and `folder_path_degraded` is always `false`,
whatever a dashboard's folder actually is. Folder context is not surfaced over MCP:
the tool passes no folder-tree reader, so every path resolves to nothing and the
segment is never pushed.

Read `folder_path_degraded: false` as "not reported", never as "no folders". The
flag exists to distinguish a failed folder fetch from a dashboard with no folder,
and with no fetch to fail it can only take one value. The prose line it would have
accompanied,
`(Folder context unavailable for this response - dashboards may still be organised; retry to see folders.)`,
is likewise unreachable.

Folders are visible in the Dashies web app.
:::

## Errors

| Condition | Text |
|---|---|
| The read failed | `list failed: <msg>` |
| The read returned the wrong shape | `list failed: db returned non-array` |
| A cursor that cannot be decoded | A cursor-decode refusal naming the bad value |

## Scope

The connection lists the dashboards of the workspace it is authorized for, at
`<workspace>.dashies.ai/<slug>`. `folder_path` is always `null`: the MCP does not
read a workspace's folder tree, so it has no folder to name. The web app shows
the folders.

## Check it worked

Compare `count` against the number of bullets. If `has_more` is true, pass
`next_cursor` back and confirm the second page opens with the continuation
header rather than repeating the first page.
