Citesurf MCP
The Citesurf MCP server lets you monitor and manage your brand's visibility across ChatGPT, Claude, Gemini, and Perplexity — all from your AI agent.
Brand Management
List, create, update, and delete monitored brands with metadata (type, category, description, prompts)
Get detailed brand info including visibility scores, platform breakdown, competitors, and sentiment
Scan Operations
Trigger new visibility scans across all 4 AI platforms (costs 1 credit each)
List past scans and access full scan details including probes, per-platform results, and citations
View historical trends over 7, 30, or 90 days
Analytics & Insights
Retrieve prompt-level results showing what each AI platform says about your brand
Analyze persona-level results to see how different user types discover your brand
Get AI-generated recommendations for improving visibility, with options to dismiss or mark as completed
Technical Audits
Audit your site for AI crawler accessibility: robots.txt, llms.txt, schema.org, sitemap, and Open Graph
Reporting & Account
Generate comprehensive reports combining scores, platform performance, prompts, sentiment, competitors, trends, audits, and insights in a single call
View account plan, credit balance, and brand limits
Provides visibility monitoring and sentiment analysis for brands as they appear in responses and recommendations on the Perplexity platform.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Citesurf MCPShow me the latest visibility score and insights for my brand"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@citesurf/mcp
MCP server for Citesurf. AI visibility monitoring.
Check if ChatGPT, Claude, Perplexity, and Gemini recommend any brand. Get visibility scores, sentiment, competitor data, and actionable insights, all from your AI agent.
Install
npx -y @citesurf/mcpRelated MCP server: mcp-server-peecai
Requirements
A Citesurf account with an active Plus or Max subscription
An API key (create one in Dashboard > Settings)
Prepaid credits for scan operations
Setup
Add to your MCP client config:
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"citesurf": {
"command": "npx",
"args": ["-y", "@citesurf/mcp"],
"env": {
"CITESURF_API_KEY": "cs_live_..."
}
}
}
}Cursor
.cursor/mcp.json in your project or global settings
{
"mcpServers": {
"citesurf": {
"command": "npx",
"args": ["-y", "@citesurf/mcp"],
"env": {
"CITESURF_API_KEY": "cs_live_..."
}
}
}
}Claude Code
claude mcp add citesurf -e CITESURF_API_KEY=cs_live_... -- npx -y @citesurf/mcpEnvironment Variables
Variable | Required | Description |
| Yes | Your API key from Dashboard > Settings |
| No | API base URL (default: |
Tools
Brands
Tool | Description | Credits |
| List all monitored brands with latest metrics | 0 |
| Get detailed brand info: score, platforms, competitors | 0 |
| Start monitoring a brand across all 4 AI platforms | 0 |
| Update brand type, category, description, or prompts | 0 |
| Stop monitoring and archive a brand | 0 |
Data
Tool | Description | Credits |
| Paginated scan list for a brand | 0 |
| Full scan detail with probes and citations | 0 |
| Historical scan trends (7, 30, or 90 days) | 0 |
| AI platform probe results grouped by prompt | 0 |
| Probe results grouped by persona | 0 |
| AI generated recommendations for visibility | 0 |
| Dismiss or complete an insight | 0 |
| Technical audit (robots.txt, llms.txt, schema) | 0 |
| Comprehensive report with all data in one call | 0 |
| Plan, credit balance, brand count | 0 |
Scans
Tool | Description | Credits |
| Trigger new scan for existing brand | 1 |
Each scan costs 1 credit and runs across all 4 platforms (ChatGPT, Claude, Gemini, Perplexity). Reading data never costs credits. Purchase credit packs in the Citesurf dashboard.
Example Usage
> List my monitored brands
> What are the top insights for brand xyz?
> How has my visibility score changed over the last 30 days?
> Show me the latest scan detail for my brand
> What do different personas see when asking about my brand?
> Run a comprehensive report on my brand
> Update my brand's description and monitoring promptsLicense
MIT
Available Tools
16 toolscreate_brandB
Start monitoring a brand for AI visibility across ChatGPT, Claude, Gemini, Perplexity
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Brand name | |
| website | Yes | Brand website URL (e.g. https://example.com) | |
| language | No | Language for prompts and analysis | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Start monitoring' which implies a write operation, but doesn't disclose behavioral traits like permissions needed, whether this creates a persistent resource, rate limits, or what happens if the brand already exists. The description is minimal on behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and scope, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that likely creates a resource. It doesn't explain what 'monitoring' entails, what the tool returns, or error conditions. For a write operation with 3 parameters, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters. The description adds no parameter-specific meaning beyond implying monitoring scope. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Start monitoring') and resource ('a brand'), with explicit scope ('for AI visibility across ChatGPT, Claude, Gemini, Perplexity'). It distinguishes from siblings like 'get_brand' (read) and 'update_brand' (modify).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for initiating brand monitoring, but lacks explicit guidance on when to use this vs. alternatives like 'update_brand' or prerequisites. It doesn't specify if this is for new brands only or when monitoring should be started.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_brandADestructive
Stop monitoring a brand and archive its data
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID to archive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true, indicating a destructive operation. The description adds value by specifying that it 'archives its data' (implying data retention rather than permanent deletion) and 'stop monitoring' (indicating ongoing activity cessation), which goes beyond the annotation's generic destructive hint. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action and outcome. There's no wasted wording, and it clearly communicates the tool's function without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive operation with one parameter), annotations cover the destructive nature, and the description adds context about archiving and monitoring cessation. However, without an output schema, it doesn't detail return values (e.g., confirmation message), leaving a minor gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'brandId' fully documented in the schema. The description doesn't add any parameter-specific details beyond what the schema provides, such as format or examples, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stop monitoring and archive') and resource ('a brand'), making the purpose specific. It distinguishes from siblings like 'list_brands' (read-only) and 'update_brand' (modify), as this is a deletion/archival operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when monitoring should cease and data needs archiving, but it doesn't explicitly state when to use this versus alternatives like 'update_brand' for modifications or prerequisites. It provides basic context but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountBRead-only
Get account info: plan, payment status, credit balance, brand count and limit
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, indicating this is a safe read operation. The description adds value by specifying the exact account details returned (plan, payment status, etc.), which helps the agent understand the scope of data. However, it doesn't disclose behavioral traits like rate limits, authentication needs, or response format, leaving gaps despite the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that lists all key information returned. It's front-loaded with the verb 'Get' and immediately specifies the data points. There's no wasted text, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, annotations cover read-only safety, and no output schema exists, the description adequately explains what data is retrieved. However, it lacks details on the return format (e.g., JSON structure), error handling, or any limitations, which could be important for an agent to use it correctly in a broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, so it appropriately focuses on the output. Since there are no parameters to document, a baseline of 4 is justified as it avoids redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does ('Get account info') and specifies the exact data returned (plan, payment status, credit balance, brand count and limit). It distinguishes itself from siblings like get_brand or get_insights by focusing on account-level information rather than brand or insight data. However, it doesn't explicitly contrast with all siblings, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or comparisons with other tools like get_report or get_scan that might also provide account-related data. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brandBRead-only
Get detailed brand info: visibility score, platform breakdown, competitors, sentiment
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, indicating a safe read operation. The description adds value by specifying the types of detailed info returned (e.g., visibility score, sentiment), which isn't covered by annotations. However, it lacks behavioral details like rate limits, error handling, or data freshness, keeping it at a baseline level with some added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Get detailed brand info') and lists key data points without unnecessary words. Every part earns its place by clarifying the scope of information returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, read-only), no output schema, and rich annotations, the description is minimally adequate. It covers what data is returned but lacks details on format, pagination, or error cases, which could be helpful for an agent despite the annotations providing safety context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with 'brandId' clearly documented. The description doesn't add any parameter-specific semantics beyond implying that 'brandId' is used to fetch the detailed info. This meets the baseline score since the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('detailed brand info'), listing key data points like visibility score, platform breakdown, competitors, and sentiment. However, it doesn't explicitly differentiate from sibling tools like 'list_brands' (which likely returns a list) or 'get_account' (which might return account-level data), missing full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a brand ID), exclusions, or comparisons to siblings like 'list_brands' for listing brands or 'get_insights' for broader insights, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insightsBRead-only
Get AI generated recommendations for improving brand visibility, prioritized by impact
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID | |
| status | No | Filter by status | |
| offset | No | Pagination offset | |
| pageSize | No | Results per page (max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which the description doesn't contradict (it uses 'Get', consistent with read-only). The description adds context about the output being 'AI generated recommendations' and 'prioritized by impact', which isn't covered by annotations. However, it lacks details on rate limits, authentication needs, or pagination behavior, leaving gaps in behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Get AI generated recommendations for improving brand visibility, prioritized by impact') contributes directly to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, read-only operation) and rich schema coverage (100%), the description is minimally adequate. It explains what the tool returns but lacks output schema details (e.g., format of recommendations). With annotations covering safety, it meets basic needs but doesn't fully compensate for missing behavioral context like pagination or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing clear documentation for all parameters (brandId, status, offset, pageSize). The description doesn't add any parameter-specific semantics beyond what's in the schema, such as explaining how 'status' affects recommendations or default pagination behavior. Baseline score of 3 is appropriate since the schema handles most of the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get AI generated recommendations for improving brand visibility, prioritized by impact.' It specifies the verb ('Get'), resource ('AI generated recommendations'), and scope ('improving brand visibility, prioritized by impact'). However, it doesn't explicitly differentiate from sibling tools like 'get_report' or 'get_trends' that might also provide insights, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a brand ID), exclusions, or comparisons to siblings like 'get_report' or 'get_trends'. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_personasARead-only
Get AI platform probe results grouped by persona (how different user types discover the brand)
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID | |
| offset | No | Pagination offset | |
| pageSize | No | Results per page (max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, indicating a safe read operation. The description adds context about grouping by persona and the nature of the data (AI platform probe results), but doesn't disclose behavioral traits like pagination details, rate limits, or auth requirements beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. Every word contributes to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, read-only operation) and lack of output schema, the description is reasonably complete. It covers the purpose and data context, but could improve by mentioning pagination behavior or result format to fully compensate for the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear documentation for brandId, offset, and pageSize parameters. The description doesn't add meaning beyond the schema, such as explaining what persona grouping entails or parameter interactions, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get AI platform probe results grouped by persona' specifies the action (get), resource (probe results), and grouping dimension (persona). It distinguishes from siblings like get_insights or get_report by focusing on persona-based grouping, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing how different user types discover a brand, suggesting context for brand analysis. However, it lacks explicit guidance on when to use this tool versus alternatives like get_insights or get_report, and doesn't mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_promptsARead-only
Get AI platform probe results grouped by prompt (what each AI said about the brand)
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID | |
| platform | No | Filter by platform | |
| offset | No | Pagination offset | |
| pageSize | No | Results per page (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which the description aligns with by using 'Get' (non-destructive). The description adds context about grouping by prompt and what each AI said, but doesn't disclose rate limits, auth needs, or pagination behavior beyond what the schema covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place, with no redundancy or wasted phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with full schema coverage and no output schema, the description is reasonably complete. It clarifies the grouping and content focus, though it could better explain the return structure or error cases given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description mentions 'brand' and 'platform' implicitly but adds no additional meaning beyond the schema. Baseline 3 is appropriate as the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get AI platform probe results') and resource ('grouped by prompt'), specifying what each AI said about the brand. It distinguishes from siblings like get_insights or get_report by focusing on prompt-level results, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving probe results by prompt, but provides no explicit guidance on when to use this tool versus alternatives like get_insights or get_report. No prerequisites, exclusions, or comparison to siblings are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportBRead-only
Get comprehensive AI visibility report: scores, platform performance, prompts, sentiment, competitors, cited domains, trends, site audit, and insights in one call
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds useful context by specifying it's a 'comprehensive' report covering multiple data types in 'one call', which helps the agent understand the scope and efficiency. However, it doesn't disclose behavioral traits like rate limits, response format, or potential data freshness issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action ('Get comprehensive AI visibility report') and lists included data points. It could be slightly more structured by separating the action from the data list, but it's appropriately sized with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has readOnlyHint annotation but no output schema, the description adequately covers the purpose and scope. However, for a 'comprehensive' report tool with 1 parameter and no output schema, it could benefit from more detail on the response structure or data limitations to fully guide the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'brandId' documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema, such as explaining what a brand ID represents or how to obtain it. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'comprehensive AI visibility report', specifying what data is included (scores, platform performance, etc.). It distinguishes itself by being 'comprehensive' and 'in one call', but doesn't explicitly differentiate from specific sibling tools like get_insights or get_trends that might provide subsets of this data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a comprehensive report is needed ('in one call'), suggesting it might be preferable to calling multiple sibling tools individually. However, it doesn't explicitly state when to use this tool versus alternatives like get_insights or get_trends, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scanARead-only
Get full scan detail with probes, results per platform, citations, and site audit
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID | |
| scanId | Yes | The scan ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description does not contradict this. The description adds value beyond annotations by specifying the scope of details returned (probes, results per platform, citations, site audit), which helps the agent understand the richness of the output. However, it does not mention potential behavioral traits like rate limits or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action ('Get full scan detail') and lists the included components without unnecessary words. Every part of the sentence contributes directly to understanding the tool's purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with two required parameters) and the presence of annotations (readOnlyHint) but no output schema, the description is mostly complete. It specifies what details are returned, which compensates for the lack of output schema. However, it could improve by mentioning the response format or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (brandId and scanId) adequately. The description does not add any parameter-specific information beyond what the schema provides, such as format examples or constraints, which aligns with the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific details: 'Get full scan detail' indicates the verb and resource, and it enumerates the components included (probes, results per platform, citations, site audit). It distinguishes from siblings like 'list_scans' (which likely lists scans without details) and 'get_report' (which might be a different type of report).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when detailed scan information is needed, but it does not explicitly state when to use this tool versus alternatives like 'get_report' or 'get_site_audit'. It provides context by listing what details are included, but lacks explicit guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_auditBRead-only
Get technical audit results: robots.txt AI crawler access, llms.txt, schema.org, sitemap, Open Graph
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds useful context about what specific technical areas are audited, which goes beyond the annotations. However, it doesn't disclose behavioral traits like rate limits, authentication requirements, or response format details that would be helpful for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence listing exactly what the tool retrieves. Every word earns its place by specifying the technical audit areas. There's no wasted verbiage, repetition, or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and readOnlyHint annotation, the description is minimally adequate. However, with no output schema, the description doesn't explain what format the audit results will be returned in (structured data, report, scores, etc.). Given the technical nature of the audit areas listed, more context about the return format would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single 'brandId' parameter. The description doesn't add any parameter-specific information beyond what's in the schema (no format hints, examples, or constraints). With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get technical audit results' with specific technical areas listed (robots.txt, llms.txt, schema.org, sitemap, Open Graph). It uses a specific verb ('Get') and identifies the resource ('technical audit results'), but doesn't explicitly differentiate from sibling tools like 'get_scan' or 'get_report' which might have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing a brandId), when-not-to-use scenarios, or how it differs from sibling tools like 'get_scan' or 'get_report' that might also retrieve technical data. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trendsARead-only
Get historical scan trends for a brand (visibility score, mention rate, platform breakdown over time)
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID | |
| range | No | Days of history: 7, 30, or 90 | 30 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'readOnlyHint: true' already indicates this is a safe read operation. The description adds valuable context about what data is returned (visibility score, mention rate, platform breakdown) and the temporal dimension ('over time'), which helps the agent understand the tool's behavior beyond just being read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and provides specific details about the returned data. Every word earns its place with no redundancy or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with complete parameter documentation and no output schema, the description provides good context about the data returned and temporal scope. However, it doesn't mention format details (e.g., time series structure) or potential limitations (e.g., data availability), leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema fully documents both parameters (brandId and range with enum values). The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get historical scan trends') and resource ('for a brand'), with detailed scope ('visibility score, mention rate, platform breakdown over time'). It distinguishes from siblings like 'get_brand' (general brand info) or 'get_insights' (different data type) by specifying trend analysis over time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for historical trend analysis, but provides no explicit guidance on when to use this tool versus alternatives like 'get_insights' or 'get_report'. It doesn't mention prerequisites, exclusions, or specific scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_brandsARead-only
List all monitored brands with latest AI visibility metrics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, indicating a safe read operation. The description adds value by specifying that it returns 'latest AI visibility metrics', which isn't covered by annotations. It doesn't mention pagination, rate limits, or auth needs, but with annotations covering safety, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List all monitored brands') and adds a useful qualifier ('with latest AI visibility metrics'). Zero waste, appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 0 parameters and no output schema, the description is mostly complete. It specifies what's returned (brands with metrics), but doesn't detail the response format or structure. Given the simplicity, this is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, but that's fine since there are none. Baseline is 4 for 0 parameters, as it avoids unnecessary details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all monitored brands'), and specifies the scope ('with latest AI visibility metrics'). It distinguishes from siblings like 'get_brand' (singular) and 'create_brand' (write operation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving all brands with metrics, but doesn't explicitly state when to use this vs. alternatives like 'get_brand' (for a specific brand) or 'list_scans' (for different resources). No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scansARead-only
List scans for a brand with pagination (visibility score, mention rate, platform scores per scan)
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID | |
| offset | No | Pagination offset | |
| pageSize | No | Results per page (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, indicating a safe read operation. The description adds context about pagination and the types of metrics returned (visibility score, mention rate, platform scores), which goes beyond annotations. However, it doesn't disclose rate limits, authentication needs, or detailed behavioral traits like error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List scans for a brand') and adds key details (pagination, metrics) without unnecessary words. Every part earns its place by providing essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with full schema coverage but no output schema, the description adequately covers the action and basic behavior. However, it lacks details on output format (e.g., structure of returned scans), error handling, or how the metrics are calculated, leaving gaps in completeness for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for brandId, offset, and pageSize. The description mentions pagination and metrics but doesn't add significant semantic details beyond what the schema provides, such as explaining how brandId relates to scans or the meaning of the metrics listed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List scans') and resource ('for a brand'), specifying it includes pagination and metrics like visibility score, mention rate, and platform scores. It distinguishes from siblings like 'get_scan' (singular) and 'trigger_scan' (action), but doesn't explicitly differentiate from other list operations like 'list_brands'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving multiple scans with pagination and metrics, but doesn't explicitly state when to use this vs. alternatives like 'get_scan' (for a single scan) or 'get_insights' (for insights data). No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_scanA
Trigger a new scan for an existing monitored brand (costs 1 credit, covers all 4 AI platforms). Returns credits used and remaining balance.
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide idempotentHint=false, indicating non-idempotent behavior. The description adds valuable context beyond this: it discloses the cost ('costs 1 credit'), scope ('covers all 4 AI platforms'), and return information ('Returns credits used and remaining balance'), which are not covered by annotations and are crucial for usage decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys purpose, cost, scope, and return value without any wasted words. It is front-loaded with the core action and resource, making it highly concise and effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a non-idempotent, credit-costing operation) and lack of output schema, the description does well by explaining cost, scope, and return details. However, it could be more complete by mentioning potential side effects (e.g., scan initiation time, impact on existing scans) or error conditions, though annotations cover idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'brandId' documented as 'The brand ID'. The description does not add any meaning beyond this (e.g., format, examples, or where to find it), so it meets the baseline of 3 where the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Trigger a new scan') on a specific resource ('existing monitored brand'), distinguishing it from siblings like 'get_scan' (which retrieves scan data) and 'list_scans' (which lists scans). It specifies the scope ('covers all 4 AI platforms'), making the purpose explicit and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for initiating a new scan on an existing brand, with an implicit prerequisite that the brand must already be monitored. However, it does not explicitly state when not to use it (e.g., vs. 'get_scan' for retrieving results) or name alternatives, though the sibling list suggests clear distinctions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_brandAIdempotent
Update brand metadata: type, category, description, or monitoring prompts. All fields optional, only pass what you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID to update | |
| type | No | Brand classification | |
| category | No | Business category (e.g. 'AI Resume Builder') | |
| description | No | Brand description (2 to 3 sentences) | |
| prompts | No | Exactly 3 search prompts to monitor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true, indicating safe retries. The description adds that fields are optional and partial updates are supported, which is useful behavioral context beyond annotations. However, it doesn't cover other aspects like permissions, rate limits, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and key usage note. Every word earns its place with no redundancy or fluff, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update tool with idempotent annotations and full schema coverage, the description is adequate but minimal. It lacks output details (no output schema provided) and doesn't address potential side effects or dependencies, leaving some gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds that 'All fields optional, only pass what you want to change', clarifying partial update semantics, but doesn't provide additional meaning beyond the schema's detailed descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('brand metadata'), specifying which fields can be updated (type, category, description, prompts). However, it doesn't explicitly differentiate from sibling tools like 'create_brand' or 'update_insight', though the focus on updating existing brands is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying existing brand metadata, with 'All fields optional, only pass what you want to change' suggesting partial updates. No explicit guidance on when to use this vs. alternatives like 'create_brand' or 'update_insight' is provided, leaving it to context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_insightADestructive
Dismiss or complete an insight. Dismiss deletes it, complete validates improvement with before and after metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| brandId | Yes | The brand ID | |
| insightId | Yes | The insight ID | |
| action | Yes | Action: dismiss (delete) or complete (validate improvement) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable context beyond the destructiveHint annotation: it clarifies that 'dismiss deletes it' and 'complete validates improvement with before and after metrics.' This explains what each action does, which isn't covered by the annotation alone. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of two sentences that directly explain the tool's functionality with zero wasted words. Every sentence earns its place by clarifying the two actions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructiveHint annotation and clear parameter schema, the description is reasonably complete for a mutation tool. It explains the two actions well, though it doesn't cover potential side effects, permissions, or response format (no output schema exists).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all parameters (brandId, insightId, action). The description adds some meaning by explaining the semantics of the action enum values, but doesn't provide additional details beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('dismiss' and 'complete') and resource ('insight'), distinguishing it from siblings like get_insights (read-only) and other update operations. It explains the two distinct actions available.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage scenarios (dismissing vs. completing insights) but doesn't explicitly state when to use this tool versus alternatives like get_insights for viewing insights. No prerequisites, exclusions, or comparisons to sibling tools are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
v1.0.0- First observed
create_brand - First observed
delete_brand - First observed
get_account - First observed
get_brand - First observed
get_insights - First observed
get_personas - First observed
get_prompts - First observed
get_report - First observed
get_scan - First observed
get_site_audit - First observed
get_trends - First observed
list_brands - First observed
list_scans - First observed
trigger_scan - First observed
update_brand - First observed
update_insight
TDQS
Scored across 16 tools
Most tools have distinct purposes with clear boundaries, such as create_brand vs. delete_brand or get_brand vs. get_insights. However, some overlap exists between get_report, get_scan, and get_trends, as they all provide detailed analytics that could be confused without careful reading of descriptions.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_brand, get_account, list_brands, and update_brand. There are no deviations in naming conventions, making the set predictable and easy to navigate.
With 16 tools, the count is slightly high but reasonable for the domain of brand monitoring and AI visibility analysis. It covers core operations like CRUD for brands, scanning, and reporting, though it may feel a bit heavy compared to a more streamlined set.
The tool set provides comprehensive coverage for brand monitoring, including full CRUD for brands (create, get, update, delete, list), scanning and reporting capabilities, account management, and insights handling. No obvious gaps are present, supporting complete workflows from setup to analysis.
Maintenance
Related MCP Connectors
AI-visibility monitoring for your brand across ChatGPT, Claude, Perplexity & Gemini.
Track brand visibility across ChatGPT, Claude, Gemini & Perplexity. Scores, competitors, trends.
Track your brand's visibility in AI search across Claude, ChatGPT, Perplexity, and Gemini.
AI visibility & recommendation monitoring for ChatGPT, Claude, Gemini & Perplexity.
Related MCP Servers
- AlicenseAqualityCmaintenanceTrack brand visibility across ChatGPT, Perplexity, Claude, and Gemini.632 npm9MIT
- AlicenseAqualityCmaintenanceTrack how your brand appears in AI-generated answers across ChatGPT, Perplexity, and other AI models. Analyze visibility, sentiment, citations, and domain rankings with 31 tools — including analytics reports, chat inspection, query analysis, and full CRUD for brands, prompts, tags, and topics.1773 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to run brand-visibility audits by querying multiple AI engines, generating competitive leaderboards, and identifying growth opportunities. Integrates with any MCP-capable client to measure and act on brand discoverability in AI recommendations.MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to monitor and analyze a brand's visibility across ChatGPT, Claude, Perplexity, and Google AI Overviews, providing insights, recommendations, and competitive analysis without switching tabs.2515 npm1MIT