LoomalyDocs

Connect your AI assistant (MCP)

Connect Claude, Claude Code, Cursor, Codex or ChatGPT to Loomaly. Twelve intent tools cover rankings, AI search, fixes and reports — all through chat.

Loomaly is an MCP server at https://loomaly.com/mcp (plugin 2.2.0, MCP 2.0). Connect an assistant once; from then on you work in chat. Loomaly never changes your website: the assistant changes your code (or drafts a task for a developer), you review it, and Loomaly re-checks the live page.

You: What's the top fix on example.com this week?
→ status · todo
say: Missing meta description on /products/* (1,200 pages). Top item carries fixPrompt.
next: fix in the repo (or send_to_dev), open a PR, then check target fix with the PR URL

You: PR https://github.com/acme/site/pull/42 — re-check.
→ check (target: fix, ref: PR URL)
say: Awaiting deploy — Loomaly will re-check on its own. Next status will announce.

Account settings, billing, Google connect and connected assistants live under /account. There is no dashboard to drive day-to-day SEO work.

How every reply looks

Every tool result is wrapped the same way:

FieldMeaning
sayPlain-language answer for you. Assistants should relay this, not invent numbers.
nextThe next tool call (name + args), or null when you are done.
errorsRecoverable problems: { error, say, recover }. Follow recover.
handoffA step only you can do in the browser: { url, say, resume } toward /account/....

Some results also include a text chart (markdown table and/or sparkline). Paid rankings and AI mentions only appear when your plan has data budget and you have fetched them — never invent them.

Connect your assistant

claude mcp add --transport http loomaly https://loomaly.com/mcp

Add --scope user for every project. Start Claude Code, run /mcp, pick loomaly and sign in in the browser.

Guest demo (no login)

Sandboxes that cannot complete OAuth can use the read-only demo endpoint https://loomaly.com/mcp/demo (no auth). It exposes only status and check, which run the same free site preview as /check/<host> (top issues, foundations, link suggestions). Rate-limited by IP and domain; private hosts are refused. Full account tools stay on https://loomaly.com/mcp with OAuth.

mcp.json (guest demo)
{
  "mcpServers": {
    "loomaly-demo": {
      "url": "https://loomaly.com/mcp/demo"
    }
  }
}

Signing in and permissions

  1. Your browser opens. Sign in (or create a free account) with the account that owns the sites.
  2. Check You will be sent to on the consent screen — local tools show localhost.
  3. Choose scopes. Reading findings is always on. Adding sites, scanning, re-checking after a fix, and Search Console read/write start ticked.
ScopeAllows
findings:readstatus, todo, problem, focus, visibility, report
findings:writetriage, set_goals, send_to_dev
audit:runadd_site, check (including paid targets)
gsc:readvisibility with view: google
gsc:writegoogle (connect / verify / submit sitemap)

Manage connections at /account/agents. Disconnect takes effect on the next call.

The twelve tools

ToolWhat it does
statusPlan, usage, member role, sites and scan phase. Optional domain adds a site when the account is empty. Optional setRole (solo | ops | product | dev).
add_siteAdd a domain and start the first scan. Poll status until scan.phase is done or failed.
todoThis week's plan and the rest of the queue. Top open item carries fixPrompt, evidence, url, and verify. view: plan (default), queue, links, or opportunities.
problemOptional detail: evidence and fix instructions for one finding (findingId), or list pages for a rule.
triageActions: ignore, restore, or decide_link. Confirm fixes with check (target: fix), not triage.
send_to_devPaste-ready task text for a developer.
checkRe-check a fix (target: fix + PR ref), whole-site scan, preview URL, or paid rankings / ai / competitors / backlinks. Omit maxCost for an estimate; pass it to spend budget.
visibilityRead-only Search Console (view: google) or stored paid views. Never spends budget.
focusFocus page for the week: brief, search numbers, open issues, change verdicts.
set_goalsBrief, focus page, conversionValue, track lists, memberRole, or log a shipped change.
googleconnect, verify, or submit the sitemap. May return a handoff to authorize Google.
reportweekly, compare, public (share link /r/<token>), pdf, or roi.

IDs come from earlier results (siteId, findingId, …). With no site yet, status / todo return needsSite and point at add_site.

triage actions

  • ignore — needs a reason.
  • restore — reopens an ignored finding.
  • decide_link — accepted or dismissed for a link suggestion id from todo (view: links).

Typical fix loop

Connect and add the site

status. If needsSite, call add_site with the domain. Poll status until the scan finishes.

This week's work

todo — the top open item already carries fixPrompt, evidence, url, and verify. Call problem only when you need more detail. Solo / dev: apply the fix in the repo. Ops / product: send_to_dev and paste the task.

Open a PR and re-check

Open a PR. Immediately check with target: fix and ref = PR URL. Loomaly waits briefly; if the page is unchanged it awaits deploy and re-checks on its own. The next status announces settled results.

Paid data: set_goals stores trackKeywords / competitors / aiPrompts → visibility reads stored data → check without maxCost estimates → with maxCost spends the monthly budget. Free is $0. See Plans and Roles.

Try this prompt

Use Loomaly to check example.com. Fix the top problem in this repo, open a PR, then check with target fix and the PR URL as ref.

Troubleshooting

  • Won't connect. Client must support remote Streamable HTTP + OAuth (not SSE-only).
  • Missing permission. Reconnect at /account/agents and tick the scope.
  • No such site. Wrong ID, or you are not a member — call status again.
  • check awaiting deploy. The live page has not changed yet; Loomaly re-checks on its own. Call status later for the announcement.