Skip to main content
Glama

Create an installation with a client-chosen ID

summer_messenger_installations_create

Create an installation with a client-chosen ID. The one-time signing key goes to the trusted local helper, never to model-visible output. Returns a local CLI command when a secret is involved.

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": {
      "company": "<company>",
      "environment": "<environment>",
      "id": "<id>",
      "settings": "<settings>"
    },
    "name": "summer_messenger_installations_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesNew installation ID chosen by the client, so a retry cannot create a duplicate
companyYesSummer company ID
settingsYes
environmentYesEnvironment that owns the resource
idempotency_keyNoReuse the same key when retrying the same change

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / settings / properties / identity / properties / name_format
      Added value: +{
      +  "description": "Named support: show and introduce the agent with the full name or first name only, keeping the chosen employee and photo. Omitted means full. AI assistant names are kept intact.",
      +  "enum": [
      +    "full",
      +    "first"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / settings / properties / identity / properties / custom_name / description
      Added value: +"Name shown to customers. Leave it empty in named-support mode, with no teammate_id or suggested_photo, and Summer uses the company's AI employee from teammates.list."
  3. Changed2 schema fields changed
    • addedInput schema / properties / settings / properties / identity / properties / suggested_photo
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^[a-z]+(-[a-z]+)*\\.[a-z]+(-[a-z]+)*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Show the photo of a suggested teammate name (its first.last address part from teammates.names.list) beside automated replies. Put that name in custom_name."
      +}
    • addedInput schema / properties / settings / properties / identity / properties / teammate_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Show this company teammate's uploaded photo beside automated replies. Put the teammate's name in custom_name."
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / settings / properties / presentation / description
      Previous value: -"Company chat colors, welcome and chat copy, home/chat links and contact form labels. Plain text only; links use HTTPS. Scoped to this installation."New value: +"Company chat colors, welcome and chat copy, home/chat links and contact form labels. Consent text supports multiple [label](https://example.com/policy) links; other copy is plain text. Links use HTTPS. Scoped to this installation."
    • addedInput schema / properties / settings / properties / presentation / properties / lead_capture / properties / consent_text / description
      Added value: +"Consent copy. Add any number of inline links with [Privacy Policy](https://example.com/privacy). Links open in a new tab; HTML is displayed as text. The exact copy and URLs are retained with the submission."
  5. Changed3 schema fields changed
    • addedInput schema / properties / settings / properties / guest_attachments_enabled
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / settings / properties / guest_challenge_hourly
      Added value: +{
      +  "maximum": 10000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / settings / properties / guest_daily_conversation_limit
      Added value: +{
      +  "maximum": 1000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  6. Changed2 schema fields changed
    • addedInput schema / properties / settings / properties / presentation / properties / lead_capture / properties / custom_fields
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "key": {
      +        "pattern": "^[a-z][a-z0-9_]{0,49}$",
      +        "type": "string"
      +      },
      +      "label": {
      +        "maxLength": 60,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "options": {
      +        "default": [],
      +        "items": {
      +          "maxLength": 100,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "maxItems": 20,
      +        "type": "array"
      +      },
      +      "required": {
      +        "default": false,
      +        "type": "boolean"
      +      },
      +      "type": {
      +        "default": "text",
      +        "enum": [
      +          "text",
      +          "select"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 10,
      +  "type": "array"
      +}
    • addedInput schema / properties / settings / properties / presentation / properties / lead_capture / properties / required_before_chat
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
  7. Changed4 schema fields changed
    • addedInput schema / properties / settings / properties / display_name / description
      Added value: +"Company name shown in the Messenger header"
    • addedInput schema / properties / settings / properties / identity
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Agent name and AI disclosure. Defaults to named support with a neutral first name and last initial.",
      +  "properties": {
      +    "custom_name": {
      +      "default": "",
      +      "maxLength": 80,
      +      "type": "string"
      +    },
      +    "mode": {
      +      "default": "human",
      +      "description": "Named support persona (default) or a visible AI assistant label.",
      +      "enum": [
      +        "human",
      +        "ai"
      +      ],
      +      "type": "string"
      +    },
      +    "name_style": {
      +      "default": "neutral",
      +      "enum": [
      +        "neutral",
      +        "female"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / settings / properties / logo_url
      Added value: +{
      +  "description": "Public company logo shown in the header",
      +  "maxLength": 1024,
      +  "type": "string"
      +}
    • addedInput schema / properties / settings / properties / presentation
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Company chat colors, welcome and chat copy, home/chat links and contact form labels. Plain text only; links use HTTPS. Scoped to this installation.",
      +  "properties": {
      +    "actions": {
      +      "default": [
      +        {
      +          "label": "Request follow-up",
      +          "show_in_chat": true,
      +          "show_on_home": false,
      +          "type": "lead_capture"
      +        }
      +      ],
      +      "items": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "label": {
      +                "maxLength": 60,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "show_in_chat": {
      +                "type": "boolean"
      +              },
      +              "show_on_home": {
      +                "type": "boolean"
      +              },
      +              "type": {
      +                "const": "link",
      +                "type": "string"
      +              },
      +              "url": {
      +                "maxLength": 1024,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "type",
      +              "label",
      +              "url",
      +              "show_on_home",
      +              "show_in_chat"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "label": {
      +                "maxLength": 60,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "show_in_chat": {
      +                "type": "boolean"
      +              },
      +              "show_on_home": {
      +                "type": "boolean"
      +              },
      +              "type": {
      +                "const": "lead_capture",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "type",
      +              "label",
      +              "show_on_home",
      +              "show_in_chat"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "maxItems": 6,
      +      "type": "array"
      +    },
      +    "chat_label": {
      +      "default": "Message support",
      +      "maxLength": 60,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "colors": {
      +      "additionalProperties": false,
      +      "default": {},
      +      "properties": {
      +        "accent": {
      +          "default": "#a95424",
      +          "maxLength": 7,
      +          "minLength": 7,
      +          "pattern": "^#[0-9a-f]{6}$",
      +          "type": "string"
      +        },
      +        "customer_bubble": {
      +          "default": "#eef1e7",
      +          "maxLength": 7,
      +          "minLength": 7,
      +          "pattern": "^#[0-9a-f]{6}$",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "header_description": {
      +      "default": "Support team",
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "lead_capture": {
      +      "additionalProperties": false,
      +      "default": {},
      +      "properties": {
      +        "company_label": {
      +          "default": "Company",
      +          "maxLength": 60,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "company_required": {
      +          "default": false,
      +          "type": "boolean"
      +        },
      +        "consent_text": {
      +          "default": "I agree that this team may contact me using these details.",
      +          "maxLength": 500,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "description": {
      +          "default": "Leave your details so our team can contact you.",
      +          "maxLength": 300,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "email_label": {
      +          "default": "Email",
      +          "maxLength": 60,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "follow_up_label": {
      +          "default": "Book a call",
      +          "maxLength": 60,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "follow_up_url": {
      +          "anyOf": [
      +            {
      +              "maxLength": 1024,
      +              "type": "string"
      +            },
      +            {
      +              "const": "",
      +              "type": "string"
      +            }
      +          ],
      +          "default": ""
      +        },
      +        "message_label": {
      +          "default": "Message",
      +          "maxLength": 60,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "name_label": {
      +          "default": "Name",
      +          "maxLength": 60,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "phone_label": {
      +          "default": "Phone number",
      +          "maxLength": 60,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "phone_required": {
      +          "default": false,
      +          "type": "boolean"
      +        },
      +        "show_company": {
      +          "default": true,
      +          "type": "boolean"
      +        },
      +        "show_message": {
      +          "default": true,
      +          "type": "boolean"
      +        },
      +        "show_phone": {
      +          "default": false,
      +          "type": "boolean"
      +        },
      +        "submit_label": {
      +          "default": "Send my details",
      +          "maxLength": 60,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "success_message": {
      +          "default": "Your details are saved for our team.",
      +          "maxLength": 200,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "title": {
      +          "default": "Request follow-up",
      +          "maxLength": 100,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "thread_description": {
      +      "default": "Ask a question here. We can help you find the next step.",
      +      "maxLength": 300,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "thread_title": {
      +      "default": "What's on your mind?",
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "welcome_description": {
      +      "default": "",
      +      "maxLength": 300,
      +      "type": "string"
      +    },
      +    "welcome_title": {
      +      "default": "How can we help?",
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  8. Changed1 schema field changed
    • changedInput schema / properties / settings / properties / enabled / description
      Previous value: -"Live widget. Production enable needs messaging.activate."New value: +"Live widget. The approved setup grant includes production installation and activation."
  9. First observed

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false and openWorld=true, so the safety profile is mostly covered. The description does add real value by disclosing that the one-time signing key never reaches model-visible output and that a local CLI command is returned, but it says nothing about duplicate-ID handling, failure modes, or the tension with idempotentHint=false despite the client-chosen ID.

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?

Three short sentences with the identifying property front-loaded and no filler. The third sentence partly restates the secret-handling point from the second, a minor redundancy.

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

Completeness3/5

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

This is a complex, deeply nested creation tool with no output schema, so the description would ideally sketch what else is returned and what happens on a duplicate ID. It covers the security-critical output path, which is the most important gap, but leaves other return and error behavior unaddressed.

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 80%, so the schema carries the parameter documentation and the baseline is 3. The description adds no syntax, format, or constraint detail beyond the client-chosen ID concept, which the schema's id field already explains more fully.

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 ("Create an installation") plus the defining property (client-chosen ID), which clearly separates it from installations_update and installations_rotate_key. It stops short of naming any sibling or the scenario gap it fills, so it is not 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 Guidelines2/5

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

Nothing says when to create a new installation versus updating an existing one, nor what prerequisites (company ID, enablement grant) must exist. The read of the text only implies usage from the tool name.

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.