Skip to main content
Glama

Physical Capability Cloud

save_dashboard

Save a generated dashboard to the network so the user gets a live, shareable URL: https://capability.network/a/. Pass a manifest — a small declarative DashboardManifest (windows + live-data bindings + actions) conforming to the schema at https://capability.network/ui-kit/v1/manifest.schema.json; the shipped pcc-ui kit renders it identically everywhere (you compose the manifest, the kit renders it — never hand-rolled HTML). WHEN to call this: only when the task needs a surface to watch/approve/compare/reuse (a live job, a value chain, a settlement trail, a recurring order) — never for a one-line answer. RECALL FIRST: call search_dashboards before generating; reload or fork a match instead of duplicating. The manifest MUST NOT contain an API key (a shared artifact travels with its contents — the network rejects one that does). Returns the stored artifact incl. its slug. Defaults visibility to 'unlisted' (link-shareable, not listed).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesShort human name for the dashboard, e.g. 'Watch my pizza + courier'. Used to mint the slug.
manifestYesThe DashboardManifest (2-6KB JSON) conforming to https://capability.network/ui-kit/v1/manifest.schema.json. Required top-level keys: `csd` (must be 'pcc://artifacts/dashboard/v1'), `title`, and `sections[]` (each section has `windows[]`). Window kinds: note, metric, capability, list, form, run, approval, receipt, chain, actions. Bindings point at live routes you already use (/api/jobs/:id, /api/escrow/:id, /sse/stream/job/:id). No API key anywhere in the manifest.
visibilityNoWho can load it. Default 'unlisted' (anyone with the link; not in listings). 'public' appears in search_dashboards; 'private' is owner-only.
composeRefsNoOptional pinned, re-plannable ComposeRequest objects (value chains). Pin the request, never a compositionId (those expire in 30 min).
descriptionNoOne-line description of what the dashboard shows.
renderedCidNoOptional CID of a rendered-HTML export saved via /api/storage.
capabilityTypesNoCapability types this dashboard is about, e.g. ['pizza.order','courier.dispatch']. This is the discovery join — it's how search_dashboards finds this artifact later.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
slugNo
manifestYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "manifest": {
      +      "type": "object"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "slug": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "manifest"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a non-destructive write; the description adds real behavior beyond that: the network rejects manifests containing an API key, visibility defaults to 'unlisted', and the response includes the stored artifact with its slug. It does not cover rate limits or what happens on name collisions when minting the slug.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and URL format are front-loaded, then WHEN, then RECALL FIRST, then constraints and defaults. Dense but every clause carries guidance; only minor overlap with the schema descriptions on the manifest.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a 7-parameter creation tool: an output schema exists so return-value detail is unnecessary, yet the description still notes the artifact/slug return, plus default visibility, key-handling constraint, and workflow ordering. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; however the description adds meaning beyond the schema by stating the manifest is composed by the agent and rendered by the pcc-ui kit ('never hand-rolled HTML') and that the manifest must never contain an API key. The remaining parameters are largely left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (save) and resource (dashboard) plus outcome: a live shareable URL of form https://capability.network/a/<slug>. It distinguishes itself from siblings by naming search_dashboards for recall and fork_dashboard implicitly via 'reload or fork a match instead of duplicating'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit WHEN to call (tasks needing a surface to watch/approve/compare/reuse) with an explicit exclusion ('never for a one-line answer'). Also mandates a recall-first workflow and names the alternative tool (search_dashboards) plus fork/reload as substitutes for duplication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.