Skip to main content
Glama
thein-art

mcp-server-peecai

by thein-art

Brand Visibility Report

get_brands_report
Read-onlyIdempotent

Generate brand analytics reports with visibility, sentiment, share of voice, and mention metrics across AI models using date filters and dimensional breakdowns.

Instructions

Get brand analytics report per brand. Metrics: visibility (visibility_count/visibility_total), share_of_voice (0-1), mention_count, sentiment (0-100 scale, 50=neutral), position (avg rank when mentioned, lower=better). Returns up to limit results (default: 100). Use brand_id shortcut or filters array for server-side filtering. Supports date filtering and dimensional breakdowns. Without date filters, returns data across all available dates. Empty results may indicate the project has no report data for the given time range or filters — try a broader date range or fewer filters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idNoProject ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.
start_dateNoStart date (YYYY-MM-DD). Omit for no lower bound.
end_dateNoEnd date (YYYY-MM-DD). Omit for no upper bound.
dimensionsNoBreakdown dimensions. Each adds a grouping level to results: prompt_id (by search prompt), model_id (by AI model), model_channel_id (by model channel, e.g. openai-0/perplexity-0), tag_id (by category tag), topic_id (by topic group), date (by date), country_code (by country), chat_id (by individual chat). Multiple dimensions can be combined.
brand_idNoConvenience filter for a single brand (converted to server-side filter). Use list_brands to find IDs.
filtersNoServer-side filters. Multiple filters are AND'd together.
limitNoMax results (1-10000, default: 100)
offsetNoResults to skip
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds valuable behavioral context beyond annotations: it explains the return limit (up to 100 results default), date filtering behavior (without filters returns all dates), and troubleshooting for empty results. It doesn't contradict annotations, as 'Get' aligns with 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: it front-loads the core purpose and metrics, then covers key usage details (filtering, date behavior, troubleshooting). Every sentence adds value without redundancy, and it's appropriately sized for a complex tool with many parameters.

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?

Given the tool's complexity (8 parameters, no output schema) and rich annotations, the description is largely complete. It explains the metrics, filtering options, date behavior, and result handling. However, without an output schema, it could benefit from more detail on the return format (e.g., structure of results with dimensions). The annotations cover safety and idempotency well.

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%, so the schema already documents all 8 parameters thoroughly. The description adds some semantic context by mentioning 'brand_id shortcut' and 'filters array for server-side filtering', which helps interpret the parameters, but doesn't provide significant additional meaning beyond what's in the schema. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get brand analytics report per brand') and resource ('brand'), with detailed metrics listed (visibility, share_of_voice, mention_count, sentiment, position). It distinguishes from sibling tools like 'list_brands' by focusing on analytics rather than listing, and from other report tools by specifying brand-level metrics.

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

Usage Guidelines4/5

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

The description provides clear context on when to use it (for brand analytics with specific metrics) and mentions alternatives like using 'brand_id shortcut or filters array for server-side filtering'. It also advises on handling empty results. However, it doesn't explicitly state when not to use it versus other report tools like 'get_domains_report' or 'get_urls_report'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/thein-art/mcp-server-peecai'

If you have feedback or need assistance with the MCP directory API, please join our Discord server