Moonlings — Local Business Intelligence
by moonlings.ai · remote · no sign-in to list tools · v0.4.1 · published by ai.moonlings
AI visibility + fact-checks (ChatGPT/Perplexity), review gaps & competitor scans, local SEO.
8 tools: 3 change things and 5 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads5Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http moonlings https://moonlings.ai/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnrun_scan
The server marks "run_scan" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "run_scan" says "run": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 3Claude Code: ask
check_visibilityAsk ChatGPT and Perplexity live (with web search) who they'd recommend in a business's category and city, and report whether THIS business appears.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Ask ChatGPT and Perplexity live (with web search) who they'd recommend in a business's category and city, and report whether THIS business appears. Returns honest appearance counts (never an invented metric), a per-engine split, who gets recommended instead, and which local sites the AI answers cite. AI answers vary substantially between runs — one check is a snapshot, not a stable measurement; re-check over time for the real picture. Call this when a user wants to know if AI assistants recommend a local business. Takes ~10-30 seconds. Price: $0.79 per delivered check.
Annotations the server declares
- readOnlyHint: true
run_scanA live competitor scan: a research agent finds the business's strongest same-category rival nearby and scouts it (offer, pricing signals, review positioning, what they do that this…1 finding
Why it is in this group
- The name "run_scan" says "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "run_scan" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "run_scan" says "run": a word for a change.
Description, as the server wrote it A live competitor scan: a research agent finds the business's strongest same-category rival nearby and scouts it (offer, pricing signals, review positioning, what they do that this business doesn't), while two ground-truth lookups run in parallel: ChatGPT/Perplexity sampling for AI-assistant visibility, and a direct Google Places review comparison (reviewSnapshot — the authoritative numbers; finding source URLs are verified against what the agent actually retrieved). The AI-visibility portion is a single-run snapshot — AI answers vary substantially between runs. BLOCKING and slow: typically 2-4 minutes — only call it from contexts that tolerate a long tool call. Price: $1.99 per delivered scan; a failed scan is never charged.
Annotations the server declares
- readOnlyHint: true
start_deep_reportLaunch a full overnight-grade research report on a local business: an autonomous research crew maps the competitive landscape, reads the business's and rivals' web presence, and de…No findings
Why it is in this group
- The name "start_deep_report" says "start": a word for a change.
Description, as the server wrote it Launch a full overnight-grade research report on a local business: an autonomous research crew maps the competitive landscape, reads the business's and rivals' web presence, and delivers a long-form graded report with structured findings and an action list. ASYNC: this tool returns a slug immediately; the report takes roughly 10-20 minutes. Poll check_report_status, then fetch with get_report_result. Price: $9.99, charged when the report launches; if the report fails, the charge is refunded automatically. Each call starts a NEW report — do not retry a call that already returned a slug.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
Only reads 5Claude Code: allow
check_factsFind what AI assistants get WRONG about a local business.No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it Find what AI assistants get WRONG about a local business. Asks ChatGPT and Perplexity live (with web search) about the business's hours, address, phone, and category, then verifies each stated fact against Google Business ground truth. Returns a severity-ranked list of conflicts (with the AI's value vs. the trusted value and source) plus discrepancies to check. Conservative by design: a claim with no trusted source is 'unverifiable' (never an error), and a conflict is only counted when it reproduces across engines — so it won't cry wolf. Call this when a user asks whether AI has the right info about a business, or 'why does ChatGPT say we're closed'. Takes ~15-30 seconds. Price: $1.49 per delivered check.
Annotations the server declares
- readOnlyHint: true
check_report_statusPoll a deep research report by slug.No findings
Why it is in this group
- The name "check_report_status" says "status": a word for reading.
Description, as the server wrote it Poll a deep research report by slug. Free. Returns status (generating / ready / failed); a failed report triggers the automatic refund of its launch charge. Deep reports typically take 10-20 minutes — poll every few minutes, not every few seconds.
Annotations the server declares
- readOnlyHint: true
get_report_resultFetch a completed deep research report by slug.No findings
Why it is in this group
- The name "get_report_result" says "get": a word for reading.
Description, as the server wrote it Fetch a completed deep research report by slug. Free. Returns the long-form report (markdown), a structured-findings JSON block, the action list, and the report card. If the report is still generating you get its status instead; if it failed, the launch charge is refunded automatically.
Annotations the server declares
- readOnlyHint: true
pingReturns server status, the price list, and (when authenticated) your credit balance.No findings
Why it is in this group
- The name "ping" says "ping": a word for reading.
Description, as the server wrote it Returns server status, the price list, and (when authenticated) your credit balance. Free — call it to check connectivity and see what this server offers.
Annotations the server declares
- readOnlyHint: true
review_gapCompare a local business's Google rating and review count against the top same-category rivals nearby, with the gap math done: who leads, the rating delta, the review-volume ratio,…No findings
Why it is in this group
- The description's first verb is "compare": a word for reading.
Description, as the server wrote it Compare a local business's Google rating and review count against the top same-category rivals nearby, with the gap math done: who leads, the rating delta, the review-volume ratio, and a verdict (leading / rated_equal_or_better_but_outreviewed / trailing). Live Google Maps lookup at call time. Call this when a user wants to know how a business's reviews stack up against local competitors. Takes a few seconds. Price: $0.39 per delivered comparison.
Annotations the server declares
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.4.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http moonlings https://moonlings.ai/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__moonlings__ping",
"mcp__moonlings__review_gap",
"mcp__moonlings__check_facts",
"mcp__moonlings__check_report_status",
"mcp__moonlings__get_report_result"
],
"ask": [
"mcp__moonlings__check_visibility",
"mcp__moonlings__run_scan",
"mcp__moonlings__start_deep_report"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as moonlings. Review it before you use it.