Skip to main content
Glama
prompteye-mcp

prompteye-mcp

Official

Generate new prompt suggestions for a group

generate_prompt_suggestions

Schedules a background run that analyzes a project prompt group's gaps, drafts and scores candidate prompt suggestions, and returns a run ID for polling pending proposals.

Instructions

Asks PromptEye to propose new prompts for one prompt group of the project, the same cycle the app runs when Generate is pressed on a group: it reads what the group is missing, drafts candidate phrases, checks their demand, expands them into questions and scores each one. PromptEye generates the prompts a project tracks: it works out which questions carry demand and phrases them the way people actually put questions to AI assistants, then proposes each one with the gap in the funnel it fills, the demand behind it, how close to a purchase it is asked and how well it fits the brand. list_prompt_suggestions returns those, ready to be accepted.

Scheduling a run is instant; the cycle itself runs in the background for a minute or more and is not waited on here. Poll get_prompt_suggestion_availability with the groupId afterwards to wait for the run to finish and discover what it produced. Call list_prompt_suggestions to read the pending suggestions generated; it returns only suggestions awaiting a decision, excluding ones that have already been accepted or rejected.

A run is not always worth scheduling — the group might already be healthy, the plan's paid work might not currently cover it, or the last run might still have proposals awaiting a decision. Then nothing is scheduled and runId comes back null with skipped saying why; that is not an error. A run already in progress, or no free plan slots left, is refused by the API instead — call get_prompt_suggestion_availability first to know which case applies.

When skipped is nothing_to_suggest, tell the user why: suggestions need at least 5 active prompts in the group already measured and scored for purchase intent, or at least 2 active prompts with a computed business priority. In a new project add prompts, wait for their first measurement, then generate again.

Input Schema

NameRequiredDescriptionDefault
groupIdYesId of the prompt group, as list_prompt_groups reports it.
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.

Output Schema

NameRequiredDescriptionDefault
runIdYesId of the run that was scheduled. null = nothing was scheduled, see skipped.
skippedYesWhy no run was scheduled; set exactly when runId is null. not_eligible = the project's plan does not currently pay for background work, cooldown = the last run finished less than 7 days ago and its proposals still await a decision, nothing_to_suggest = the group is already healthy: no funnel gap to fill and nothing worth imitating. In a new group it usually means too few measured prompts: a run needs at least 5 active prompts already measured and scored for purchase intent, or at least 2 active prompts with a computed business priority. Add prompts, wait for their first measurement, then try again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.30
    • changedOutput schema / properties / skipped / description
      Previous value: -"Why no run was scheduled; set exactly when runId is null. not_eligible = the project's plan does not currently pay for background work, cooldown = the last run finished less than 7 days ago and its proposals still await a decision, nothing_to_suggest = the group is already healthy: no funnel gap to fill and nothing worth imitating."New value: +"Why no run was scheduled; set exactly when runId is null. not_eligible = the project's plan does not currently pay for background work, cooldown = the last run finished less than 7 days ago and its proposals still await a decision, nothing_to_suggest = the group is already healthy: no funnel gap to fill and nothing worth imitating. In a new group it usually means too few measured prompts: a run needs at least 5 active prompts already measured and scored for purchase intent, or at least 2 active prompts with a computed business priority. Add prompts, wait for their first measurement, then try again."
  2. 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"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "groupId"
      -]New value: +[
      +  "projectId",
      +  "groupId"
      +]
  3. Addedv1.0.22

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only flag a non-read-only, open-world, non-idempotent mutation, but the description goes far beyond that: the run is asynchronous, returns immediately, is not awaited, and can return runId=null with a skipped reason instead of erroring. It distinguishes that soft skip from an API refusal (run in progress, no plan slots), which is precisely the kind of behavioral nuance annotations cannot convey.

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 opening paragraph front-loads purpose well, but the pending-suggestions point is made twice (paragraph one's 'list_prompt_suggestions returns those, ready to be accepted' and paragraph two's fuller restatement), and the cycle narration is lengthy. Useful content, but it could be trimmed without losing meaning.

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 an async generation tool with two simple params, an output schema, and rich annotations, nothing needed to invoke it correctly is missing: prerequisites, skip semantics, polling next step, and the user-facing explanation for nothing_to_suggest are all covered.

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 coverage is 100% and both projectId and groupId are documented inline, so the schema carries parameter meaning. The description reinforces that groupId keys the subsequent availability poll and that the call targets one group of a project, but adds no format or constraint detail beyond the schema — the baseline 3 fits.

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?

States a concrete verb and resource: asks PromptEye to propose new prompts for one prompt group, mirroring the app's Generate cycle. It explicitly disambiguates from siblings by saying list_prompt_suggestions reads the results and get_prompt_suggestion_availability tracks the run, so an agent can route correctly.

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

Usage Guidelines5/5

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

Gives explicit when-to-call ordering: call get_prompt_suggestion_availability first to learn which failure case applies, then this tool, then poll availability and read list_prompt_suggestions. It also names the when-not-to conditions (healthy group, unpaid plan scope, pending proposals) and what to tell the user when skipped is nothing_to_suggest.

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