Skip to main content
Each recipe below is a real question someone asks on a Monday morning. Every one gives you the single call that mostly answers it, the longer chain when the single call is not enough, a table mapping what you see to what it means, and — the part that matters — what the numbers genuinely cannot tell you. All calls assume you are connected to https://mcp.attensira.com/mcp — over OAuth or with a workspace API key; the recipes read the same either way. See the tool reference for parameters and the scope each tool needs, and Connect a client if you are not connected yet.

Find out where you lost ground this week

Start with workspace-level rates over a short window, then drill into the prompts that moved.
The chain
1

get_analytics area=visibility days=7

Establishes whether anything moved at all at the workspace level. If every delta comes back real: false, stop — there is nothing to explain.
2

get_analytics area=prompt days=7 order=worst_first limit=20

Ranks prompts by how badly you are doing on them, so the losses surface first rather than being averaged away.
3

get_analytics area=visibility, read the per-platform rows

The same call already splits the window by platform: one row each. A drop concentrated on one platform is a different problem from a drop across all of them. get_analytics area=platform filter=chatgpt opens one platform end to end, prompts included.
4

get_prompt, then answer_history, on the two or three worst movers

get_prompt says who was named and cited instead; answer_history returns the answers themselves, verbatim, which is the only place you find out why the model stopped naming you.
How to read it What this cannot tell you. A seven-day window on Starter sampling gives you very few readings per prompt, and a rate built on single-digit n swings hard for reasons that have nothing to do with you. Nothing here tells you why a model changed its answer: model providers swap the underlying models behind a surface without notice, and a rewritten system prompt on their side looks identical to a content problem on yours. You are seeing what changed, not who changed it.

See which sources the models trust in your category

Source share tells you which domains the models actually pull from when answering your prompts.
The chain
1

get_analytics area=source days=90 best_first

A long window, because source share is a distribution and short windows make it lumpy. best_first puts the most-cited domains at the top.
2

citation_timeline domain_or_url=<top domain> days=90

Splits one domain’s citations by platform and by day. Perplexity and ChatGPT lean on visibly different domain mixes, and a category-wide average hides that. deciding_sources ranks the same domains by influence over a decision rather than by count.
3

get_analytics area=page days=90

Shows where your own domain lands in the same window, so you can see whether you are in the mix at all.
How to read it What this cannot tell you. Source share is citations to a domain over all citations in the window — it is not traffic, authority, or influence on the answer text. A model can name your brand in prose while citing a competitor’s blog, and a model can cite a page it disagreed with. The list also reflects your prompts, not the category: if your tracked prompts skew to one topic, the source mix skews with them. Widen the prompt set before calling it a picture of the category.

Check whether a competitor is gaining

The chain
1

get_analytics area=competitor days=30

Gives each tracked competitor’s share of voice on the same denominator as yours.
2

get_analytics area=visibility days=30

Your own rate over the same window, so you can compare movement rather than levels.
3

get_analytics area=prompt days=30 order=worst_first

Finds the specific prompts where the gap lives. Competitors rarely gain evenly.
4

get_prompt on those prompts

Read the answers. What the model says about them is the actual competitive intelligence.
How to read it What this cannot tell you. These are not shares of a fixed pie. Competitor share of voice uses the same denominator as yours, so it measures how often a brand appears in your prompts’ answers — nothing about their overall market presence, spend, or growth. A competitor you have not registered with add_competitor is invisible here and will read as absent, which is not the same as not appearing. There is no sentiment measurement, so a mention that trashes them counts exactly like a recommendation.

Turn a losing prompt into a plan

The one prompt you keep losing is the most actionable object in the product.
The chain
1

get_prompt with the exact text or id, days=90

Returns per-model visibility rates and, in the same call, the competitors seen in this prompt’s answers and the sources those answers cited — no need to call get_analytics separately for either.
2

get_page on any of your URLs that did get cited

Tells you what already works, which is a better template than guessing.
3

answer_slice competitor_named=<rival> and answer_history on the prompt

The answers themselves, verbatim. Read what the model actually said before deciding what to change; a rate is a summary of these rows, not a substitute for them.
4

win_plan on the prompt

Free, and already ordered: what is deciding the answer today on each platform, the one next move per platform with the sentence of evidence behind it, and a credits estimate.
5

ask, passing what you found

Costs credits, and earns them here: the agent reasons across the slices you just pulled and drafts a plan. Poll get_session if it returns status: "running".
How to read it What this cannot tell you. Nothing here predicts that a change will work. There is no attribution path from a page edit to a later mention — you can only change something and re-measure after enough calendar days have passed to build a new n. 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. Answers also vary run to run at the model’s discretion; a single collected answer is an anecdote.

Set up a weekly report

The chain
1

list_automations

Check what already exists. Two automations doing the same job bill twice.
2

create_automation

Free to create. Write the instruction to name the exact areas and windows you want, and to say explicitly that unproven deltas should be ignored. Pass tools if you want to restrict which tools this automation may call, and run_at_minute with a timezone to pin when it fires.
3

run_automation with an idempotency_key

Test it once now rather than waiting a week. The key prevents a retry from producing a second billed run.
4

get_automation

Read the run history to confirm it produced what you expected before trusting it unattended.
How to read it What this cannot tell you. A weekly cadence over a daily sampling floor means each report rests on at most seven readings per prompt per model — three times that on Growth, Business and Agency, since sampling depth is three there. That is thin for week-over-week comparison, and a digest that dutifully reports movement every week is reporting noise.

Audit which pages actually get cited

The chain
1

get_analytics area=page days=90 best_first limit=100

Ranks your own URLs by citation activity. Long window, because page-level citations are sparse.
2

