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

prompteye-mcp

Official

Order a content brief for an article

create_content_brief

Starts content generation for the project: orders a brief — a title and an H2/H3 outline — for an article that targets one prompt.

Instructions

Starts content generation for the project: orders a brief — a title and an H2/H3 outline — for an article that targets one prompt. Call this when the user wants PromptEye to generate content, write an article, or close a visibility gap on a prompt where the brand is rarely or never named.

PromptEye generates content as well as measuring visibility, and the two make one loop: track the prompts and how often the assistants name the brand on them, generate an article that targets a prompt where the brand is weak, publish it, then measure whether that prompt's visibility and citations move. Generation starts from a content brief: PromptEye fans the target prompt out into the phrases people ask around it, keeps the ones that belong in this article, sets aside the ones that deserve an article of their own, and writes a title and an H2/H3 outline from them. create_content_brief orders one and get_content_brief reads it. create_article then writes the article from a ready brief, from the brand description, the knowledge documents picked for it and the chosen writing style; get_article reads its text and list_articles lists the project's articles, also those added in the app under Content (https://app.prompteye.com/content). Publishing the page is done on the user's own site; publish_article then records the URL it went live at, and requesting indexing and following citations happen in the app. A generated article is a draft to review, and neither it nor its indexing guarantees that an assistant will cite it. Guides: https://app.prompteye.com/help/content/ and https://app.prompteye.com/help/content/article-workflow/.

Pass promptId when the article targets a prompt the project already tracks, so the brief is linked to it and that prompt's visibility is what measures the article; a prompt that is not tracked can still get a brief, but nothing will measure its impact. Every call orders a new brief, so asking twice for the same prompt makes two. The brief comes back processing; read it with get_content_brief a little later.

Input Schema

NameRequiredDescriptionDefault
promptYesThe question the article should answer, phrased the way someone would put it to an assistant. For a tracked prompt, its text as list_prompts reports it.
promptIdNoId of the tracked prompt the article targets, 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.

Output Schema

NameRequiredDescriptionDefault
idYes
errorYesWhy generation failed. null unless status is error.
titleYesGenerated article title. null until status is ready.
promptYes
statusYesprocessing until generated, then ready (title and outline filled in) or error.
outlineYesThe H2/H3 structure of the article. null until ready.
readyAtYesWhen it finished, ISO 8601 in UTC. null = not finished yet.
projectIdYes
trackerIdYesThe tracked prompt the brief is linked to. null = requested standalone.
fanoutErrorYesSet when the fan-out failed but the brief completed with the phrases it had. null otherwise.
requestedAtYesWhen the brief was requested, ISO 8601 in UTC.
fanoutSourceYesWhich fan-out engine produced the phrases. null until ready.
originalTitleYesTitle of the existing article being optimized. null = no existing article, or not ready yet.
fanoutVariantsYesEvery phrase the fan-out found. null until ready.
separateArticlesYesPhrases that deserve an article of their own. null until ready.
phrasesForArticleYesPhrases that belong in this article and built the outline. null until ready.
titleChangeAnnotationYesWhy the title changed. null = kept, no existing article, or not ready yet.
sourceTextMatchPercentageYesHow much of the phrase coverage the existing article already had, in whole percent 0-100. null = no existing article, or not ready yet.

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: -[
      -  "prompt"
      -]New value: +[
      +  "projectId",
      +  "prompt"
      +]
  2. Addedv1.0.22

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations it discloses the async lifecycle ('the brief comes back `processing`; read it with get_content_brief a little later') and spells out the non-idempotency consequence that asking twice creates two briefs. It also sets expectations that a generated article is only a draft and that neither the article nor indexing guarantees a citation — a real behavioral caveat the annotations cannot carry.

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 core action and trigger are front-loaded well, but roughly half the text is an ecosystem narrative about create_article, get_article, publish_article, indexing and the app UI, which is largely the job of the sibling tools' own descriptions. For a three-parameter tool this is heavier than needed, though little is actively misleading.

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?

An output schema exists so return values need no explanation, and the description covers the remaining gaps: preconditions for measurement, async polling, non-idempotency, and the limits of what a generated article guarantees. An agent has everything needed to call it correctly and follow up.

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 baseline is 3, and the description adds genuine value on top: it explains why promptId matters (linking the brief so that prompt's visibility measures the article) and what happens without it. It adds nothing about the `prompt` or `projectId` fields, which the schema already covers well.

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 first sentence gives a specific verb ('orders') and a precisely defined resource (a brief — title plus H2/H3 outline) scoped to one target prompt. It also explains how generation differs from the measurement side of the product, so it is clearly distinguishable from get_content_brief and create_article.

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?

It names both invocation triggers ('the user wants PromptEye to generate content, write an article, or close a visibility gap on a prompt where the brand is rarely or never named') and the follow-up tool (get_content_brief). The promptId paragraph is an explicit use/use-differently rule: pass promptId for tracked prompts, untracked prompts still work but nothing measures impact.

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