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

prompteye-mcp

Official

Pause, resume, file or re-prioritise a prompt

update_prompt

Changes what happens to one prompt from here on in the project: whether it is asked (status 'active' or 'paused'), which group and categories it is filed under, and how much the project bets on it.

Instructions

Changes what happens to one prompt from here on in the project: whether it is asked (status 'active' or 'paused'), which group and categories it is filed under, and how much the project bets on it.

Note:

  • Pausing a prompt frees capacity against the plan limit; resuming consumes capacity.

  • A paused prompt stays in its group and comes back into it when resumed. To free capacity, pause the prompt and leave groupId alone.

  • Taking a prompt out of its group (groupId null) loses the group it would come back to. Do it only when the user asked for that prompt to be regrouped or ungrouped, never as part of pausing it.

  • The prompt text itself cannot be changed: a different question is a different measurement (add a new prompt and pause the old one instead).

  • Moving a prompt between groups or categories keeps its history intact.

  • Setting businessPriority overrides the computed priority; passing null hands it back to PromptEye's computation.

Input Schema

NameRequiredDescriptionDefault
statusNoWhether the prompt is asked on the next run ('active' or 'paused').
groupIdNoGroup id to move the prompt into, or null to leave it ungrouped.
promptIdYesId of the prompt to update, as list_prompts 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.
categoryIdNoCategory id to file the prompt under, as listed by list_categories. Null clears all categories.
subcategoryIdNoSubcategory id of categoryId, which must be sent together with categoryId.
businessPriorityNoSets priority manually ('very_high', 'high', 'medium', 'low', 'very_low'), or null to reset to computed.
businessPriorityReasonNoReason why that priority was set manually.

Output Schema

NameRequiredDescriptionDefault
idYes
promptYes
statusYesactive = asked on every run, paused = not asked, pending = added but not measured yet.
groupIdYesnull = the prompt is ungrouped.
keywordYesKeyword the prompt was built around. Empty when it was written by hand.
aiTrafficYesEstimated monthly searches behind the prompt; a property of the prompt, not of the period. 0 = measured, below the reporting floor of 50 searches a month. null = no figure: not measured yet when aiTrafficMeasuredAt is null, otherwise measured with no volume found (unknown, not zero).
createdAtYesWhen the prompt was added, ISO 8601 in UTC.
categoriesYes
subcategoriesYes
businessPriorityYesvery_high, high, medium, low or very_low. null = not ranked yet. A priority set by hand wins over the computed one.
aiTrafficMeasuredAtNoWhen aiTraffic was last measured, ISO 8601 in UTC. null = never measured. A failed refresh keeps the previous figure and date.
businessPriorityReasonNoWhy the priority was set by hand. null = the computed priority, or no reason given.

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"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "promptId"
      -]New value: +[
      +  "projectId",
      +  "promptId"
      +]
  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": {
      +    "aiTraffic": {
      +      "description": "Estimated monthly searches behind the prompt; a property of the prompt, not of the period. 0 = measured, below the reporting floor of 50 searches a month. null = no figure: not measured yet when aiTrafficMeasuredAt is null, otherwise measured with no volume found (unknown, not zero).",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "aiTrafficMeasuredAt": {
      +      "description": "When aiTraffic was last measured, ISO 8601 in UTC. null = never measured. A failed refresh keeps the previous figure and date.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "businessPriority": {
      +      "description": "very_high, high, medium, low or very_low. null = not ranked yet. A priority set by hand wins over the computed one.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "businessPriorityReason": {
      +      "description": "Why the priority was set by hand. null = the computed priority, or no reason given.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "categories": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "createdAt": {
      +      "description": "When the prompt was added, ISO 8601 in UTC.",
      +      "type": "string"
      +    },
      +    "groupId": {
      +      "description": "null = the prompt is ungrouped.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "keyword": {
      +      "description": "Keyword the prompt was built around. Empty when it was written by hand.",
      +      "type": "string"
      +    },
      +    "prompt": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "active = asked on every run, paused = not asked, pending = added but not measured yet.",
      +      "type": "string"
      +    },
      +    "subcategories": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "prompt",
      +    "keyword",
      +    "status",
      +    "categories",
      +    "subcategories",
      +    "groupId",
      +    "createdAt",
      +    "aiTraffic",
      +    "businessPriority"
      +  ],
      +  "type": "object"
      +}
  3. Addedv1.0.12

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare that this is a non-read-only, non-destructive, non-idempotent mutation. The description adds real behavioral context beyond that: pause frees plan capacity and resume consumes it, a paused prompt keeps its group, nulling groupId loses the restore target, regrouping preserves history, and businessPriority null hands priority back to computed. These are consequences the agent could not infer from the schema.

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?

Front-loaded one-sentence summary followed by six bullets, each addressing a distinct failure mode — no filler. Minor deductions for the loose metaphor "how much the project bets on it" that only becomes precise in the last bullet, and for the slight overlap between the capacity-freeing bullets.

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?

With an output schema, 100% parameter description coverage, and annotations present, the description carries only what structured fields cannot: mutation consequences, capacity effects, and the destructive-ish edge of ungrouping. For an 8-parameter mutation tool this is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning on top: it explains that groupId null is irreversible-ish (the return group is lost) and that setting businessPriority suppresses the computed value while null restores it. It does not add anything about subcategoryId beyond the schema's own pairing rule, which keeps it from a 5.

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 specific verb (changes) and resource (one prompt) and enumerates exactly what is mutable: asked-status, group/category filing, and business priority. It also draws a hard boundary against adding prompts ("a different question is a different measurement"), so an agent can distinguish it from add_prompts without opening a schema.

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 an explicit when-to/when-not-to rule for the riskiest parameter: groupId null should only be used when the user asked for regroup/ungroup, "never as part of pausing it." It also supplies the correct alternative for the one thing this tool cannot do (add a new prompt and pause the old one), and explains the capacity consequence that motivates pausing.

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