Skip to main content
Glama
PROMPTEYE-SP-Z-O-O

prompteye-mcp

Official

List the prompt groups of the project

list_prompt_groups
Read-only

How the project's prompts are grouped — comparison queries, problem queries, brand queries — with the visibility of each group over the period. A group is the unit a strategy is judged by. Use a group id to narrow list_prompts.

Instructions

How the project's prompts are grouped — comparison queries, problem queries, brand queries — with the visibility of each group over the period. A group is the unit a strategy is judged by. Use a group id to narrow list_prompts. Ungrouped prompts have no row here; they show up in list_prompts with groupId null. upsert_prompt_group renames, describes or reorders a group, and delete_prompt_group removes an empty one.

Changes are signed so that positive always means improvement. For average position that means the brand was named earlier in the answer, so a positive change goes with a lower position number.

aiTrafficTotal adds up the demand behind the prompts of the group that are still being asked, so a paused prompt contributes nothing. It is null when none of those prompts has a measured figure.

Input Schema

NameRequiredDescriptionDefault
limitNoHow many entries to return, at most 200. Defaults to 50.
cursorNoThe nextCursor of the previous page. Omit it to start from the first one.
endDateNoLast day to report on, inclusive. Defaults to today, and must be within 366 days of startDate.
projectIdYesThe project to work on — its id from list_projects. Required on every call, so that parallel conversations never read or write each other's project.
startDateNoFirst day to report on, inclusive. Defaults to 30 days before today.

Output Schema

NameRequiredDescriptionDefault
dataYes
nextCursorYesPass as cursor to read the next page. null = this was the last page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.0.28
    • addedInput schema / properties / projectId
      Added value: +{
      +  "description": "The project to work on — its id from list_projects. Required on every call, so that parallel conversations never read or write each other's project.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / required
      Added value: +[
      +  "projectId"
      +]
  2. Changed1 schema field changedv1.0.22
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "aiTrafficTotal": {
      +            "description": "Monthly searches behind the group's prompts still being asked, added up; paused prompts add nothing. null = none of them has a measured figure.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "description": {
      +            "description": "What the group is for. null = nobody described it.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "metrics": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "averagePosition": {
      +                "description": "Mean place the brand was named at in the answers that named it, counting from 1; lower is earlier. null = not measured.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "reachIndex": {
      +                "description": "Visibility weighted by how much of the market each assistant carries, 0-100, whole number. null = not measured.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "visibility": {
      +                "description": "Share of answers that named the brand in the period, in percent 0-100. null = not measured.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "visibility",
      +              "reachIndex",
      +              "averagePosition"
      +            ],
      +            "type": "object"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "order": {
      +            "description": "Where the group sits in the project's own ordering, lowest first.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "promptCount": {
      +            "description": "Prompts in the group, paused ones included.",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "order",
      +          "promptCount",
      +          "aiTrafficTotal",
      +          "metrics"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "nextCursor": {
      +      "description": "Pass as cursor to read the next page. null = this was the last page.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "data",
      +    "nextCursor"
      +  ],
      +  "type": "object"
      +}
  3. First observedv1.0.5

TDQS

A4/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses the sign convention for changes (positive always means improvement, and for average position positive means an earlier naming, i.e. a lower position number) and the exact semantics of aiTrafficTotal (paused prompts contribute nothing, null when no prompt has a measured figure). That is genuinely non-obvious interpretation guidance; it does not discuss pagination behavior or the shape of the response, but with annotations already covering the safety profile this is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The front-loaded first paragraph carries purpose, sibling routing and the ungrouped caveat efficiently. The two trailing paragraphs on change sign and aiTrafficTotal are dense but each sentence carries real semantics; the only waste is a slightly indirect opening construction.

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

Completeness5/5

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

For a read-only list tool with full schema coverage, an output schema and clear sibling routing, an agent has everything needed to call it correctly, including the interpretation rules for signed changes and null traffic values that the schema alone would not convey.

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 limit, cursor, startDate, endDate and projectId are already fully documented in the schema. The description adds only the loose notion of 'over the period' and says nothing about how the date range or pagination affects group aggregation. Baseline 3 is appropriate where the schema does the heavy lifting.

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 description names the resource (prompt groups), what they are (comparison/problem/brand queries) and what is reported (visibility per group over the period), which clearly separates it from list_prompts and the upsert/delete siblings. It is framed as a noun-phrase explanation rather than a verb+resource statement, so the enumeration action has to be inferred, but the scope is unambiguous.

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

Usage Guidelines4/5

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

It explicitly routes the agent: group ids narrow list_prompts, ungrouped prompts only appear in list_prompts with groupId null, and rename/describe/reorder or deletion belong to upsert_prompt_group and delete_prompt_group. It gives clear context and named alternatives, though it never states a negative condition such as when not to call this tool (e.g. for per-prompt detail).

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