Skip to main content
Glama

Set website, app, agent, or skill access

set_service_access
Idempotent

Set who can reach a website, app, agent, or skill: public serves it to anyone who has the link, private serves it only to members of the organization that owns it after they sign in to Valet, and password serves it to anyone who enters a shared visitor password. Pass kind to say which you mean; a name holding another kind is then refused rather than changed. Apps can be changed only on a server with app access turned on. An agent opens to public or password access only on a server with agent outside access turned on. Requires connecting a Valet account.

Password mode takes the password as the password argument. It is a shared visitor password the owner hands to whoever should see the service, not a Valet credential, and it is at most 72 bytes.

Input Schema

NameRequiredDescriptionDefault
kindNoThe kind you mean. Omit to change whatever the name holds; give it to have a name holding another kind refused.
modeYesRequired. The access mode. public serves it to anyone who has the link. private serves it only to members of the organization that owns it. password serves it to anyone who enters the shared visitor password.
nameYesRequired. The website's, app's, agent's, or skill's name.
org_nameNoThe Valet organization it belongs to. Omit to use the organization the account joined first.
passwordNoThe shared visitor password. Required for password mode and rejected for the others. Anyone who enters it can open the service, so its owner passes it to whoever should see it. At most 72 bytes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "site",
      -  "app",
      -  "skill"
      -]New value: +[
      +  "site",
      +  "app",
      +  "agent",
      +  "skill"
      +]
    • changedInput schema / properties / name / description
      Previous value: -"Required. The website's, app's, or skill's name."New value: +"Required. The website's, app's, agent's, or skill's name."
  2. Changed2 schema fields changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "site",
      -  "app"
      -]New value: +[
      +  "site",
      +  "app",
      +  "skill"
      +]
    • changedInput schema / properties / name / description
      Previous value: -"Required. The website's or app's name."New value: +"Required. The website's, app's, or skill's name."
  3. Added

TDQS

A4.1/5.0
Behavior5/5

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

Goes well past what the annotations declare: annotations only say non-read-only, idempotent, non-destructive, closed-world. The description adds the kind-mismatch behavior ('refused rather than changed'), two server-level capability gates for apps and agents, an authentication requirement, and the fact that password is a shared visitor password rather than a Valet credential with a 72-byte limit. That is exactly the extra context that lets an agent avoid failed calls.

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?

Front-loaded with the meaning of each mode, then constraints, then password specifics, so an agent reading only the first sentence still knows what the tool does. It is a dense single block that repeats the mode enum semantics already present in the schema, which costs a little efficiency but nothing is truly wasted.

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?

There is no output schema, and the description does not say what comes back or how success is confirmed, which is a minor gap. Everything else an agent needs to call this correctly — required combinations, mode semantics, capability prerequisites, auth, org default behavior — is either in the description or fully covered by the schema and annotations.

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?

Schema description coverage is 100%, so all five parameters including both enums are already documented, which sets the baseline at 3. The description restates the mode meanings and password constraints that the schema already carries, and its only marginal addition is explaining why kind is given (to prevent cross-kind overwrites) — largely duplicative rather than additive.

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

Purpose4/5

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

States a specific verb and resource plus the full scope of the concept: setting who can reach a website, app, agent, or skill via public/private/password. An agent can immediately tell what the tool changes. It does not differentiate itself from the semantically adjacent siblings share_service and unshare_service, which is the only thing keeping this from a 5.

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?

Usage conditions for each mode are spelled out precisely ('public serves it to anyone who has the link, private serves it only to members of the organization... after they sign in to Valet'). Prerequisites are named: app access must be turned on for apps, agent outside access for agents, and a Valet account must be connected. It gives no guidance on when to prefer this over share_service/unshare_service, so routing against alternatives is left to inference.

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