AgentDBDocs

Views and dashboards

Saved views, rendered and published views, live dashboards.

Start with: views_create, views_run, dashboards_create, views_publish.

43 operations. Discover them from an agent with agentdb_capabilities {"category": "views_dashboards"}.

#dashboard_sites.complete

experimental

Finish a version: index.html required, manifest.json data sources checked; ready or failed with every problem

Experimental: may change before 2.0.

REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/complete scope records:write
ParameterInTypeRequiredDescription
wspathstringyesstring
sitepathstringyesstring
versionpathstringyesstring

Example

REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/<site>/versions/<version>/complete" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#dashboard_sites.put_file

experimental

Upload one file's raw bytes (application/octet-stream) into an uploading version

Experimental: may change before 2.0.

REST
PUT /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/files/* scope records:write
ParameterInTypeRequiredDescription
wspathstringyesstring
sitepathstringyesstring
versionpathstringyesstring

Example

REST
curl -s -X PUT "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/<site>/versions/<version>/files/*" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#dashboard_sites.put_zip

experimental

Upload the package as one zip (application/octet-stream); ?complete=false to add more files after

Experimental: may change before 2.0.

REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/zip scope records:write
ParameterInTypeRequiredDescription
wspathstringyesstring
sitepathstringyesstring
versionpathstringyesstring

Example

REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/<site>/versions/<version>/zip" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#dashboard_sites_create

experimental added in 1.0.0-rc.12 changes data

Create a CUSTOM dashboard: a website YOU build (HTML, CSS, JS, images, fonts) that AgentDB hosts at its own secure address https://<id>.<dashboard domain>/ with live, read-only data and no API key in the page. Sharing mode: only_me (default: only the owner, signed in with two-step sign-in), link_password (anyone with the URL and a shared password; you may set it), people (invited email addresses, no account needed; dashboard_sites_invite), link (anyone with the URL; on a dashboard with workspace data a person must approve it). Nothing is live until you upload (dashboard_sites_upload) and publish (dashboard_sites_publish). For a team: link_password and tell the user to share the password separately, or people and invite them. For a quick panel dashboard without your own HTML, use dashboards_create instead. Example: {"title": "Sales team dashboard", "mode": "link_password", "password": "violet harbour lantern 42"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_create
REST
POST /v1/workspaces/{ws}/dashboard-sites scope records:write
CLI
agentdb dashboard-sites create

Arguments

ArgumentTypeRequiredDescription
titlestringyesTitle shown to people. (min length 1, max length 100)
mode"only_me" | "link" | "link_password" | "people"string, one of: only_me, link, link_password, people
passwordstringstring, 10–200 characters
expires_in_daysinteger | nullinteger | null
expires_atstringstring
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_create",
  "arguments": {
    "title": "Sales team dashboard",
    "mode": "link_password",
    "password": "violet harbour lantern 42"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_create",
    "arguments": {
      "title": "Sales team dashboard",
      "mode": "link_password",
      "password": "violet harbour lantern 42"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Sales team dashboard","mode":"link_password","password":"violet harbour lantern 42"}'
CLI
agentdb dashboard-sites create [options]

#dashboard_sites_delete

experimental added in 1.0.0-rc.12 changes data destructive

Delete a custom dashboard and all its stored files (the audit trail stays). Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_delete
REST
DELETE /v1/workspaces/{ws}/dashboard-sites/{site} scope records:write
CLI
agentdb dashboard-sites delete

Arguments

ArgumentTypeRequiredDescription
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_delete",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_delete",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567"
    }
  }
}
REST
curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboard-sites delete [options] <site_id>

#dashboard_sites_get

experimental added in 1.0.0-rc.12 read-only

One custom dashboard: its versions (status uploading | ready | published | failed | discarded, files with size and sha256, data sources, and every validation problem with path and reason) and recent audit events. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_get
REST
GET /v1/workspaces/{ws}/dashboard-sites/{site} scope records:read
CLI
agentdb dashboard-sites get

Arguments

ArgumentTypeRequiredDescription
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_get",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_get",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboard-sites get [options] <site_id>

#dashboard_sites_invite

experimental added in 1.0.0-rc.12 changes data

Invite people to view a custom dashboard in mode people: each address gets a personal, single-use link by email (valid 7 days, valid_days 1-30). They need no AgentDB account and see only this dashboard. The owner gets an email listing who you invited. Example: {"site_id": "dsite-…", "emails": ["ana@example.test"]} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_invite
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/viewers scope records:write
CLI
agentdb dashboard-sites invite

Arguments

ArgumentTypeRequiredDescription
emailsstring[]yesstring[], up to 50 items
valid_daysintegerinteger, 1–30
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_invite",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567",
    "emails": [
      "ana@example.test",
      "bo@example.test"
    ]
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_invite",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567",
      "emails": [
        "ana@example.test",
        "bo@example.test"
      ]
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/viewers" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"emails":["ana@example.test","bo@example.test"]}'
CLI
agentdb dashboard-sites invite [options] <site_id> <emails...>

#dashboard_sites_list

experimental added in 1.0.0-rc.12 read-only

List the custom dashboards of the workspace: id, title, url, access, status (live | unpublished | revoked | expired), current_version, expiry. Example: {} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_list
REST
GET /v1/workspaces/{ws}/dashboard-sites scope records:read
CLI
agentdb dashboard-sites list

Arguments

ArgumentTypeRequiredDescription
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_list",
  "arguments": {}
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_list",
    "arguments": {}
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboard-sites list [options]

#dashboard_sites_pause

experimental added in 1.0.0-rc.13 changes data

Pause a custom dashboard: its address shows a neutral "paused" page, no data is served and every session ends. dashboard_sites_resume brings it back. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_pause
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/pause scope records:write
CLI
agentdb dashboard-sites pause

Arguments

ArgumentTypeRequiredDescription
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_pause",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_pause",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/pause" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboard-sites pause [options] <site_id>

#dashboard_sites_preview

experimental added in 1.0.0-rc.12 changes data

An owner-only, single-use preview link (valid 10 minutes) of a ready version, before you publish it. Give it only to the person who asked. Example: {"site_id": "dsite-…", "version": 2} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_preview
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/preview scope records:write

Arguments

ArgumentTypeRequiredDescription
versionintegeryesThe current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1)
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_preview",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567",
    "version": 2
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_preview",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567",
      "version": 2
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/versions/2/preview" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#dashboard_sites_publish

experimental added in 1.0.0-rc.12 changes data

Make a ready version live at once (an atomic switch; viewers never see a mix). The access policy stays as it is. Publish an older ready version to roll back. Returns the url. Example: {"site_id": "dsite-…", "version": 2} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_publish
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/publish scope records:write
CLI
agentdb dashboard-sites publish

Arguments

ArgumentTypeRequiredDescription
versionintegeryesThe current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1)
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_publish",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567",
    "version": 2
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_publish",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567",
      "version": 2
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/publish" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"version":2}'
CLI
agentdb dashboard-sites publish [options] <site_id>

#dashboard_sites_resume

experimental added in 1.0.0-rc.13 changes data

Resume a paused custom dashboard; viewers sign in again under its sharing mode. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_resume
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/resume scope records:write
CLI
agentdb dashboard-sites resume

Arguments

ArgumentTypeRequiredDescription
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_resume",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_resume",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/resume" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboard-sites resume [options] <site_id>

#dashboard_sites_revoke

experimental added in 1.0.0-rc.12 changes data destructive

Revoke a custom dashboard for good: the URL, open pages and every viewer session stop at once. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_revoke
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/revoke scope records:write
CLI
agentdb dashboard-sites revoke

Arguments

ArgumentTypeRequiredDescription
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_revoke",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_revoke",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/revoke" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboard-sites revoke [options] <site_id>

#dashboard_sites_revoke_viewer

experimental added in 1.0.0-rc.12 changes data destructive

Remove one invited viewer (by viewer_id or email): only that person's sessions and links end. Example: {"site_id": "dsite-…", "email": "bo@example.test"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_revoke_viewer
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/viewers/revoke scope records:write
CLI
agentdb dashboard-sites revoke-viewer

Arguments

ArgumentTypeRequiredDescription
viewer_idstringstring, up to 64 characters
emailstringstring, up to 254 characters
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_revoke_viewer",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567",
    "email": "bo@example.test"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_revoke_viewer",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567",
      "email": "bo@example.test"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/viewers/revoke" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email":"bo@example.test"}'
CLI
agentdb dashboard-sites revoke-viewer [options] <site_id>

#dashboard_sites_share_get

experimental added in 1.0.0-rc.12 read-only

Who can open a custom dashboard: mode with a plain-English explanation, URL, whether a password is set, expiry and the invited viewers with their status. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_share_get
REST
GET /v1/workspaces/{ws}/dashboard-sites/{site}/share scope records:read

Arguments

ArgumentTypeRequiredDescription
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_share_get",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_share_get",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/share" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#dashboard_sites_share_set

experimental added in 1.0.0-rc.12 changes data

Change who can open a custom dashboard. mode: only_me | link_password (+ password, 10-200 characters) | people (then dashboard_sites_invite) | link. A mode change ends every open viewer session; a new password ends every password session. Setting link on a dashboard that reads workspace data answers APPROVAL_REQUIRED with decide_in: a signed-in person approves it in the AgentHub; give them that link. Expiry: expires_in_days (null = none), expires_at or clear_expiry. With link_password, give the user the URL and tell them to share the password separately. Example: {"site_id": "dsite-…", "mode": "link_password", "password": "violet harbour lantern 42"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_share_set
REST
PUT /v1/workspaces/{ws}/dashboard-sites/{site}/share scope records:write

Arguments

ArgumentTypeRequiredDescription
mode"only_me" | "link" | "link_password" | "people"string, one of: only_me, link, link_password, people
passwordstringstring, 10–200 characters
expires_in_daysinteger | nullinteger | null
expires_atstringstring
clear_expirybooleanboolean
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_share_set",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567",
    "mode": "link_password",
    "password": "violet harbour lantern 42",
    "expires_in_days": 30
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_share_set",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567",
      "mode": "link_password",
      "password": "violet harbour lantern 42",
      "expires_in_days": 30
    }
  }
}
REST
curl -s -X PUT "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/share" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"link_password","password":"violet harbour lantern 42","expires_in_days":30}'

#dashboard_sites_unpublish

experimental added in 1.0.0-rc.12 changes data

Take a custom dashboard offline (its URL answers "not found"); versions are kept and can be published again. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_unpublish
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/unpublish scope records:write
CLI
agentdb dashboard-sites unpublish

Arguments

ArgumentTypeRequiredDescription
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_unpublish",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_unpublish",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/unpublish" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboard-sites unpublish [options] <site_id>

#dashboard_sites_update

experimental added in 1.0.0-rc.12 changes data

Rename a custom dashboard. Sharing: dashboard_sites_share_set. Content: upload and publish a new version. Example: {"site_id": "dsite-…", "title": "Sales (EUR)"} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_update
REST
PATCH /v1/workspaces/{ws}/dashboard-sites/{site} scope records:write

Arguments

ArgumentTypeRequiredDescription
titlestringyesTitle shown to people. (min length 1, max length 100)
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_update",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567",
    "title": "Sales (EUR)"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_update",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567",
      "title": "Sales (EUR)"
    }
  }
}
REST
curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Sales (EUR)"}'

#dashboard_sites_upload

experimental added in 1.0.0-rc.12 changes data

Upload a version of a custom dashboard: files as base64 (small files; the request stays under ~1 MB) or the whole package as zip_base64. Without version a new version starts; pass version to add files to an uploading version and complete: false to keep it open. Rules: index.html required; types html css js mjs json svg png jpg jpeg webp gif ico woff2 woff txt; at most 200 files and 10 MB; plain relative paths (no .., absolute paths, backslashes or hidden files). manifest.json declares read-only data sources: {"data": {"open_deals": {"aggregate": {...records_aggregate...}}, "latest": {"query": {...records_query, limit <= 200...}, "fields": ["name", "amount"]}}}; the page fetches /_data/<name> on its own origin (?since=<marker>&wait=1 long-polls). The page may only load files from its own package (strict CSP: no outside scripts, fonts or API calls; bundle libraries). Any problem fails the version, lists every problem (details.errors: path and reason) and removes its files; the live version is never touched. Bigger packages: the REST upload (PUT raw files or a zip). Example: {"site_id": "dsite-…", "files": [{"path": "index.html", "content_base64": "…"}]} Experimental: may change before 2.0.

Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.

MCP tool
dashboard_sites_upload
REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versions scope records:write

Arguments

ArgumentTypeRequiredDescription
versionintegerThe current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1)
filesobject[]object[], up to 200 items
zip_base64stringstring, up to 955742 characters
completebooleanboolean
site_idstringyesCustom dashboard id (dsite-...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboard_sites_upload",
  "arguments": {
    "site_id": "dsite-0123456789abcdef01234567",
    "files": [
      {
        "path": "index.html",
        "content_base64": "PCFkb2N0eXBlIGh0bWw+PHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+"
      },
      {
        "path": "app.js",
        "content_base64": "ZmV0Y2goIi9fZGF0YS9vcGVuX2RlYWxzIik="
      },
      {
        "path": "manifest.json",
        "content_base64": "eyJkYXRhIjp7fX0="
      }
    ]
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboard_sites_upload",
    "arguments": {
      "site_id": "dsite-0123456789abcdef01234567",
      "files": [
        {
          "path": "index.html",
          "content_base64": "PCFkb2N0eXBlIGh0bWw+PHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+"
        },
        {
          "path": "app.js",
          "content_base64": "ZmV0Y2goIi9fZGF0YS9vcGVuX2RlYWxzIik="
        },
        {
          "path": "manifest.json",
          "content_base64": "eyJkYXRhIjp7fX0="
        }
      ]
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/versions" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"files":[{"path":"index.html","content_base64":"PCFkb2N0eXBlIGh0bWw+PHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+"},{"path":"app.js","content_base64":"ZmV0Y2goIi9fZGF0YS9vcGVuX2RlYWxzIik="},{"path":"manifest.json","content_base64":"eyJkYXRhIjp7fX0="}]}'

#dashboards.page

stable

Hosted dashboard page (/d/<id>#<token>; the token stays in the URL fragment)

REST
GET /d/{dashboard} no authentication
ParameterInTypeRequiredDescription
dashboardpathstringyesstring

Example

REST
curl -s "https://app.agentdb.link/d/<dashboard>"

#dashboards.session

stable

Trade a dashboard password for a 12 h viewer session

REST
POST /v1/dashboards/{token}/session no authentication
ParameterInTypeRequiredDescription
tokenpathstringyesstring

Example

REST
curl -s -X POST "https://app.agentdb.link/v1/dashboards/<token>/session"

#dashboards.view

stable

Dashboard data (public link; ?since=<marker>&wait=1 long-polls)

REST
GET /v1/dashboards/{token} no authentication
ParameterInTypeRequiredDescription
tokenpathstringyesstring

Example

REST
curl -s "https://app.agentdb.link/v1/dashboards/<token>"

#dashboards_create

stable added in 1.0.0-beta.2 changes data

Create a LIVE read-only dashboard: fixed panels of server-side totals (aggregate, as in records_aggregate) or short lists (query, max 50 rows). Returns page_url (a page AgentDB hosts: live, phone-friendly, light/dark; the part after # is the access token) and data_url (JSON, no API key, CORS open) for a page YOU design, with usage notes and a ready fetch loop (long-poll ?since=<marker>&wait=1). Hosted page: display number | bar | line | table, width (1-4 columns), metric, format {style: number|integer|percent|currency|compact|date|datetime|month|text, currency, decimals}, column_formats for tables, layout {columns 1-4, rows: [[panel indexes]]}. All text is shown as plain text; no HTML or scripts. Never put an API key in a page. Sharing: access link (default) | password (+ password; the viewer types it, never hard-code it) | key (server-side apps only, no hosted page). New link dashboards expire after 90 days: pass expires_in_days (1-365, or null for none) or expires_in_hours/expires_at. Tell the user who can read it; dashboards_rotate_token replaces the link, dashboards_revoke stops it. Example: {"title": "Sales", "panels": [{"title": "Won by month", "display": "line", "aggregate": {"object": "deal", "group_by": [{"field": "closed_on", "bucket": "month"}], "metrics": [{"op": "sum", "field": "amount"}]}, "format": {"style": "currency", "currency": "EUR"}}]}

MCP tool
dashboards_create
REST
POST /v1/workspaces/{ws}/dashboards scope records:write
CLI
agentdb dashboards create

Arguments

ArgumentTypeRequiredDescription
titlestringyesTitle shown to people. (min length 1, max length 100)
access"link" | "password" | "key"string, one of: link, password, key
passwordstringstring, 10–200 characters
expires_atstringstring
expires_in_hoursintegerinteger, 1–8760
expires_in_daysinteger | nullinteger | null
allowed_originsstring[]string[], up to 10 items
panelsobject[]yesThe panels: each one a title and a query or aggregate (1 to 12). (max 12 items)
layoutobjectobject
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboards_create",
  "arguments": {
    "title": "Sales",
    "panels": [
      {
        "title": "Won this year",
        "aggregate": {
          "object": "deal",
          "where": {
            "all": [
              {
                "field": "stage",
                "op": "eq",
                "value": "won"
              }
            ]
          },
          "metrics": [
            {
              "op": "sum",
              "field": "amount"
            }
          ]
        },
        "format": {
          "style": "currency",
          "currency": "EUR"
        }
      },
      {
        "title": "Won by month",
        "display": "line",
        "width": 2,
        "aggregate": {
          "object": "deal",
          "group_by": [
            {
              "field": "closed_on",
              "bucket": "month"
            }
          ],
          "metrics": [
            {
              "op": "sum",
              "field": "amount"
            }
          ]
        },
        "format": {
          "style": "compact"
        }
      },
      {
        "title": "Latest deals",
        "query": {
          "object": "deal",
          "sort": [
            {
              "field": "created_at",
              "order": "desc"
            }
          ],
          "limit": 10
        },
        "fields": [
          "name",
          "stage",
          "amount"
        ],
        "column_formats": {
          "amount": {
            "style": "currency",
            "currency": "EUR"
          }
        }
      }
    ],
    "layout": {
      "columns": 2,
      "rows": [
        [
          0
        ],
        [
          1
        ],
        [
          2
        ]
      ]
    }
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboards_create",
    "arguments": {
      "title": "Sales",
      "panels": [
        {
          "title": "Won this year",
          "aggregate": {
            "object": "deal",
            "where": {
              "all": [
                {
                  "field": "stage",
                  "op": "eq",
                  "value": "won"
                }
              ]
            },
            "metrics": [
              {
                "op": "sum",
                "field": "amount"
              }
            ]
          },
          "format": {
            "style": "currency",
            "currency": "EUR"
          }
        },
        {
          "title": "Won by month",
          "display": "line",
          "width": 2,
          "aggregate": {
            "object": "deal",
            "group_by": [
              {
                "field": "closed_on",
                "bucket": "month"
              }
            ],
            "metrics": [
              {
                "op": "sum",
                "field": "amount"
              }
            ]
          },
          "format": {
            "style": "compact"
          }
        },
        {
          "title": "Latest deals",
          "query": {
            "object": "deal",
            "sort": [
              {
                "field": "created_at",
                "order": "desc"
              }
            ],
            "limit": 10
          },
          "fields": [
            "name",
            "stage",
            "amount"
          ],
          "column_formats": {
            "amount": {
              "style": "currency",
              "currency": "EUR"
            }
          }
        }
      ],
      "layout": {
        "columns": 2,
        "rows": [
          [
            0
          ],
          [
            1
          ],
          [
            2
          ]
        ]
      }
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Sales","panels":[{"title":"Won this year","aggregate":{"object":"deal","where":{"all":[{"field":"stage","op":"eq","value":"won"}]},"metrics":[{"op":"sum","field":"amount"}]},"format":{"style":"currency","currency":"EUR"}},{"title":"Won by month","display":"line","width":2,"aggregate":{"object":"deal","group_by":[{"field":"closed_on","bucket":"month"}],"metrics":[{"op":"sum","field":"amount"}]},"format":{"style":"compact"}},{"title":"Latest deals","query":{"object":"deal","sort":[{"field":"created_at","order":"desc"}],"limit":10},"fields":["name","stage","amount"],"column_formats":{"amount":{"style":"currency","currency":"EUR"}}}],"layout":{"columns":2,"rows":[[0],[1],[2]]}}'
CLI
agentdb dashboards create [options]

#dashboards_get

stable added in 1.0.0-rc.12 read-only

One dashboard's full definition (spec: title, panels, layout), its current version and the last 10 versions (history). Pass version to read one stored version. Read it before dashboards_update. Example: {"dashboard_id": "dsh_…", "version": 2}

MCP tool
dashboards_get
REST
GET /v1/workspaces/{ws}/dashboards/{dashboard} scope records:read

Arguments

ArgumentTypeRequiredDescription
versionintegerThe current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1)
dashboard_idstringyesDashboard id (dsh_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboards_get",
  "arguments": {
    "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboards_get",
    "arguments": {
      "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

#dashboards_list

stable added in 1.0.0-beta.2 read-only

List the dashboards of the workspace: id, title, panels, version, access, expiry, status, created_by (key:<id>) with created_by_label ("…, revoked key" when the creating key is gone; dashboards belong to the workspace), created_at, and access_stats (last_accessed_at, views per day, counts only). Links are only shown at creation and rotation. Example: {}

MCP tool
dashboards_list
REST
GET /v1/workspaces/{ws}/dashboards scope records:read
CLI
agentdb dashboards list

Arguments

ArgumentTypeRequiredDescription
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboards_list",
  "arguments": {}
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboards_list",
    "arguments": {}
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboards list [options]

#dashboards_revoke

stable added in 1.0.0-beta.2 changes data destructive

Revoke a dashboard immediately: its page and data link stop, including open pages and password sessions. The data is not changed. Example: {"dashboard_id": "dsh_…"}

MCP tool
dashboards_revoke
REST
DELETE /v1/workspaces/{ws}/dashboards/{dashboard} scope records:write
CLI
agentdb dashboards revoke

Arguments

ArgumentTypeRequiredDescription
dashboard_idstringyesDashboard id (dsh_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

dashboard_id comes from dashboards_create or dashboards_list.

MCP
{
  "tool": "dashboards_revoke",
  "arguments": {
    "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboards_revoke",
    "arguments": {
      "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
    }
  }
}
REST
curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb dashboards revoke [options] <dashboard_id>

#dashboards_rotate_token

stable added in 1.0.0-rc.12 changes data

Give a dashboard a new link: returns a new page_url and data_url for the same id, panels and settings. The old link stops at once, including open pages and password sessions. Use it when a link was shared too widely. Example: {"dashboard_id": "dsh_…"}

MCP tool
dashboards_rotate_token
REST
POST /v1/workspaces/{ws}/dashboards/{dashboard}/rotate-token scope records:write

Arguments

ArgumentTypeRequiredDescription
dashboard_idstringyesDashboard id (dsh_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "dashboards_rotate_token",
  "arguments": {
    "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboards_rotate_token",
    "arguments": {
      "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa/rotate-token" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#dashboards_update

stable added in 1.0.0-beta.3 changes data

Change a dashboard; the id and link stay the same. Content: title, panels (replaces all) and/or layout (null = automatic) need the current version (from dashboards_get or dashboards_list); a different version answers VERSION_CONFLICT: re-read, re-apply, retry. The last 10 versions are kept. Sharing (no version needed): access ("link", "password" with a new password, or "key"), expires_at / expires_in_hours / expires_in_days (null or clear_expiry to remove), allowed_origins (clear_allowed_origins to remove). A new password or access mode ends open viewer sessions. Example: {"dashboard_id": "dsh_…", "version": 3, "layout": {"columns": 3, "rows": [[0, 1, 2]]}}

MCP tool
dashboards_update
REST
PATCH /v1/workspaces/{ws}/dashboards/{dashboard} scope records:write
CLI
agentdb dashboards update

Arguments

ArgumentTypeRequiredDescription
access"link" | "password" | "key"string, one of: link, password, key
passwordstringstring, 10–200 characters
expires_atstringstring
expires_in_hoursintegerinteger, 1–8760
expires_in_daysinteger | nullinteger | null
allowed_originsstring[]string[], up to 10 items
clear_expirybooleanboolean
clear_allowed_originsbooleanboolean
versionintegerThe current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1)
titlestringTitle shown to people. (min length 1, max length 100)
panelsobject[]object[], up to 12 items
layoutobject | nullobject | null
dashboard_idstringyesDashboard id (dsh_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

dashboard_id comes from dashboards_create or dashboards_list.

MCP
{
  "tool": "dashboards_update",
  "arguments": {
    "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa",
    "version": 3,
    "title": "Sales (EUR)",
    "layout": {
      "columns": 3,
      "rows": [
        [
          0,
          1,
          2
        ]
      ]
    },
    "expires_in_days": 30
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "dashboards_update",
    "arguments": {
      "dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa",
      "version": 3,
      "title": "Sales (EUR)",
      "layout": {
        "columns": 3,
        "rows": [
          [
            0,
            1,
            2
          ]
        ]
      },
      "expires_in_days": 30
    }
  }
}
REST
curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"version":3,"title":"Sales (EUR)","layout":{"columns":3,"rows":[[0,1,2]]},"expires_in_days":30}'
CLI
agentdb dashboards update [options] <dashboard_id>

#views.published.revoke

stable

Revoke a published view at once

REST
DELETE /v1/workspaces/{ws}/published-views/{published} scope records:write
ParameterInTypeRequiredDescription
wspathstringyesstring
publishedpathstringyesstring

Example

REST
curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/published-views/<published>" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#views.published.session

stable

Trade a published view's password for a 12 h viewer session

REST
POST /v1/published-views/{token}/session no authentication
ParameterInTypeRequiredDescription
tokenpathstringyesstring

Example

REST
curl -s -X POST "https://app.agentdb.link/v1/published-views/<token>/session"

#views.published.view

stable

A published view's data (public link, read-only)

REST
GET /v1/published-views/{token} no authentication
ParameterInTypeRequiredDescription
tokenpathstringyesstring

Example

REST
curl -s "https://app.agentdb.link/v1/published-views/<token>"

#views_create

stable added in 1.0.0-rc.6 changes data

Save a named query (where, sort, fields projection, limit) on one object. visibility private (you) or workspace (everyone, each with their own permissions). Field renames keep views working.

MCP tool
views_create
REST
POST /v1/workspaces/{ws}/views scope records:write
CLI
agentdb views create

Arguments

ArgumentTypeRequiredDescription
namestringyesView name: lowercase letters, digits and _.
objectstringyesObject type name, e.g. contact.
descriptionstringstring, up to 1000 characters
definitionobjectyesWhat the view shows: filter, sort, columns and layout.
visibility"private" | "workspace"string, one of: private, workspace, default "private"
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_create",
  "arguments": {
    "name": "open_deals",
    "object": "deal",
    "definition": {
      "where": {
        "all": [
          {
            "field": "stage",
            "op": "eq",
            "value": "open"
          }
        ]
      },
      "sort": [
        {
          "field": "amount",
          "order": "desc"
        }
      ]
    },
    "visibility": "workspace"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_create",
    "arguments": {
      "name": "open_deals",
      "object": "deal",
      "definition": {
        "where": {
          "all": [
            {
              "field": "stage",
              "op": "eq",
              "value": "open"
            }
          ]
        },
        "sort": [
          {
            "field": "amount",
            "order": "desc"
          }
        ]
      },
      "visibility": "workspace"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"open_deals","object":"deal","definition":{"where":{"all":[{"field":"stage","op":"eq","value":"open"}]},"sort":[{"field":"amount","order":"desc"}]},"visibility":"workspace"}'
CLI
agentdb views create [options]

#views_delete

stable added in 1.0.0-rc.6 changes data destructive

Delete a saved view.

MCP tool
views_delete
REST
DELETE /v1/workspaces/{ws}/views/{view} scope records:write
CLI
agentdb views delete

Arguments

ArgumentTypeRequiredDescription
viewstringyesView id (viw_...) or name
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_delete",
  "arguments": {
    "view": "open_deals"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_delete",
    "arguments": {
      "view": "open_deals"
    }
  }
}
REST
curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
CLI
agentdb views delete [options] <view>

#views_get

stable added in 1.0.0-rc.6 read-only

One saved view with its version history.

MCP tool
views_get
REST
GET /v1/workspaces/{ws}/views/{view} scope records:read
CLI
agentdb views get

Arguments

ArgumentTypeRequiredDescription
viewstringyesView id (viw_...) or name
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_get",
  "arguments": {
    "view": "open_deals"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_get",
    "arguments": {
      "view": "open_deals"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb views get [options] <view>

#views_list

stable added in 1.0.0-rc.6 read-only

Saved views you can use (optionally of one object).

MCP tool
views_list
REST
GET /v1/workspaces/{ws}/views scope records:read
CLI
agentdb views list

Arguments

ArgumentTypeRequiredDescription
objectstringObject type name, e.g. contact.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_list",
  "arguments": {
    "object": "deal"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_list",
    "arguments": {
      "object": "deal"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"
CLI
agentdb views list [options]

#views_publish

stable added in 1.0.0-rc.6 changes data

Publish a saved view READ-ONLY through an expiring, revocable link (url for people, data_url JSON for pages; no API key). Runs with YOUR permissions now and later (never more); display.hidden_fields are never shown; optional fields narrows it further; files become short-lived signed links. Default expiry 7 days (expires_in_hours up to 8760); access password (+ password) to require one. Tell the user who can see it and that views_unpublish stops it.

MCP tool
views_publish
REST
POST /v1/workspaces/{ws}/views/{view}/publish scope records:write

Arguments

ArgumentTypeRequiredDescription
titlestringTitle shown to people. (min length 1, max length 100)
access"link" | "password"string, one of: link, password
passwordstringstring, 10–200 characters
expires_atstringstring
expires_in_hoursintegerinteger, 1–8760
allowed_originsstring[]string[], up to 10 items
fieldsstring[]string[], up to 50 items
viewstringyesView id (viw_...) or name
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_publish",
  "arguments": {
    "view": "open_deals",
    "title": "Open deals",
    "access": "link",
    "expires_in_hours": 168
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_publish",
    "arguments": {
      "view": "open_deals",
      "title": "Open deals",
      "access": "link",
      "expires_in_hours": 168
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals/publish" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Open deals","access":"link","expires_in_hours":168}'

#views_published_list

stable added in 1.0.0-rc.6 read-only

Published view links of the workspace (yours, or all for owners and admins). Links are only shown at creation.

MCP tool
views_published_list
REST
GET /v1/workspaces/{ws}/published-views scope records:read

Arguments

ArgumentTypeRequiredDescription
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_published_list",
  "arguments": {}
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_published_list",
    "arguments": {}
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/published-views" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#views_published_update

stable added in 1.0.0-rc.6 changes data

Change a published view: title, access/password, expiry, allowed_origins (clear_allowed_origins), fields (clear_fields). Open viewer sessions end.

MCP tool
views_published_update
REST
PATCH /v1/workspaces/{ws}/published-views/{published} scope records:write

Arguments

ArgumentTypeRequiredDescription
titlestringTitle shown to people. (min length 1, max length 100)
access"link" | "password"string, one of: link, password
passwordstringstring, 10–200 characters
expires_atstringstring
expires_in_hoursintegerinteger, 1–8760
allowed_originsstring[]string[], up to 10 items
fieldsstring[]string[], up to 50 items
clear_allowed_originsbooleanboolean
clear_fieldsbooleanboolean
published_view_idstringyesPublished view id (pvw_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

published_view_id comes from views_publish or views_published_list.

MCP
{
  "tool": "views_published_update",
  "arguments": {
    "published_view_id": "pvw_example",
    "expires_in_hours": 24
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_published_update",
    "arguments": {
      "published_view_id": "pvw_example",
      "expires_in_hours": 24
    }
  }
}
REST
curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/published-views/<published>" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"published_view_id":"pvw_example","expires_in_hours":24}'

#views_render

stable added in 1.0.0-rc.6 read-only

A saved view rendered by its definition.display (table, list, kanban, calendar, timeline, report; docs/APP-VIEWS.md): only the fields the display uses, Kanban column counts and WIP limits, calendar/timeline window (from/to YYYY-MM-DD), report groups. Use it to build a page for people.

MCP tool
views_render
REST
GET /v1/workspaces/{ws}/views/{view}/render scope records:read

Arguments

ArgumentTypeRequiredDescription
cursorstringstring, up to 2000 characters
limitintegerinteger, 1–200
fromstringStart of the time range (ISO 8601 date-time with time zone).
tostringEnd of the time range (ISO 8601 date-time with time zone).
viewstringyesView id (viw_...) or name
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_render",
  "arguments": {
    "view": "open_deals",
    "from": "2026-01-01",
    "to": "2026-01-31"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_render",
    "arguments": {
      "view": "open_deals",
      "from": "2026-01-01",
      "to": "2026-01-31"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals/render" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#views_run

stable added in 1.0.0-rc.6 read-only

Run a saved view (with your permissions). Optional limit, cursor (next_cursor) and version (an earlier definition).

MCP tool
views_run
REST
POST /v1/workspaces/{ws}/views/{view}/run scope records:read
CLI
agentdb views run

Arguments

ArgumentTypeRequiredDescription
limitintegerinteger, 1–200
cursorstringstring, up to 2000 characters
versionintegerThe current version of the item. The call fails with VERSION_CONFLICT if it changed.
viewstringyesView id (viw_...) or name
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "views_run",
  "arguments": {
    "view": "open_deals",
    "limit": 50
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_run",
    "arguments": {
      "view": "open_deals",
      "limit": 50
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals/run" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"limit":50}'
CLI
agentdb views run [options] <view>

#views_unpublish

stable added in 1.0.0-rc.6 changes data destructive

Revoke a published view link immediately. The view and its data stay.

MCP tool
views_unpublish

Arguments

ArgumentTypeRequiredDescription
published_view_idstringyesPublished view id (pvw_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

published_view_id comes from views_publish or views_published_list.

MCP
{
  "tool": "views_unpublish",
  "arguments": {
    "published_view_id": "pvw_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_unpublish",
    "arguments": {
      "published_view_id": "pvw_example"
    }
  }
}

#views_update

stable added in 1.0.0-rc.6 changes data

Change a view's name, description, definition or visibility. Needs the current version; the previous definition is kept.

MCP tool
views_update
REST
PATCH /v1/workspaces/{ws}/views/{view} scope records:write
CLI
agentdb views update

Arguments

ArgumentTypeRequiredDescription
versionintegeryesThe current version of the item. The call fails with VERSION_CONFLICT if it changed.
namestringstring
descriptionstring | nullstring | null
definitionobjectobject
visibility"private" | "workspace"string, one of: private, workspace
viewstringyesView id (viw_...) or name
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

version comes from views_get.

MCP
{
  "tool": "views_update",
  "arguments": {
    "view": "open_deals",
    "version": 1,
    "description": "Deals still open, largest first"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "views_update",
    "arguments": {
      "view": "open_deals",
      "version": 1,
      "description": "Deals still open, largest first"
    }
  }
}
REST
curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"version":1,"description":"Deals still open, largest first"}'
CLI
agentdb views update [options] <view>