Skip to main content
Glama

Set CRM client visibility

crm_set_client_visibility
DestructiveIdempotent

Sets what this business shows its clients on the minisite and in the client portal. Confirm the choices with the owner in the chat, then call this tool. It applies at once. Do not send them to the app to approve it. model is the list. phone_link_field ties a row to that client's verified phone. shared true shows the named rows of a list with no phone link to every client. shared_fields and client_visible_fields are the fields to show. The business chooses those fields, including a phone or a personal field. client_visible_actions are the actions a client may run. client_visible_records are the record ids to show. A field, action, or record you leave out is hidden. client_access true opens the portal and false closes it. A field, record, or action that is not on this list is refused. A phone-linked list is shown only to the client that row belongs to. The result is what clients now see. The audit log records it.

Input Schema

NameRequiredDescriptionDefault
modelYesList name on this account.
sharedNoWhen true, every client sees the named rows of this list. Refused when this list has a phone link, including a link through another record.
client_accessNoTrue opens the client portal. False closes it. It applies now.
shared_fieldsNoFields every client may see. Name each one. The business chooses, including a phone or a personal field. On a shared list these are the fields shown. On a related row they are the names shown instead of ids.
phone_link_fieldNoField that stores the client's phone in E.164, so a row belongs to that client. Pass an empty string to clear it. Omit it to keep the current link.
client_visible_fieldsNoField names a client may see. A field you leave out is hidden.
client_visible_actionsNoAction names a client may run. An action you leave out is hidden.
client_visible_recordsNoRecord ids a client may see. A record you leave out is hidden.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true, idempotentHint=true), the description discloses that the change applies immediately, that anything omitted is hidden, that unknown fields/actions/records are refused, that phone-linked lists are scoped to the owning client, and that the action is written to the audit log. That is exactly the destructive-behavior context an agent needs before mutating client-visible settings.

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

Conciseness3/5

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

The operational warning is front-loaded, which is good, but the body is a run-on sequence of short declaratives with redundancy: 'A field, action, or record you leave out is hidden' and 'A field, record, or action that is not on this list is refused' cover nearly the same ground. The trailing 'The result is what clients now see. The audit log records it.' could be tightened.

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?

For a destructive 8-parameter mutation with no output schema, the description covers effect timing, omission semantics, rejection behavior, per-client scoping, and auditability. The one notable gap is that it never mentions the schema's anyOf constraint requiring at least one of phone_link_field, shared, shared_fields, or client_access.

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 the baseline is 3. The description does gloss each parameter ('model is the list', 'phone_link_field ties a row to that client's verified phone', 'shared true shows the named rows of a list with no phone link'), but most of this restates the schema field descriptions rather than adding new semantics.

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?

The description states a specific verb and resource: 'Sets what this business shows its clients on the minisite and in the client portal,' and it scopes the effect to the portal and minisite surfaces. It implicitly separates itself from the propose/approve siblings by saying 'It applies at once. Do not send them to the app to approve it,' though it never names those siblings directly.

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?

It gives an explicit precondition ('Confirm the choices with the owner in the chat, then call this tool') and an explicit exclusion ('Do not send them to the app to approve it'), which routes the agent away from the approval-flow siblings. It does not name crm_propose_client_visibility or crm_approve_client_visibility, so the mapping to alternatives is inferred rather than stated.

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.