Skip to main content
Glama

unset_public

Destructive

Make a public Charming app PRIVATE again. Use this to close anonymous access: visitors can no longer open the app without logging in (the URL requires login). Data already written by anonymous visitors is retained. Idempotent: calling on an already-private app is a no-op.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
app_idYesThe app ID (UUID) to make private

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYesIndicates success. Errors arrive as content with isError:true.
messageYesConsequence copy the agent should surface verbatim. Tells the user the app now requires login again; data already written by anonymous visitors is retained.
advisoriesNoStructured non-fatal advisories, including authoring issues and unread staff feedback responses. Each advisory.summary is also appended to the text content for the LLM path.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / advisories
      Added value: +{
      +  "description": "Structured non-fatal advisories, including authoring issues and unread staff feedback responses. Each advisory.summary is also appended to the text content for the LLM path.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": {},
      +        "description": "Kind-specific structured payload. Shape varies per advisory kind.",
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "doc_url": {
      +        "description": "Optional docs pointer for this advisory kind.",
      +        "type": "string"
      +      },
      +      "kind": {
      +        "description": "Stable advisory identifier (e.g. \"legacy-bridge\").",
      +        "type": "string"
      +      },
      +      "severity": {
      +        "description": "Severity; omitted advisories are treated as 'info'.",
      +        "enum": [
      +          "info",
      +          "warn"
      +        ],
      +        "type": "string"
      +      },
      +      "summary": {
      +        "description": "Agent-facing summary. Self-sufficient; no extra context required.",
      +        "type": "string"
      +      },
      +      "userSummary": {
      +        "description": "End-user-facing summary. Set when the advisory should render in-app.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "summary"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description adds crucial behavior: anonymous visitor data is retained, the app URL now requires login, and idempotency. These details give an agent a clear picture of the side effects without needing to infer them from the annotation flags.

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

Conciseness5/5

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

Three concise sentences with zero filler. The primary purpose is stated first, followed by the behavioral consequence for visitors and data, and finally the idempotency note. Every sentence earns its place and the text is easy to scan.

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?

For a single-parameter, well-annotated mutation with an output schema, the description covers the key aspects an agent needs: what changes, who is affected, what remains, and edge-case idempotency. There is no obvious missing information that would prevent correct invocation.

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

Parameters3/5

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

The schema already covers the single parameter app_id with a description and strong validation. The tool description does not add anything new about the parameter itself—it just reflects the same usage. With 100% schema coverage, the baseline is 3, and the description provides no additional semantic value.

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?

The description clearly states a specific action: making a public Charming app private again. It differentiates itself from siblings like set_public (the inverse) by explicitly explaining the effect on anonymous access and login requirements, leaving no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description specifies the exact use case: to close anonymous access and require login. It also notes the idempotent no-op behavior on already-private apps. However, it does not explicitly compare to sibling tools like set_public or unset_remixable to state when NOT to use this one, so it falls just short of a 5.

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.