Skip to content

How-to guideWorks with

Otterly.AI and FreshlyCited: find uncited pages, then check Google

You can use Otterly.AI with FreshlyCited by connecting both MCP servers to one AI agent. Otterly.AI's server (https://data.otterly.ai/mcp) reports which of your URLs AI answers cite, per prompt and engine. FreshlyCited checks whether Google has indexed the target pages that aren't cited and pushes the ones it hasn't. The two aren't formally integrated.

The story · 3 steps
Add FreshlyCited to your agentFree plan: 10 free links to try (once you verify your email), then 100 free checks a month, no card.
On this page · 6 sections
  1. 01What does Otterly.AI tell you about cited pages?
  2. 02What can't Otterly.AI tell you about indexing?
  3. 03How does the Otterly.AI and FreshlyCited workflow run?
  4. 04How do you set up both servers, per client?
  5. 05What prompts can you give the agent?
  6. 06What are the limits and costs?

Indexing doesn't earn a citation, but a page Google hasn't indexed (stored in the index, the library Google's results and AI Overviews answer from) can't be cited in AI answers built on that index. This guide covers what Otterly.AI's MCP server returns, what it can't tell you, the workflow, setup for both servers per client, example prompts, and the limits and costs as of October 2026.

What does Otterly.AI tell you about cited pages?

Otterly.AI tells you which URLs AI engines cited for the prompts in a brand report, on which engines and dates, and which prompts produced each citation. Its MCP server exposes that data as tools, each with a counterpart in its Public API. The tools that matter for this workflow, as listed in Otterly.AI's MCP documentation (checked on October 17, 2026):

Tool

Required arguments

What it returns

list_brand_reports

none

Your brand reports, so the agent can pick a reportId

list_brand_report_citations

reportId, startDate, endDate, country

"Cited URLs for a brand report, filterable by AI engine, tag, and search query"

get_brand_report_citation_stats

same four

Top cited domains, share of citations and most-cited URLs

list_brand_report_citation_prompts

reportId, url, dates, country

The prompts that cited one URL

get_brand_report_citation_history

reportId, url, dates, country

Total citations for a URL, the change against the previous period and a daily breakdown by engine

get_account_info

none

Plan, usage and remaining MCP tool calls

The engines you can filter by are chatgpt, claude, google, perplexity, copilot, google_ai_mode and gemini. Country is a lowercase two-letter code, with uk for the United Kingdom. List tools return 25 rows by default and up to 100 per call, so the agent pages through long citation lists. For a wider look at what trackers measure, see our guide to AI visibility tracking.

What can't Otterly.AI tell you about indexing?

Otterly.AI can't tell you whether Google has indexed a page, and it doesn't list the pages that were never cited. It records what AI engines cited for your tracked prompts. A target page missing from those results could be unindexed, out of date in the index, or indexed and simply not chosen.

Two details are easy to miss:

  • It only knows cited URLs. You supply the list of pages you want cited (a sitemap section, a content plan, a client's priority pages), and the agent compares it against Otterly.AI's cited URLs. The difference is your uncited list.
  • Crawler visits aren't index status. Otterly.AI's Agent Analytics tools (get_brand_report_agent_stats and two others) report AI crawler visits on your domains when a log source is connected. The docs warn that when the availability field reads not_connected, "Metrics are null, not zero — nothing is being measured." A crawl (a bot visiting the page) isn't the same as being indexed by Google.

That's the gap FreshlyCited fills on the Google side. It checks each URL and reports "Seen by Google" or "Invisible". It doesn't track AI citations, and it doesn't check Bing's index. If you already have a list of pages no AI answer cites, check which ones Google has indexed with the free plan's 100 checks a month.

A Google check answers the question for Google's surfaces only: Google Search, AI Overviews and AI Mode, which draw on Google's index. The other engines a tracker watches work differently. "ChatGPT, Perplexity and other assistants use their own crawlers and search partners. We don't submit to them, and we don't claim to." So for an uncited page in ChatGPT or Perplexity, a Google result tells you about Google, not about them.

How does the Otterly.AI and FreshlyCited workflow run?

The workflow is one agent run with both servers connected: pull cited URLs from Otterly.AI, compare them with your target pages, check the uncited ones in FreshlyCited, and push only the ones Google hasn't indexed. There's no event that starts it. You run it on demand or on a schedule, for example after each weekly brand report refresh.

  1. Confirm access and budget. get_account_info on Otterly.AI shows remaining MCP calls and doesn't count against the limit. On FreshlyCited, get_started shows the workspace and credit balance.
  2. Pick the report. list_brand_reports, then choose the client's reportId.
  3. Pull cited URLs. list_brand_report_citations for the last 28 days and the client's country, paging until hasMore is false. Keep the URLs on the client's own domain.
  4. Find the uncited targets. Compare against your target list. Normalize URLs first (scheme, www, trailing slash) so a formatting difference doesn't read as "not cited".
  5. Check indexing. FreshlyCited's check_index with the uncited URLs. A standard check can take a few minutes, so the agent polls get_job_status. Each URL comes back as "Seen by Google" or "Invisible".
  6. Push only the invisible ones. send_unindexed_to_indexer on that finished check starts a push with just the links Google can't see. Or skip step 5 and call submit_index_job with smart: true, which checks first and pushes only what Google hasn't seen (smart push).
  7. Read the result later. FreshlyCited re-checks on days 1, 3 and 7. get_job_status shows the outcome, and share_job_report creates a read-only client report link.

Pages that come back "Seen by Google" but still aren't cited need a different fix: clearer answers, sources, and mentions on sites AI engines already trust. Our guide on getting recommended by AI assistants covers that side.

Prefer a script to an agent? The same steps work over APIs. Otterly.AI's Public API (same plans as MCP) serves the same data at GET /v1/reports/brand/{reportId}/citations with a Bearer oai_live_… key (Otterly.AI API reference), and FreshlyCited's full REST API comes with any pack or Agency plan.

How do you set up both servers, per client?

Setup is two claude mcp add lines in Claude Code, or two entries in one config file elsewhere. Otterly.AI signs you in through the browser the first time a tool runs. FreshlyCited uses OAuth 2.1 or an API key.

Shell
claude mcp add --transport http otterly https://data.otterly.ai/mcp
claude mcp add --transport http freshlycited https://freshlycited.com/mcp

Run claude mcp list to see both connected; Otterly.AI's docs say its tools then appear as mcp__otterly__<tool_name>. Our Claude Code setup guide covers FreshlyCited's scopes and API key header, and the FreshlyCited developer docs cover other clients.

In Cursor, Otterly.AI documents the mcp-remote bridge, while FreshlyCited takes a plain URL (connect FreshlyCited in Cursor):

JSON
{
  "mcpServers": {
    "otterly": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://data.otterly.ai/mcp"]
    },
    "freshlycited": { "url": "https://freshlycited.com/mcp" }
  }
}

If you also run Claude Desktop through mcp-remote on the same machine, Otterly.AI warns that the clients share one stored login and keep signing each other out. Its fix is a separate MCP_REMOTE_CONFIG_DIR and callback port per client.

Per client. Otterly.AI scopes data by workspace, and the account that approves the sign-in is "whichever account your browser is already signed into" (Otterly.AI Help), so use a separate browser profile for each Otterly.AI account. In FreshlyCited, each client is a workspace. The OAuth consent screen lets you pick the workspace and full or read-only access, and an API key only sees its own workspace and the clients under it. The agent can call list_tenants and pass a client's tenant_id to check_index and submit_index_job, so results and credits stay separate per client.

We checked Otterly.AI's endpoint on October 17, 2026 with the unauthenticated request its docs suggest. It answered with a 401 and this body, which confirms the server is up and wants an OAuth token:

Shell
curl -i https://data.otterly.ai/mcp -X POST \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
# HTTP/2 401
# {"error":"Unauthorized","error_description":"A valid OAuth bearer token is required."}

What prompts can you give the agent?

These prompts work with both servers connected. Each names the tools so the agent doesn't guess; replace the bracketed parts.

Text
Use Otterly to list cited URLs for the [Client] brand report, country us,
for the last 28 days (page until hasMore is false). Compare them with the
URLs in [target-pages.txt] after normalizing scheme, www and trailing
slashes. Show me the target pages with no citation.
Text
Run a FreshlyCited check_index on those uncited pages in the [Client]
workspace. Then use send_unindexed_to_indexer on that check so only the
pages Google can't see are pushed. Tell me how many were Seen by Google
and how many were Invisible.
Text
For [URL], use list_brand_report_citation_prompts and
get_brand_report_citation_history for the last 90 days. If it lost
citations, check whether Google still has it indexed with check_index.
Text
Every Monday: check get_account_info first and stop if fewer than 200 MCP
calls remain. Then run the uncited-pages check for each client and give me
one table per client.

The last prompt needs a scheduler, such as a cron job that starts Claude Code with the prompt, because neither server starts runs on its own. A summary might look like this (illustrative, not from a real run):

Target page

Cited in Otterly.AI (28 days)

Google index

Action

yoursite.com/pricing

Yes

Not checked

None

yoursite.com/guides/setup

No

Invisible

Pushed

yoursite.com/compare/alternatives

No

Seen by Google

Content review

What are the limits and costs?

Both products charge separately, and neither includes the other. As of October 2026:

Otterly.AI

FreshlyCited

MCP plan

Standard ($189/month) and Premium ($489/month); not on Lite ($29/month)

Agency Pro ($199/month) and Agency Scale ($599/month) (API and MCP plans)

Usage unit

2,000 MCP requests a month on Standard, 5,000 on Premium

1 check credit per standard check; index credits per push

What counts

Every tool call except get_account_info

Checks always; index credits only for links that get indexed

Other limits

List tools return at most 100 rows per call

Per-key call limits (rate limits)

Otterly.AI's plans and request counts are from its pricing page; MCP and API requests are listed separately. Once the MCP allowance is used, its docs say calls fail with "Request limit exceeded for this billing period" until the next period. Paging matters: a report with 300 cited URLs takes three calls at 100 rows each.

On FreshlyCited, an index credit is reserved when you push and used only if the link is indexed. If it's still not indexed after the day-7 re-check, the credit comes back automatically (exclusions apply, such as pages that return an error or carry noindex). Check credits aren't refundable. Pages Google already has are skipped by default; Refresh anyway sends an updated one and uses 1 index credit with no credit back. For sites you verify with an IndexNow key (an open "this page changed" notice that Bing and other participating engines accept; Google doesn't use it), pushes are also sent to Bing at no extra cost. See pricing and the FreshlyCited MCP tool reference for every parameter.

What neither tool can do: guarantee that Google indexes a page, or that an AI engine cites it. Citation still depends on quality, relevance and authority. The same workflow runs with Peec AI and FreshlyCited or Profound and FreshlyCited, and our list of SEO MCP servers covers the other servers an agent can use. To see how Otterly.AI compares with other trackers on engines and prompts, read our AI visibility tools compared.

Start with the pages your Otterly.AI reports never mention. Check those pages free: 10 free links to try, then 100 free checks a month, no card needed.

Rakesh Patel

Written by

Founder & CEO, Space-O Technologies · Founder, TextBolt

Rakesh Patel founded Space-O Technologies in 2010 and leads it as CEO, with 25 years of leadership experience; he has overseen the delivery of more than 3,000 mobile app projects. He is also the founder of TextBolt, a business email-to-SMS service, and the author of "Enterprise Mobility Strategy and Solutions" and "A Guide to Open311". Space-O built FreshlyCited to solve the "shipped but not seen" problem on its own and its clients' sites: pages and links that are live but that Google hasn't looked at yet.

Founded Space-O Technologies in 2010 · 25 years of leadership experience · author of 'Enterprise Mobility Strategy and Solutions' and 'A Guide to Open311'

Written for FreshlyCited, which helps Google and Bing find new and updated pages sooner. About FreshlyCited

FAQ

Questions people ask

Is FreshlyCited integrated with Otterly.AI?

No formal integration exists. You connect both MCP servers to the same agent, or script both APIs, and the agent passes URLs from one to the other.

Which Otterly.AI plan includes MCP?

As of October 2026, MCP and the Public API are on the Standard plan and up, not on Lite.

Will checking uncited pages in Google get them cited in ChatGPT?

No. A Google check covers Google Search, AI Overviews and AI Mode. ChatGPT, Perplexity and other assistants use their own crawlers and search partners, and FreshlyCited doesn't submit to them.

Check my pages free.

See which of your pages Google has indexed, free.