Skip to main content
Glama

Save scan facts onto the agent

save_scan_data

Save company facts (team, contacts, social links, pricing, employee count, auto re-scan) onto the agent — what the app does after a scan. Side effects: stores them in the agent, creates/updates the company and people records, fills BLANK contact channels (never overwrites manual ones). Not needed after deep_scan_agent with persist=true. Free.

Input Schema

NameRequiredDescriptionDefault
idYesAgent id (UUID) — from list_agents
pricingNo
contactsNo
directorsNoTeam / management
auto_updateNo
company_nameYes
social_linksNo
employee_countNo
company_websiteYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / properties / auto_update
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    },
      +    "interval": {
      +      "enum": [
      +        "daily",
      +        "weekly",
      +        "biweekly",
      +        "monthly",
      +        "quarterly"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "enabled",
      +    "interval"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / company_name
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / company_website
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / contacts
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "addresses": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "emails": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "phones": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / directors
      Added value: +{
      +  "description": "Team / management",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "email": {
      +        "type": "string"
      +      },
      +      "linkedin": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "phone": {
      +        "type": "string"
      +      },
      +      "position": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "position"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / employee_count
      Added value: +{
      +  "type": [
      +    "number",
      +    "string"
      +  ]
      +}
    • addedInput schema / properties / id / description
      Added value: +"Agent id (UUID) — from list_agents"
    • addedInput schema / properties / pricing
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / social_links
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "booking": {
      +      "type": "string"
      +    },
      +    "calendly": {
      +      "type": "string"
      +    },
      +    "facebook": {
      +      "type": "string"
      +    },
      +    "instagram": {
      +      "type": "string"
      +    },
      +    "linkedin": {
      +      "type": "string"
      +    },
      +    "telegram": {
      +      "type": "string"
      +    },
      +    "twitter": {
      +      "type": "string"
      +    },
      +    "whatsapp": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "id"
      -]New value: +[
      +  "id",
      +  "company_name",
      +  "company_website"
      +]
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it discloses side effects including storing facts on the agent, creating/updating company and people records, and filling only blank contact channels without overwriting manual ones. It still leaves out permissions, error behavior, and whether non-contact fields are overwritten.

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?

The description is three tight sentences, front-loaded with the core action, then side effects, then the key exclusion and cost note. Every sentence adds useful information without repetition.

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?

For a mutation tool with 9 nested parameters, no annotations, and no output schema, the description covers high-level purpose and important side effects but leaves significant gaps in parameter semantics and return behavior. It is adequate as a summary but not complete enough for an agent to invoke confidently without inspecting the schema.

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

Parameters2/5

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

Schema description coverage is only 22% across 9 parameters, so the description needs to compensate but only partially does. It names broad data categories but omits required fields like id, company_name, and company_website, and does not clarify nested contacts, directors, or auto_update structure.

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 states a specific verb and resource: save company facts (team, contacts, social links, pricing, employee count, auto re-scan) onto the agent. It also distinguishes the operation from deep_scan_agent by noting it is not needed when persist=true, giving an agent enough to identify the tool's role.

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 clear context ('what the app does after a scan') and one explicit exclusion ('Not needed after deep_scan_agent with persist=true'). However, it does not name other relevant alternatives such as scan_agent_website or set_agent_company, so the routing guidance is strong 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