MCP tools

get_measurement_status

How fresh an asset's data is and whether anything is in flight: the age of the latest analysis and citation snapshots, the last real answer per engine, jobs queued or running now, and the change requests already waiting for a human. Call it before quoting a number as current, and before proposing anything, so you do not propose the same thing twice. A null snapshot means not measured, never zero.

When to use it

  • Use it when: Before quoting any number as current, and before proposing anything.
  • Not when: You need the numbers themselves; they live on the tools that measure them.

Parameters

NameTypeRequiredDescription
assetIdstringyesThe Visibility Asset UUID to query.

What comes back

Every field this tool can return. Checked against the handler on a real database in the test suite, not typed from memory.

FieldMeaning
assetIdThe asset asked about, echoed back.
dataStatusOne of ok, not_measured or empty_filter. not_measured means no measurement of this kind exists yet, which is not zero; empty_filter means data exists and your filter matched none of it.
hrefThe dashboard page that holds the evidence behind this result, for the right site. A signed-in person can open it; quote it beside the numbers.
availableFalse when the asset is not in your organization; only a note follows then.
noteWhat null means here: not measured, never zero.
asOfWhen this status was read.
analysiscollectedAt and ageHours of the latest analysis snapshot, or null when none exists.
citationscollectedAt and ageHours of the latest citation sweep, or null when none exists.
enginesPer engine: lastAnswerAt and answers, counting only calls that returned an answer. An engine missing here has never answered.
inFlightcount, and the jobs queued or running now.
pendingChangeRequestsProposals already waiting for a person: changeRequestId, kind, summary, source, createdAt. Do not propose them again.

What comes back with the number

Shares arrive with the sample size behind them and a 95% Wilson interval. Values carry a provenance of measured, estimated or derived. A pillar that was not measured reports as not measured rather than as zero, and the composite Visibility Score is held until at least 5 of its 7 pillars are measured.

Example request

The wire shape, from the schema. Every argument is a placeholder.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_measurement_status",
    "arguments": {
      "assetId": "<assetId from list_assets>"
    }
  }
}

What dataStatus means

  • ok: There is at least one result, or a measured zero.
  • not_measured: No measurement of this kind exists yet for the asset. Not zero, and not a broken connection.
  • empty_filter: Data exists, and the filter you passed matched none of it. Retry without the filter.

Example prompt

Call get_measurement_status for my site. Is anything running, how old is the latest measurement, and is anything waiting for my approval?

Calling it

Connect the MCP server at https://app.seoaio.ai/api/mcp over the Streamable HTTP transport. Per-customer authentication is required, so nothing is exposed without it. Call list_assets first: every other tool needs an assetId from it.

Next

For an agent

Read the skill at /SKILL.md before calling anything. It carries the tool order and the rules for quoting a number, including the one that matters most: quoting a share without its interval overstates what we measured.