# How do I turn a question we keep losing into a plan?

> For the complete documentation index, see [llms.txt](https://attensira.com/llms.txt).
> Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.

> Ask your assistant to turn one prompt you never win into a plan: the Attensira MCP calls from get_prompt to win_plan, and why no plan can promise to work.

- Canonical page: https://attensira.com/mcp/use-cases/turn-a-losing-prompt-into-a-plan
- Family: mcp-use-cases
- Last updated: 2026-10-04
- Author: Karl-Gustav Kallasmaa (https://x.com/kallasmaa)
- Claims as data: https://attensira.com/claims.json?slug=turn-a-losing-prompt-into-a-plan

**In short:** Ask your assistant for the full picture of one question you keep losing: who is named instead, and which sources decide the answer. Then ask the Attensira MCP server for a win plan, which is free and orders the next move per engine with a credits estimate. Hand the plan to the crew only once you agree with it.

## What it showed on attensira.com (read 2026-10-04)

Asked in Claude Code: "We never win "MCP server for AI search visibility". What would it take?"

Call: `win_plan prompt="MCP server for AI search visibility"`

Named in 0 of 24 answers. Two moves, one per engine, about 12 credits. No change proven yet: this is work to do, not a result.

| Row | Value | Note |
| --- | --- | --- |
| ChatGPT: write a page of our own | about 8 credits | none of our pages is among the sources that decide it (n = 12) |
| Perplexity: get into the roundup it reads | about 4 credits | a Search Engine Land guide to MCP servers (n = 12) |
| Named in answers today | 0 of 24 | SE Ranking named in 15 of 24 |

_Our own losing prompt, and the plan the crew would follow._

## Which call answers it?

```json
{ "tool": "get_prompt", "arguments": { "prompt": "MCP server for AI search visibility", "days": 90 } }
```

## What is the chain behind it?

1. **Call get_prompt with the exact wording or the prompt id** get_prompt accepts either a prompt id or the prompt's exact text, and returns the per-platform rates, the delta, the competitors seen in this prompt's answers and the sources those answers cited — all in one call. Use days=90 so the rates rest on more than a handful of readings. Inexact text will not match, so fall back to search if it misses.
2. **Call get_page on any URL of yours that was cited** get_page returns that URL's citation rate, its delta against the previous window, its per-engine channels and the prompts whose answers cited it. A page that already earns citations is a better template for the next one than a guess about what models like.
3. **Use search when you need the wording behind a rate** search runs full text across prompts, answers, pages and sources, and every snippet it returns is capped at 400 characters. That makes it a pointer to a record you then fetch in full, never a way to read a complete model answer.
4. **Call win_plan on the prompt** win_plan is free and already ordered. It returns what decides the answer today on each platform, one next move per platform with the sentence of evidence behind it, and a credits estimate. Its footer says no change is proven until a re-read comes back moved.
5. **Hand what you found to ask, then poll get_session** ask spends credits and needs write access (any signed-in connection, or a read-and-write key), and it earns them here — the agent reasons across the slices you just pulled, crawls and audits pages, and drafts a plan. A long question comes back as status "running" with no answer; wait poll_after_ms and poll get_session with the returned id.

## How do I read what comes back?

| What you see | What it means |
| --- | --- |
| Competitors named in get_prompt, you absent, sources pointing at third-party lists | A placement problem rather than a page problem. The work is getting onto those lists, not rewriting your own page. |
| Your rate low but not zero | The model names you sometimes. Consistency is the gap, not existence, and that is a different fix from being unknown. |
| A cited source you do not own with a high n | The models have a go-to reference for this prompt and it is not you. |
| Mention rate 0 with n above 20 | A measured absence rather than a missing measurement. This is the version worth working on. |

## What can't this tell you?

- Nothing in this chain predicts that a change will work. There is no attribution path from a page edit to a later mention: you change something, wait for enough calendar days to rebuild an n, and re-measure. A plan executed today shows its earliest possible signal tomorrow and a trustworthy one much later.
- The rates here are mention and citation rates with their sample size, not a rank against competitors and not a score. Competitor rates use the same denominator as yours, so they do not sum to anything and cannot be read as a share of a market.
- A single collected answer is an anecdote. Each prompt is read at most once per model per country per workspace-local day, sampled once on Starter and three times on Growth and Business, and models vary their answers run to run at their own discretion.

### What did it show on our own workspace?

The plan split by engine, and the split is the lesson. On ChatGPT, nothing of ours is among the sources that decide the answer, so the move is a page of our own. On Perplexity, the answer is built from a roundup, so the move is getting into it. One prompt, two different kinds of work. The plan's footer said no change was proven yet, which is the only honest thing a plan can say before the work ships.

### Why read the shape of the sources before the number?

When the cited sources are roundups and listicles you are not in, no edit to your own page changes the answer, because your page was never what the model read. That is placement work, and a different project from a rewrite. Whichever of your URLs did get cited is worth a `get_page` call: a page that already earns citations shows what shape works for your domain more reliably than a theory about what models prefer.

### Why do the credits come last?

The reads before it are free and immediate, and they are what make the crew's answer specific instead of generic. `ask` crawls and audits pages and drafts the work, so it spends credits and needs write access. Spend them once the plan reads right to you, not before.

The workspace-level version of this question is [where you lost ground this week](/mcp/use-cases/find-where-you-lost-ground-this-week). If the deciding sources are domains you have never heard of, read [which sources the models cite](/mcp/use-cases/see-which-sources-models-cite).

## FAQ

### Do I have to look up the prompt id first?

No. get_prompt accepts the prompt's exact text as well as its id, which saves a search round-trip when you already know the wording. It has to be exact — inexact text will not match, and search is the fallback.

### Why does this recipe spend credits when the others do not?

Because it ends in ask, which runs an agent chat on an agent model. get_prompt, get_page, search and win_plan are reads and free. The tools that spend credits are the ones that start agent work, such as ask, run_automation and add_prompts; the MCP tool reference lists every one.

### ask returned status "running" and no answer. Did it fail?

No, that is the documented behaviour for a long question. Wait the poll_after_ms it returns, then poll get_session with the session id until status is complete and the answer is populated.

### Can I see which slices the agent actually read?

Yes. Call get_session with include set to ["events"] for the step-by-step trace of which tools it called and with what arguments. That is the check to run when an answer looks wrong.

### My rate is null rather than 0. What is the difference?

A null rate means Attensira did not measure that thing in that window — the platform was not tracked, or no run succeeded. A 0 with n above 0 is a measured absence. Treating null as zero invents a failure that did not happen.

## Sources

Each entry below is one claim on this page. `retrieved` is the date the exporter or a human last saw the source say this, and nothing more: it is not a publication date and not a promise of re-verification. `cite` is the anchor on the canonical page where this claim is rendered.

### sampling-cadence

Attensira's MCP recipes state that sampling runs at most once per prompt per model per day, so a plan executed today shows its earliest possible signal tomorrow.

- source: https://docs.attensira.com/mcp/recipes (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/mcp/use-cases/turn-a-losing-prompt-into-a-plan#claim-sampling-cadence

> Sampling is at most once per prompt per model per day, so a plan executed today shows its earliest possible signal tomorrow and a trustworthy one much later.
### reads-free-ask-spends

Attensira's MCP tool reference states that the read tools are free and immediate, while ask costs credits and takes time.

- source: https://docs.attensira.com/mcp/tools (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/mcp/use-cases/turn-a-losing-prompt-into-a-plan#claim-reads-free-ask-spends

> those are free and immediate, this costs credits and takes time
