Skip to main content
Glama

Share board

share_board
DestructiveIdempotent

Create or update the shareable link for a board, optionally changing its expiry, download restriction, password, watermark, or whether the page accepts uploads. A hosted app on the board follows the link's watermark, and lets visitors download originals while the link allows downloads, asking for the link's password if it has one. Returns a URL that anyone can open. Exposure: anyone with the link can view the board and its assets without signing in. enable_uploads is the route for FILES THAT CANNOT BE OBTAINED ANY OTHER WAY: a person who opens the returned URL can drop files on it, and they then show up in list_assets on that board. This is the LAST of three upload routes and the only one that needs a live human. A file at a URL Playbook can fetch goes through upload_from_url(s). Bytes the caller HOLDS — generated locally, returned as base64, or on disk — go through create_upload_url when the caller can make HTTP requests. This route is for when both are impossible: no reachable URL and no way to make a request.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "token": "<token>"
    },
    "name": "share_board"
  }
}

Input Schema

NameRequiredDescriptionDefault
tokenYesBoard token
passwordNoPassword-protect the link; empty string clears it
organizationNoWorkspace slug, as returned by list_organizations. Omit it when the account has a single workspace — it is then resolved from your token. Pass it only when the account has several, or when you mean a workspace other than the obvious one.
enable_uploadsNoLet anyone holding the link add files to the board without signing in. It has two consequences. There is NO upload-only mode — such a link still shows the board's contents to whoever opens it. And this endpoint returns the board's EXISTING link when it already has one, so turning uploads on grants upload rights to everyone who was already given that URL for viewing; share a fresh board instead if that matters. Requires a plan with shared-link customization, otherwise the call fails with 403. Pair it with `password` and `expiration_date` when the link leaves a trusted group.
watermark_sizeNo
watermark_textNoText stamped over every image the shared page shows, and every image a hosted app on this board shows; empty string removes it. Requires a plan with shared-link customization (403 otherwise).
expiration_dateNoISO 8601 expiry; empty string clears an existing expiry
disable_downloadsNoPrevent downloads from the shared page
watermark_opacityNo
watermark_positionNo`fill` repeats the text across the image
watermark_text_colorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / watermark_opacity
      Added value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / watermark_position
      Added value: +{
      +  "description": "`fill` repeats the text across the image",
      +  "enum": [
      +    "fill",
      +    "top-right",
      +    "top-left",
      +    "bottom-right",
      +    "bottom-left"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / watermark_size
      Added value: +{
      +  "enum": [
      +    "small",
      +    "medium",
      +    "large"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / watermark_text
      Added value: +{
      +  "description": "Text stamped over every image the shared page shows, and every image a hosted app on this board shows; empty string removes it. Requires a plan with shared-link customization (403 otherwise).",
      +  "maxLength": 255,
      +  "type": "string"
      +}
    • addedInput schema / properties / watermark_text_color
      Added value: +{
      +  "enum": [
      +    "black",
      +    "white",
      +    "red",
      +    "blue",
      +    "yellow",
      +    "green",
      +    "orange",
      +    "pink",
      +    "purple",
      +    "brown",
      +    "gray"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  3. Changed4 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / context
      Removed value: -{
      -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
      -  "type": "string"
      -}
    • changedInput schema / properties / enable_uploads / description
      Previous value: -"Let anyone holding the link add files to the board without signing in. Two things to tell the user before setting it. There is NO upload-only mode — such a link still shows the board's contents to whoever opens it. And this endpoint returns the board's EXISTING link when it already has one, so turning uploads on grants upload rights to everyone who was already given that URL for viewing; share a fresh board instead if that matters. Requires a plan with shared-link customization, otherwise the call fails with 403. Pair it with `password` and `expiration_date` when the link leaves a trusted group."New value: +"Let anyone holding the link add files to the board without signing in. It has two consequences. There is NO upload-only mode — such a link still shows the board's contents to whoever opens it. And this endpoint returns the board's EXISTING link when it already has one, so turning uploads on grants upload rights to everyone who was already given that URL for viewing; share a fresh board instead if that matters. Requires a plan with shared-link customization, otherwise the call fails with 403. Pair it with `password` and `expiration_date` when the link leaves a trusted group."
    • changedInput schema / required
      Previous value: -[
      -  "token",
      -  "context"
      -]New value: +[
      +  "token"
      +]
  4. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, and the description adds real value on top: the returned link grants unauthenticated view access, enable_uploads reuses an existing link and thereby grants upload rights to prior viewers, and customization features fail with 403 without the right plan. It stops short of stating what happens to unmentioned link settings during an update (full replace vs. partial merge), which is the main remaining risk for a destructive, idempotent mutation.

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?

The primary purpose and its exposure warning are front-loaded, and most sentences add decision-relevant content. The upload-routing paragraph is long and slightly repetitive ('LAST of three upload routes,' 'both are impossible'), but it is the highest-value disambiguation in the definition.

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

Completeness4/5

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

Eleven parameters and no output schema, yet the description covers the return value ('a URL that anyone can open'), auth implications, plan-gated failures, and the most dangerous parameter's side effects. Gaps remain on the watermark styling parameters and on partial-update semantics, but nothing critical for a correct call 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 73%, and the description adds meaning beyond it for enable_uploads (no upload-only mode, existing-link reuse caveat, 403 requirement) and password/expiry pairing advice. The watermark family (size, opacity, color) is only gestured at and relies on the schema, so it is not fully compensated.

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?

Opens with a specific verb+resource: 'Create or update the shareable link for a board,' then enumerates what can be changed (expiry, downloads, password, watermark, uploads). This clearly separates it from siblings like resolve_share_link or share_asset, which operate on existing links or assets.

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?

Explicitly routes the agent among the three upload paths: upload_from_url(s) when a fetchable URL exists, create_upload_url when the caller can make HTTP requests, and this tool's enable_uploads only when both are impossible. It also states conditions on the main path, such as pairing with password/expiration_date when the link leaves a trusted group.

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.

Resources