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).

AI search overview

get_ai_search_overview
Read-onlyIdempotent

AI search (AEO): how often AI answer engines (ChatGPT, Google AI Overviews, Google AI Mode, Gemini, Perplexity) name this company for the buyer questions it tracks, against tracked competitors. Returns aiSearch (on, or off until the first AI search step turns it on, with how to start); company; you: visibility (share of answers that name the company), share of voice and sentiment, each 0 to 1, and average position (1 is named first), byEngine, weekChange (last 7 days) and a weekly trend; competitors with the same figures; questions (each tracked question's standing); sources (the most cited domains); opportunities (questions where competitors are named and the company is not, third-party pages to get listed on, what the engines searched for, the company's own cited pages); website (the latest website scan: pages read, topics, the Google searches the site targets with its position in Google's top 20, and why a scan stopped); spend (today's Energy against the daily limit, and energyLeft); costs (what each paid step costs now, in Energy); settings; and audit (the latest content audit). windowDays is 30 (default) or 90. Read-only and free: it never asks an engine anything.

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": "get_ai_search_overview"
  }
}

Input Schema

NameRequiredDescriptionDefault
windowDaysNoHow many days of answers the figures and trend cover; the longer window shows slower change.
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
youYesThe company's own figures.
auditYesThe latest content audit, or null; get_content_audit has its pages.
costsYesWhat each paid AI search step costs now, in Energy.
spendYesToday's AI search spend against the daily limit.
companyYesThe company being tracked; null when the company profile is missing.
messageNoOnly when AI search is off: how to start it.
sourcesYesWhat the current answers cite.
websiteYesThe latest website scan.
aiSearchYeson, or off until the first AI search step turns it on.
settingsYesHow AI search runs.
questionsYesEach tracked question's standing.
windowDaysYesDays of answers the figures cover (30 or 90).
competitorsYesEach tracked competitor's figures, to compare with you.
opportunitiesYesWhat to do next to be named more.
answersCountedYesAnswers counted in the window's figures.
lastAnsweredAtYesWhen the latest answer arrived (ISO time); null before any.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / windowDays / description
      Previous value: -"Days of answers to count: 30 (default) or 90."New value: +"How many days of answers the figures and trend cover; the longer window shows slower change."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "aiSearch": {
      +      "description": "on, or off until the first AI search step turns it on.",
      +      "type": "string"
      +    },
      +    "answersCounted": {
      +      "description": "Answers counted in the window's figures.",
      +      "type": "number"
      +    },
      +    "audit": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "auditId": {
      +              "description": "The audit's id.",
      +              "type": "string"
      +            },
      +            "failure": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "code": {
      +                      "description": "A stable reason code, such as no_pages_found or audit_failed.",
      +                      "type": "string"
      +                    },
      +                    "message": {
      +                      "description": "The reason in plain words to pass on, with what to do next.",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "code",
      +                    "message"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Why a failed audit stopped, in words to pass on; null otherwise."
      +            },
      +            "finishedAt": {
      +              "description": "When it finished; null while running.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "pagesAudited": {
      +              "description": "Pages read and scored so far.",
      +              "type": "number"
      +            },
      +            "pagesFound": {
      +              "description": "Pages found to audit.",
      +              "type": "number"
      +            },
      +            "source": {
      +              "description": "site or github.",
      +              "type": "string"
      +            },
      +            "startedAt": {
      +              "description": "When the audit started.",
      +              "type": "string"
      +            },
      +            "status": {
      +              "description": "running, completed or failed.",
      +              "type": "string"
      +            },
      +            "target": {
      +              "description": "The website URL or repository (owner/name/folder) audited.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "auditId",
      +            "source",
      +            "target",
      +            "status",
      +            "pagesFound",
      +            "pagesAudited",
      +            "startedAt",
      +            "finishedAt",
      +            "failure"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The latest content audit, or null; get_content_audit has its pages."
      +    },
      +    "company": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "domains": {
      +              "description": "Every domain that counts as the company's own pages.",
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "name": {
      +              "description": "The company's name as tracked in answers.",
      +              "type": "string"
      +            },
      +            "website": {
      +              "description": "The company profile website.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "name",
      +            "website",
      +            "domains"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The company being tracked; null when the company profile is missing."
      +    },
      +    "competitors": {
      +      "description": "Each tracked competitor's figures, to compare with you.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "name": {
      +            "description": "The tracked competitor's name.",
      +            "type": "string"
      +          },
      +          "position": {
      +            "description": "Average position when named (1 is named first); null when never named.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "sentiment": {
      +            "description": "Average sentiment when named, 0 (negative) to 1 (positive); null when there are no answers to count.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "share": {
      +            "description": "Share of voice: its mentions over all tracked companies' mentions, 0 to 1; null when there are no answers to count.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "visibility": {
      +            "description": "Share of answers that name the company, 0 to 1; null when there are no answers to count.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "visibility",
      +          "share",
      +          "sentiment",
      +          "position"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "costs": {
      +      "additionalProperties": {},
      +      "description": "What each paid AI search step costs now, in Energy.",
      +      "properties": {
      +        "checkEveryQuestionAbout": {
      +          "description": "About the Energy a check of every tracked question costs.",
      +          "type": "number"
      +        },
      +        "checkOneQuestionAbout": {
      +          "description": "About the Energy one question costs to check once on the chosen engines.",
      +          "type": "number"
      +        },
      +        "enginesUnavailable": {
      +          "description": "Chosen engines checks leave out for now (not in any price).",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "githubAuditAtMost": {
      +          "description": "Most Energy a GitHub content audit can cost.",
      +          "type": "number"
      +        },
      +        "suggestQuestionsAbout": {
      +          "description": "About the Energy suggest_ai_search_questions costs.",
      +          "type": "number"
      +        },
      +        "websiteAuditAtMost": {
      +          "description": "Most Energy a website content audit can cost.",
      +          "type": "number"
      +        },
      +        "websiteScanAtMost": {
      +          "description": "Most Energy start_website_scan can cost.",
      +          "type": "number"
      +        },
      +        "whyUnavailable": {
      +          "description": "Why those engines are left out; null when none are.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "checkOneQuestionAbout",
      +        "checkEveryQuestionAbout",
      +        "suggestQuestionsAbout",
      +        "websiteScanAtMost",
      +        "websiteAuditAtMost",
      +        "githubAuditAtMost",
      +        "enginesUnavailable",
      +        "whyUnavailable"
      +      ],
      +      "type": "object"
      +    },
      +    "lastAnsweredAt": {
      +      "description": "When the latest answer arrived (ISO time); null before any.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "message": {
      +      "description": "Only when AI search is off: how to start it.",
      +      "type": "string"
      +    },
      +    "opportunities": {
      +      "additionalProperties": {},
      +      "description": "What to do next to be named more.",
      +      "properties": {
      +        "gaps": {
      +          "description": "Questions where competitors are named and the company is not (up to 10).",
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "competitors": {
      +                "description": "Competitors named instead of the company.",
      +                "items": {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "answers": {
      +                      "description": "Answers that name it.",
      +                      "type": "number"
      +                    },
      +                    "name": {
      +                      "description": "A tracked competitor named instead.",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "name",
      +                    "answers"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "missingOn": {
      +                "description": "Engines whose answers name competitors but not the company.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "questionId": {
      +                "description": "The question.",
      +                "type": "string"
      +              },
      +              "sources": {
      +                "description": "Third-party domains those answers cite.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "text": {
      +                "description": "Its text.",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "questionId",
      +              "text",
      +              "missingOn",
      +              "competitors",
      +              "sources"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "ownCited": {
      +          "description": "The company's own pages the engines cite, most cited first (up to 10).",
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "citations": {
      +                "description": "Times it is cited.",
      +                "type": "number"
      +              },
      +              "questions": {
      +                "description": "Questions whose answers cite it.",
      +                "type": "number"
      +              },
      +              "title": {
      +                "description": "Its title; null when unknown.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "url": {
      +                "description": "The company's own cited page.",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "url",
      +              "title",
      +              "citations",
      +              "questions"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "searches": {
      +          "description": "What engines searched for on questions that leave the company out: content to write (up to 10).",
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "engine": {
      +                "description": "The engine that searched.",
      +                "type": "string"
      +              },
      +              "query": {
      +                "description": "What the engine searched for.",
      +                "type": "string"
      +              },
      +              "questionId": {
      +                "description": "The question being answered.",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "questionId",
      +              "query",
      +              "engine"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "sources": {
      +          "description": "Third-party pages to get listed on (up to 10).",
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "category": {
      +                "description": "Its category (ugc, review, reference, news or other).",
      +                "type": "string"
      +              },
      +              "citations": {
      +                "description": "Times it is cited.",
      +                "type": "number"
      +              },
      +              "domain": {
      +                "description": "A third-party domain cited in answers that leave the company out.",
      +                "type": "string"
      +              },
      +              "example": {
      +                "additionalProperties": {},
      +                "description": "An example cited page.",
      +                "properties": {
      +                  "title": {
      +                    "description": "That page's title; null when unknown.",
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "url": {
      +                    "description": "One cited page on the domain.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "url",
      +                  "title"
      +                ],
      +                "type": "object"
      +              },
      +              "questions": {
      +                "description": "Questions whose answers cite it.",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "domain",
      +              "category",
      +              "citations",
      +              "questions",
      +              "example"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "unanswered": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "questionId": {
      +                    "description": "The question.",
      +                    "type": "string"
      +                  },
      +                  "text": {
      +                    "description": "Its text.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "questionId",
      +                  "text"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "With a content audit: tracked questions no audited page answers; null without an audit."
      +        },
      +        "weakPages": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "locator": {
      +                    "description": "The page URL or repository file path.",
      +                    "type": "string"
      +                  },
      +                  "questionIds": {
      +                    "description": "Tracked questions it answers.",
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "score": {
      +                    "description": "Its audit score, 0 to 100.",
      +                    "type": "number"
      +                  },
      +                  "title": {
      +                    "description": "Its title; null when unknown.",
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "url": {
      +                    "description": "The page URL; null for repository files.",
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "locator",
      +                  "url",
      +                  "title",
      +                  "score",
      +                  "questionIds"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "With a content audit: pages that answer tracked questions but score poorly; null without an audit."
      +        }
      +      },
      +      "required": [
      +        "gaps",
      +        "sources",
      +        "searches",
      +        "ownCited",
      +        "unanswered",
      +        "weakPages"
      +      ],
      +      "type": "object"
      +    },
      +    "questions": {
      +      "description": "Each tracked question's standing.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "answers": {
      +            "description": "Its current answers counted.",
      +            "type": "number"
      +          },
      +          "branded": {
      +            "description": "True when it names the company.",
      +            "type": "boolean"
      +          },
      +          "competitorsNamed": {
      +            "description": "Tracked competitors its answers name, most often first.",
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "answers": {
      +                  "description": "Answers that name it.",
      +                  "type": "number"
      +                },
      +                "name": {
      +                  "description": "The tracked competitor.",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "name",
      +                "answers"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "engines": {
      +            "description": "Its standing on each engine.",
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "answers": {
      +                  "description": "Its current answers on this engine.",
      +                  "type": "number"
      +                },
      +                "engine": {
      +                  "description": "The engine.",
      +                  "type": "string"
      +                },
      +                "mentioned": {
      +                  "description": "How many of them name the company.",
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "engine",
      +                "answers",
      +                "mentioned"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "lastAnsweredAt": {
      +            "description": "When it was last answered (ISO time); null before any.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "questionId": {
      +            "description": "Pass to get_ai_search_question for its answers.",
      +            "type": "string"
      +          },
      +          "text": {
      +            "description": "The question as tracked.",
      +            "type": "string"
      +          },
      +          "visibility": {
      +            "description": "Share of its answers that name the company, 0 to 1; null with no answers.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "questionId",
      +          "text",
      +          "branded",
      +          "answers",
      +          "visibility",
      +          "engines",
      +          "competitorsNamed",
      +          "lastAnsweredAt"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "settings": {
      +      "additionalProperties": {},
      +      "description": "How AI search runs.",
      +      "properties": {
      +        "brandAliases": {
      +          "description": "Other names the company goes by.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "brandDomains": {
      +          "description": "Other websites the company owns.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "competitors": {
      +          "description": "Tracked competitors every answer is compared against.",
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "aliases": {
      +                "description": "Other names it goes by in answers.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "domains": {
      +                "description": "Websites it owns; citations of them count as its pages.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "name": {
      +                "description": "The competitor's name as buyers know it.",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "name",
      +              "domains",
      +              "aliases"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "country": {
      +          "description": "Two-letter code of the country the engines answer for, such as US.",
      +          "type": "string"
      +        },
      +        "dailyLimitUsd": {
      +          "description": "Most all AI search steps may spend per UTC day, in US dollars of Energy.",
      +          "type": "number"
      +        },
      +        "engines": {
      +          "description": "The AI engines each check asks.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "frequency": {
      +          "description": "How often checks repeat: weekly, daily or off.",
      +          "type": "string"
      +        },
      +        "nextCheckAt": {
      +          "description": "When the next automatic check runs (ISO time); null when none is scheduled.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "samples": {
      +          "description": "Times each engine is asked each question per check.",
      +          "type": "number"
      +        },
      +        "suggestions": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "competitors": {
      +                  "description": "Suggested competitors; track them with update_ai_search_settings competitors.",
      +                  "items": {
      +                    "additionalProperties": {},
      +                    "properties": {
      +                      "aliases": {
      +                        "description": "Other names it goes by in answers.",
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      "domains": {
      +                        "description": "Websites it owns; citations of them count as its pages.",
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      "name": {
      +                        "description": "The competitor's name as buyers know it.",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "name",
      +                      "domains",
      +                      "aliases"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "createdAt": {
      +                  "description": "When these were suggested (ISO time).",
      +                  "type": "string"
      +                },
      +                "questions": {
      +                  "description": "Suggested buyer questions; track the ones the customer wants with add_ai_search_questions.",
      +                  "items": {
      +                    "type": "string"
      +                  },
      +                  "type": "array"
      +                }
      +              },
      +              "required": [
      +                "questions",
      +                "competitors",
      +                "createdAt"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The latest suggested questions and competitors from a website scan or suggest_ai_search_questions; null when none have been made."
      +        }
      +      },
      +      "required": [
      +        "engines",
      +        "samples",
      +        "frequency",
      +        "nextCheckAt",
      +        "dailyLimitUsd",
      +        "competitors",
      +        "brandAliases",
      +        "brandDomains",
      +        "country",
      +        "suggestions"
      +      ],
      +      "type": "object"
      +    },
      +    "sources": {
      +      "additionalProperties": {},
      +      "description": "What the current answers cite.",
      +      "properties": {
      +        "categories": {
      +          "additionalProperties": {
      +            "type": "number"
      +          },
      +          "description": "Citations per category: own, competitor, ugc, review, reference, news and other.",
      +          "propertyNames": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        },
      +        "citations": {
      +          "description": "Total citations in the current answers.",
      +          "type": "number"
      +        },
      +        "topDomains": {
      +          "description": "The 10 most cited domains.",
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "category": {
      +                "description": "Its category (own, competitor, ugc, review, reference, news or other).",
      +                "type": "string"
      +              },
      +              "citations": {
      +                "description": "Times it is cited.",
      +                "type": "number"
      +              },
      +              "competitor": {
      +                "description": "The tracked competitor that owns it; null otherwise.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "domain": {
      +                "description": "The cited domain.",
      +                "type": "string"
      +              },
      +              "engines": {
      +                "description": "Engines that cite it.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "example": {
      +                "additionalProperties": {},
      +                "description": "An example cited page.",
      +                "properties": {
      +                  "title": {
      +                    "description": "That page's title; null when unknown.",
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "url": {
      +                    "description": "One cited page on the domain.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "url",
      +                  "title"
      +                ],
      +                "type": "object"
      +              },
      +              "questions": {
      +                "description": "Questions whose answers cite it.",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "domain",
      +              "category",
      +              "competitor",
      +              "citations",
      +              "questions",
      +              "engines",
      +              "example"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "citations",
      +        "categories",
      +        "topDomains"
      +      ],
      +      "type": "object"
      +    },
      +    "spend": {
      +      "additionalProperties": {},
      +      "description": "Today's AI search spend against the daily limit.",
      +      "properties": {
      +        "answersInProgress": {
      +          "description": "Answers still being asked.",
      +          "type": "number"
      +        },
      +        "dailyLimitEnergy": {
      +          "description": "Today's AI search limit in Energy.",
      +          "type": "number"
      +        },
      +        "dailyLimitUsd": {
      +          "description": "Today's AI search limit in US dollars.",
      +          "type": "number"
      +        },
      +        "energyLeft": {
      +          "description": "Energy the workspace has left; null when unreadable.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "fullCheckUsd": {
      +          "description": "About what checking every question once now costs, in US dollars.",
      +          "type": "number"
      +        },
      +        "todayEnergy": {
      +          "description": "What AI search has charged today, in Energy.",
      +          "type": "number"
      +        },
      +        "todayUsd": {
      +          "description": "What AI search has charged today (UTC), in US dollars of Energy.",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "todayUsd",
      +        "dailyLimitUsd",
      +        "todayEnergy",
      +        "dailyLimitEnergy",
      +        "answersInProgress",
      +        "fullCheckUsd",
      +        "energyLeft"
      +      ],
      +      "type": "object"
      +    },
      +    "website": {
      +      "additionalProperties": {},
      +      "description": "The latest website scan.",
      +      "properties": {
      +        "lastScanStopped": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "code": {
      +                  "description": "A stable reason code, such as website_unreadable or cap_reached.",
      +                  "type": "string"
      +                },
      +                "message": {
      +                  "description": "The reason in plain words to pass on, with what to do next.",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "code",
      +                "message"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Why the latest scan attempt stopped; null when it didn't."
      +        },
      +        "scan": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "country": {
      +                  "description": "Country whose Google results were checked.",
      +                  "type": "string"
      +                },
      +                "energyUsed": {
      +                  "description": "Energy the scan charged; null when not recorded.",
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "finishedAt": {
      +                  "description": "When it finished (ISO time).",
      +                  "type": "string"
      +                },
      +                "pagesFound": {
      +                  "description": "Pages its sitemap and homepage list.",
      +                  "type": "number"
      +                },
      +                "pagesRead": {
      +                  "description": "Main pages read.",
      +                  "type": "number"
      +                },
      +                "scanId": {
      +                  "description": "The scan's id.",
      +                  "type": "string"
      +                },
      +                "searches": {
      +                  "description": "The searches the site targets, with its Google position.",
      +                  "items": {
      +                    "additionalProperties": {},
      +                    "properties": {
      +                      "googlePosition": {
      +                        "description": "The site's best position in Google's results read; null when not found.",
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "leaders": {
      +                        "description": "Up to three other domains on Google's first page.",
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      "namesCompany": {
      +                        "description": "True when the search names the company.",
      +                        "type": "boolean"
      +                      },
      +                      "rankingUrl": {
      +                        "description": "The site's page holding that position; null when not found.",
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      },
      +                      "resultsChecked": {
      +                        "description": "How many Google results were read; 0 when the search wasn't checked.",
      +                        "type": "number"
      +                      },
      +                      "search": {
      +                        "description": "A Google search the site is built to win.",
      +                        "type": "string"
      +                      },
      +                      "targetPage": {
      +                        "description": "The site's own page built for this search; null when none was found.",
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      }
      +                    },
      +                    "required": [
      +                      "search",
      +                      "leaders"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "site": {
      +                  "description": "The website read.",
      +                  "type": "string"
      +                },
      +                "stoppedEarly": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": {},
      +                      "properties": {
      +                        "code": {
      +                          "description": "A stable reason code, such as website_unreadable or cap_reached.",
      +                          "type": "string"
      +                        },
      +                        "message": {
      +                          "description": "The reason in plain words to pass on, with what to do next.",
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "code",
      +                        "message"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Why it stopped part way, keeping what it found; null when it finished."
      +                },
      +                "topics": {
      +                  "description": "Topics the site covers.",
      +                  "items": {
      +                    "type": "string"
      +                  },
      +                  "type": "array"
      +                }
      +              },
      +              "required": [
      +                "scanId",
      +                "site",
      +                "finishedAt",
      +                "pagesFound",
      +                "pagesRead",
      +                "topics",
      +                "country",
      +                "energyUsed",
      +                "stoppedEarly",
      +                "searches"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The latest finished scan; null before any."
      +        },
      +        "scanRunning": {
      +          "description": "True while a website scan runs.",
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "scanRunning",
      +        "lastScanStopped",
      +        "scan"
      +      ],
      +      "type": "object"
      +    },
      +    "windowDays": {
      +      "description": "Days of answers the figures cover (30 or 90).",
      +      "type": "number"
      +    },
      +    "you": {
      +      "additionalProperties": {},
      +      "description": "The company's own figures.",
      +      "properties": {
      +        "byEngine": {
      +          "additionalProperties": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "position": {
      +                "description": "Average position when named (1 is named first); null when never named.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "sentiment": {
      +                "description": "Average sentiment when named, 0 (negative) to 1 (positive); null when there are no answers to count.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "share": {
      +                "description": "Share of voice: its mentions over all tracked companies' mentions, 0 to 1; null when there are no answers to count.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "visibility": {
      +                "description": "Share of answers that name the company, 0 to 1; null when there are no answers to count.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "visibility",
      +              "share",
      +              "sentiment",
      +              "position"
      +            ],
      +            "type": "object"
      +          },
      +          "description": "The same four figures for each engine, keyed by engine name.",
      +          "propertyNames": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        },
      +        "position": {
      +          "description": "Average position when named (1 is named first); null when never named.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "sentiment": {
      +          "description": "Average sentiment when named, 0 (negative) to 1 (positive); null when there are no answers to count.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "sentiments": {
      +          "additionalProperties": {},
      +          "description": "Counts of mentions by sentiment.",
      +          "properties": {
      +            "mixed": {
      +              "description": "Answers that name it with mixed sentiment.",
      +              "type": "number"
      +            },
      +            "negative": {
      +              "description": "Answers that name it negatively.",
      +              "type": "number"
      +            },
      +            "neutral": {
      +              "description": "Answers that name it neutrally.",
      +              "type": "number"
      +            },
      +            "positive": {
      +              "description": "Answers that name the company positively.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "positive",
      +            "neutral",
      +            "negative",
      +            "mixed"
      +          ],
      +          "type": "object"
      +        },
      +        "share": {
      +          "description": "Share of voice: its mentions over all tracked companies' mentions, 0 to 1; null when there are no answers to count.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "trend": {
      +          "description": "Weekly points of the figures, oldest first.",
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "date": {
      +                "description": "The day (YYYY-MM-DD) the point is read on.",
      +                "type": "string"
      +              },
      +              "position": {
      +                "description": "Average position when named (1 is named first); null when never named.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "sentiment": {
      +                "description": "Average sentiment when named, 0 (negative) to 1 (positive); null when there are no answers to count.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "share": {
      +                "description": "Share of voice: its mentions over all tracked companies' mentions, 0 to 1; null when there are no answers to count.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "visibility": {
      +                "description": "Share of answers that name the company, 0 to 1; null when there are no answers to count.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "date",
      +              "visibility",
      +              "share",
      +              "sentiment",
      +              "position"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "visibility": {
      +          "description": "Share of answers that name the company, 0 to 1; null when there are no answers to count.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "weekChange": {
      +          "additionalProperties": {},
      +          "description": "Change in each figure over the last 7 days.",
      +          "properties": {
      +            "position": {
      +              "description": "Change in average position over the last 7 days (negative is better); null when it can't be compared.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "sentiment": {
      +              "description": "Change in sentiment over the last 7 days; null when it can't be compared.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "share": {
      +              "description": "Change in share of voice over the last 7 days; null when it can't be compared.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "visibility": {
      +              "description": "Change in visibility over the last 7 days; null when it can't be compared.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "visibility",
      +            "share",
      +            "sentiment",
      +            "position"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "visibility",
      +        "share",
      +        "sentiment",
      +        "position",
      +        "weekChange",
      +        "sentiments",
      +        "byEngine",
      +        "trend"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "aiSearch",
      +    "windowDays",
      +    "company",
      +    "answersCounted",
      +    "lastAnsweredAt",
      +    "you",
      +    "competitors",
      +    "questions",
      +    "sources",
      +    "opportunities",
      +    "spend",
      +    "costs",
      +    "settings",
      +    "website",
      +    "audit"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavioral facts: it is free and 'never asks an engine anything' (contrasting with paid check steps), it discloses the spend/costs/energyLeft fields so the agent knows calling it does not consume Energy, and it explains that aiSearch may be 'off until the first AI search step turns it on, with how to start' — an onboarding state an agent otherwise would not anticipate.

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 purpose is front-loaded correctly in the first clause, but the body is a single run-on sentence that enumerates every returned field (you, competitors, questions, sources, opportunities, website, spend, costs, settings, audit) at length. Since an output schema already exists, much of that enumeration is redundant and makes the definition harder to scan.

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 read-only overview tool with full annotation coverage, a documented 2-parameter schema, and an output schema, the definition covers the important extras: cost/free status, the possible disabled state, and the window semantics. It is complete enough to call correctly; the only gap is the absence of explicit sibling routing guidance.

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% and both parameters are already fully documented, including the 30/90 enum and the teammate-workspace rule. The description only restates 'windowDays is 30 (default) or 90' without adding syntax, defaults, or interaction details beyond the schema, so the baseline 3 applies.

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 opening clause names the specific resource and scope: 'AI search (AEO): how often AI answer engines ... name this company for the buyer questions it tracks, against tracked competitors.' That is a concrete aggregate-overview purpose an agent can distinguish from the per-question siblings (get_ai_search_question) and topic tools, though the description never names those siblings explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: the shape of the return (visibility, competitors, questions, sources, opportunities, website, spend, costs, settings, audit) suggests a dashboard-style first call before drilling into detail tools, and 'Read-only and free' signals it is safe to call often. There is no explicit when-to-use/when-not or routing statement pointing to get_ai_search_question, get_ai_search_topics, or run_ai_search_check.

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