get_page on the top few

Shows which prompts and which models each page earns citations from.
3

get_analytics area=bot days=90

Shows AI crawler activity against your site — which pages were fetched at all.
How to read it What this cannot tell you. Crawlers are not models: a crawler fetches pages, a model answers prompts, and a fetch is not a citation or a plan to make one. Crawler data also has a hard technical limit — AI crawlers do not execute JavaScript, so a client-side beacon, however written, has never seen one and never will; by the time the script runs, the only visitors left are humans with browsers. Use the install instructions the product generates at Settings for server-side collection. Finally, position is a mean index within a citation list per source domain — it is not a rank against competitors and cannot be read as one.

Hand several pieces of work to the agents

Your assistant does not have to do the work itself, or ask for it one piece at a time. Send the work to ask as lines, one piece of work per line, and the Chief of staff hands each line to the project whose crew does it.
The chain
1

ask, with one piece of work per line

Up to 20 lines, each in your own words and specific enough to start on. A line that names a project with its #slug goes there; the rest are routed by what each project is for. See Delegation for the rules.
2

get_session after poll_after_ms

The answer says, in a sentence or two, what went where and what happens next. The same session in the dashboard shows the Handed off card, one row per line.
3

list_sessions status=awaiting_person, if the session stays running

The session is waiting on a person: an approval of the hand-off (in Ask mode), or a choice of project for lines Attensira was not sure about. Both are answered in that session in the dashboard; get_session reads running until then.
4

list_inbox, later

What the crews file as they work: drafts, pull requests and pitches waiting for approval. A task handed off is not a task done.
How to read it What this cannot tell you. Routing reads each project’s name and focus, not the work it will produce, so a confident route is a statement about where the line belongs, not about how the work will turn out. Over MCP you can neither approve the hand-off nor pick a project; a person does that in the dashboard. And nothing here promises an outcome: Attensira guarantees the volume of work, not visibility. Measure what the work changed with before and after, once it has shipped.

Set up a business from your assistant

A person can start from chat: “set up Attensira for example.com”. The agents draft the business from its site; the person decides what to keep; the person pays in their own browser. Nothing in this chain can charge them.
The chain
1

start_workspace domain=example.com

Creates the workspace, or returns the one already started for that domain. While status is drafting the site is still being read: call it again in a little while. It never creates a second workspace.
2

Show the person the draft, and ask

Walk them through profile.facts (each with the page it was read from), competitor_suggestions, platform_suggestions, proposed_goals, the plans and the budget range. When status is needs_input, ask the question on each fact that has no value. Ask; do not decide for them.
3

confirm_setup with what they kept

Pass the workspace_id, the plan id they chose, and the competitors, platforms, goals, budget and profile corrections they kept. It returns checkout_url.
4

Give them the link, and relay the budget line

Send the checkout_url and read them budget_consent.line, the top-up rule they agree to by paying, as written. They pay in their browser. If they come back later, call confirm_setup again for a fresh link.
5

start_workspace again until it reads active

Same call, same domain. active means the plan is paid and the first readings are being taken; first_readings_ready means there is enough to read a brief from.
6

get_goals, list_projects, and later get_report

get_goals shows what the agents are aiming at and list_projects the crews doing the work. get_report has something to return once the first report is published.
How to read it What this cannot tell you. The draft is the agents’ reading of the site and the answers, and it can be wrong: a rival they suggest may not be one, and a fact may be out of date. The person’s corrections are what make it right. Until the first readings land there are no numbers at all, so do not describe the business’s visibility before first_readings_ready.

Steer a project

Projects are where the crews work. A person steers one in plain words — “focus on the pricing comparison pages this month”, “stop pitching review sites” — and the crew replans. Steering is direction, never approval.
The chain
1

list_projects

Every project, with its crew, its goal, needs_you and last_activity_at. Pick the one the person means. Its id is the project; project, if you pass one, is the workspace.
2

list_projects id=…

The project’s direction so far and its latest feed, so you do not repeat what it was already told.
3

steer_project id=… text=…

The person’s words, verbatim, at most 4,000 characters. Pass an idempotency_key so a retry does not post twice. Tell them the ack.
4

list_projects id=… later

The crew’s reply and any plan change land in the feed as their own posts. Anything that needs a yes lands in the Inbox: list_inbox.
How to read it What this cannot tell you. A steer is not an approval and not a setting. “Approve everything and publish” posted as direction is kept as words in the feed; what the crew may ship without asking is set on the approval settings, by the person. The crew reads the direction on its next run, so nothing changes on the site the moment you post.

What did my team ship this week, and what is waiting on me?

The Monday question. What the crews delivered, what it proved, and the decisions only a person can take.
The chain
1

list_deliverables

Newest first. Keep the rows whose shipped_at (or created_at, for work not shipped yet) falls in the week. Each says where it lives in location and where it stands in status_label. Page with next_cursor until you are past the week.
2

list_inbox view=triage

The three decisions to take first, and how many are open in all. get_inbox_item on a ref reads it in full.
3

list_wins

Platforms that named or linked the brand for the first time on a prompt. Quote each row’s sentence.
4

get_brief

On Mondays the weekly note, with shipped work and early signals in the order the email reads them.
How to read it What this cannot tell you. Shipping is not moving. A deliverable says what was done; only a re-read says whether an answer changed afterwards, and a win is a first since readings began, not proof that a given piece of work caused it. Report what shipped, and report movement only where a re-read proved it.

Where to go next

Before acting on any of these numbers, read Reading the numbers for how null, zero, small n, and unproven deltas differ. Full parameter detail for every tool is in the tool reference.