Skip to main content
Glama

Update CRM settings

crm_update_settings

Change workspace CRM settings: which notifications fire (new lead, reassigned, mention; by email and/or in-app), the stale-lead alert, the default date range, and which agents / sources / LinkedIn accounts never create leads. Write operation, no credit cost. Turning notifications off or excluding sources means the human stops being alerted / leads stop appearing, so confirm with the user first. (Personal email preferences: update_notification_preferences.)

Input Schema

NameRequiredDescriptionDefault
notify_emailNoSend CRM notifications by email
notify_in_appNoShow CRM notifications in the bell
notify_mentionNo
notify_new_leadNo
excluded_sourcesNoLead sources to ignore, e.g. ["widget_form"]. Replaces the list.
stale_alert_daysNo
notify_reassignedNo
default_date_rangeNo
excluded_agent_idsNoAgents whose conversations never create leads (ids from crm_list_workspace_agents). Replaces the list.
excluded_linkedin_account_idsNoFrom crm_list_linkedin_accounts. Replaces the list.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • removedInput schema / properties / analytics_emails_enabled
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedInput schema / properties / default_date_range
      Added value: +{
      +  "enum": [
      +    "24h",
      +    "7d",
      +    "30d",
      +    "90d",
      +    "180d",
      +    "1y",
      +    "all"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / excluded_agent_ids
      Added value: +{
      +  "description": "Agents whose conversations never create leads (ids from crm_list_workspace_agents). Replaces the list.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / excluded_linkedin_account_ids
      Added value: +{
      +  "description": "From crm_list_linkedin_accounts. Replaces the list.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / excluded_sources
      Added value: +{
      +  "description": "Lead sources to ignore, e.g. [\"widget_form\"]. Replaces the list.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / notify_email
      Added value: +{
      +  "description": "Send CRM notifications by email",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / notify_in_app
      Added value: +{
      +  "description": "Show CRM notifications in the bell",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / notify_mention
      Added value: +{
      +  "type": "boolean"
      +}
    • removedInput schema / properties / notify_new_reply
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedInput schema / properties / notify_reassigned
      Added value: +{
      +  "type": "boolean"
      +}
    • removedInput schema / properties / notify_stage_change
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedInput schema / properties / stale_alert_days
      Added value: +{
      +  "maximum": 90,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It correctly discloses the write nature, zero credit cost, and the concrete consequences of the risky fields ('the human stops being alerted / leads stop appearing'), which is valuable. However, it never states the partial-update contract — with 10 optional parameters and nothing required, an agent cannot tell whether omitted fields are left unchanged or reset, which is the single most consequential unknown here.

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-loads the scope, then the write/cost traits, then the risk warning, then the sibling pointer — a logical ordering with no filler. It is dense but each sentence carries information; only the parenthetical sibling note could be trimmed.

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 10-parameter mutation tool with no annotations and no output schema, the description covers purpose, effects, cost, risk, list-replacement semantics, and an alternative route. The missing piece is update semantics for unspecified fields and whether changes are reversible, which is material for an all-optional write tool.

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 only 50%, and the description compensates by naming the notification events (new lead, reassigned, mention), the email vs in-app channels, the stale-lead alert, and the three exclusion lists that correspond to otherwise-undocumented parameters. It stops short of explaining units/bounds for stale_alert_days or the meaning of the default_date_range values, both left to the schema and enum.

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 precise verb and resource ('Change workspace CRM settings') and enumerates the settings domains it governs: notification triggers/channels, stale-lead alert, default date range, and lead-creation exclusion lists. That is enough to distinguish it from crm_get_settings, update_crm_integration_settings, and update_notification_preferences without opening a schema.

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?

Gives an explicit routing rule to the sibling for personal email preferences and an explicit behavioural rule ('confirm with the user first' when disabling alerts or excluding sources). It does not say when to prefer this over crm_get_settings for inspecting current values, so the guidance is clear but not exhaustive.

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