---
title: get_dashboard
description: Read back one of your published dashboard files by path. Parameters, the base64 return shape, errors and workspace membership rules.
updated: 2026-08-04
tools: [get_dashboard]
---

Downloads one previously-published file by its `<slug>/<filename>` path. The
workspace is added server-side, as the host. The body comes back base64-encoded;
decode it before displaying.

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

## Parameters

| Parameter | Type | Required | Notes |
|---|---|---|---|
| `path` | string | yes | `<slug>` or `<slug>/<filename>`. A bare slug means `<slug>/index.html`. |

There is no `workspace` argument. The connection reads the dashboards of the
workspace it is authorized for.

## Returns

```text
Retrieved.
Path: _workspaces/b91d47c0-2ef8-4a53-8c60-1d7f9ab34e25/revenue-overview/index.html
Content-Type: text/html
Bytes: 48213
Body (base64): PCFET0NUWVBFIGh0bWw+...
```

**`Path` is the storage key, not the path you passed.** The server prepends
`_workspaces/<workspace-id>/` to it, which is where the object actually lives. That is a
different thing from the URL, where the workspace appears as the HOST and its SLUG rather
than its id.

## Errors

The shared [path rules](/reference/mcp-tools/conventions#paths-and-slugs), plus:

| Condition | Text |
|---|---|
| Membership recheck failed in transport | `Could not verify workspace access: <err>` |
| Not found | `404 not found: "<slug>/<file>" under the <workspace> workspace` |

The membership recheck **fails closed**: a transport failure refuses the read
rather than falling through to it.

## Scope

**One extra safeguard.** This tool reads storage directly from the
authorization's lock, so it re-verifies workspace membership on every
call rather than trusting the lock. Someone removed from a workspace gets the
same `404` as a missing file, so the refusal is not an existence oracle.

## Check it worked

Decode the returned body and compare its byte count against the `Bytes:` line. A
mismatch means the base64 was truncated somewhere in your client, not in the
response.
