Skip to main content
Glama
This connector has been deprecated

Duplicate listing. The official PumpGTM connector is https://glama.ai/mcp/connectors/com.pumpgtm/mcp (same server, https://mcp.pumpgtm.com/mcp).

Start AI search from the website

start_website_scan

Start AI search (AEO) from the company website, as the AI search pages do: read its sitemap and main pages, work out the Google searches it is built to win, check where it ranks in Google's top 20 for each, and suggest buyer questions to track and likely competitors from what it finds. Reads the website on the company profile. Costs at most costs.websiteScanAtMost Energy (get_ai_search_overview), within today's daily limit, and keeps what it found if Energy or the limit runs out part way. One scan runs at a time. With confirmed=true it returns started, scan (scanId, site, startedAt), energy and message; it takes about a minute, then read website in get_ai_search_overview and track the suggested questions (settings.suggestions) with add_ai_search_questions. Without confirmed=true nothing runs and nothing is charged: it returns the Energy cost, the Energy left and today's AI search limit, with the call that runs it, or the money answer when Energy can't cover it. Tell the customer the cost, then call again with confirmed=true. If AI search is not on for this workspace yet, this turns it on (aiSearchTurnedOn in the result says what it starts with). Only for a connection created by a current owner or admin of this workspace.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "start_website_scan"
  }
}

Input Schema

NameRequiredDescriptionDefault
confirmedNofalse prices the step and changes nothing; true runs it and spends Energy. Send true only after the customer agrees to the price.
workspaceIdNoA teammate's workspace you may manage: an active workspace ID from list_team_workspaces. Omit for your own workspace. Supply on every call for a teammate.

Output Schema

NameRequiredDescriptionDefault
nextNoPreview only: the exact call that runs the step once the customer agrees; null when it can't run now.
scanNoRun: the scan that started; read its results in get_ai_search_overview website after about a minute.
siteNoPreview: the website that would be scanned.
energyYesWhat the step costs and the Energy left.
messageNoA plain summary of the price or of what started, to pass on to the customer.
startedNofalse on the priced preview: nothing ran or was charged.
readyToRunNoPreview only: true when Energy and today's limit allow the step; then call next after the customer agrees.
aiSearchTurnedOnNoPresent only when this call turned AI search on: what it now runs with. Tell the customer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / confirmed / description
      Previous value: -"false (default) prices the step and changes nothing; true runs it."New value: +"false prices the step and changes nothing; true runs it and spends Energy. Send true only after the customer agrees to the price."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "aiSearchTurnedOn": {
      +      "description": "Present only when this call turned AI search on: what it now runs with. Tell the customer.",
      +      "type": "string"
      +    },
      +    "energy": {
      +      "additionalProperties": {},
      +      "description": "What the step costs and the Energy left.",
      +      "properties": {
      +        "cost": {
      +          "description": "Preview: the step's Energy cost.",
      +          "type": "number"
      +        },
      +        "costAbout": {
      +          "description": "Run: about the Energy this step is charging.",
      +          "type": "number"
      +        },
      +        "costAtMost": {
      +          "description": "Run: the most Energy this step can charge.",
      +          "type": "number"
      +        },
      +        "costIsMaximum": {
      +          "description": "Preview: true when cost is a ceiling rather than an estimate.",
      +          "type": "boolean"
      +        },
      +        "dailyLimitUsd": {
      +          "description": "Preview: today's AI search limit in US dollars.",
      +          "type": "number"
      +        },
      +        "nextStep": {
      +          "description": "Preview when Energy is short: how the customer gets more.",
      +          "type": "string"
      +        },
      +        "remaining": {
      +          "description": "Energy the workspace has left (null when unreadable).",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "remainingBefore": {
      +          "description": "Run: Energy the workspace had before the step.",
      +          "type": "number"
      +        },
      +        "required": {
      +          "description": "Preview when Energy is short: Energy the step needs.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "todayLimitRemaining": {
      +          "description": "Preview: Energy today's AI search limit still allows.",
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "A plain summary of the price or of what started, to pass on to the customer.",
      +      "type": "string"
      +    },
      +    "next": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "arguments": {
      +              "additionalProperties": {},
      +              "description": "The exact arguments to send, including confirmed=true.",
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "reason": {
      +              "description": "Why and when to make the call.",
      +              "type": "string"
      +            },
      +            "requiresConfirmation": {
      +              "description": "True: call it only after the customer agrees to the price.",
      +              "type": "boolean"
      +            },
      +            "tool": {
      +              "description": "The tool to call to run the step.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "tool",
      +            "arguments",
      +            "reason",
      +            "requiresConfirmation"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Preview only: the exact call that runs the step once the customer agrees; null when it can't run now."
      +    },
      +    "readyToRun": {
      +      "description": "Preview only: true when Energy and today's limit allow the step; then call next after the customer agrees.",
      +      "type": "boolean"
      +    },
      +    "scan": {
      +      "additionalProperties": {},
      +      "description": "Run: the scan that started; read its results in get_ai_search_overview website after about a minute.",
      +      "properties": {
      +        "scanId": {
      +          "description": "The scan's id.",
      +          "type": "string"
      +        },
      +        "site": {
      +          "description": "The website being read.",
      +          "type": "string"
      +        },
      +        "startedAt": {
      +          "description": "When it started (ISO time).",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "scanId",
      +        "site",
      +        "startedAt"
      +      ],
      +      "type": "object"
      +    },
      +    "site": {
      +      "description": "Preview: the website that would be scanned.",
      +      "type": "string"
      +    },
      +    "started": {
      +      "description": "false on the priced preview: nothing ran or was charged.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "energy"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only flag it as a non-read-only, non-idempotent, open-world write. The description goes well beyond: capped Energy spend via costs.websiteScanAtMost, daily-limit interaction, partial results retained if Energy/limit runs out, one scan at a time, ~1 minute duration, side effect of enabling AI search when off (aiSearchTurnedOn), and that unconfirmed calls charge nothing. That is exactly the operational context an agent needs.

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?

Front-loaded with the purpose, but the body is a dense run-on chain of clauses, and templated fragments like "Costs at most costs.websiteScanAtMost Energy" and "the money answer" read awkwardly. Information is valuable but could be split into shorter, scannable sentences.

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

Completeness5/5

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

For a costly, state-changing, ~1-minute scan, the description covers cost ceiling, timing, side effects, prerequisites, partial-failure behavior, and next steps. An output schema exists, so the extra return-shape detail is bonus rather than a necessity.

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 100%, so baseline is 3, but the description adds real semantics for confirmed by describing the two-phase price-then-run flow and what each phase returns. workspaceId is left entirely to the schema, which keeps it short of a 5.

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?

Opens with a specific verb+resource ("Start AI search (AEO) from the company website") and then spells out the actual work: read the sitemap and main pages, derive Google searches, check top-20 rankings, suggest buyer questions and competitors. That level of detail makes it unmistakable against siblings like get_ai_search_overview or add_ai_search_questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicitly routes the agent: read results afterwards in get_ai_search_overview and track suggestions with add_ai_search_questions. It also states the prerequisite protocol (tell the customer the cost, then call again with confirmed=true) and the eligibility condition (connection created by a current owner or admin).

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