Skip to content

ai.sitepulsar/mcp

by sitepulsar.ai · remote · no sign-in to list tools · v1.0.1 · published by ai.sitepulsar

SitePulsar AEO audits: fetch FIND/READ/USE agent-readiness scores for any website.

Changes · 71 high finding

13 tools: 7 change things and 6 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http sitepulsar https://mcp.sitepulsar.ai/mcp

Findings

Matches of fixed checks, with the text they matched.

1 high1 warn
  • The description refers to "mcp.json".

    Matched text

    description: "...overs a site's advertised MCP endpoint (mcp.json / .well-known) and inspects its *declar..."

    What this check looks for
  • The server marks "compare_aeo" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "compare_aeo" says "compare": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

13 tools

Changes things 7Claude Code: ask
  • check_agent_readinessFast synchronous AEO / agent-readiness read of a single URL: robots and bot access, structured data (schema), and content structure.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
    Fast synchronous AEO / agent-readiness read of a single URL: robots and bot access, structured data (schema), and content structure. Returns immediate signals without running a full audit. Use this to triage a page or sanity-check before deciding whether the heavier run_audit is worth a credit.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • compare_aeoCompare AEO posture across multiple URLs (e.g.1 finding

    Why it is in this group

    • The name "compare_aeo" says "compare": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "compare_aeo" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "compare_aeo" says "compare": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Compare AEO posture across multiple URLs (e.g. a brand versus its competitors) on the same FIND/READ/USE pillar scale. Async: returns an audit_id to poll with get_audit. Spends credits only for freshly-audited URLs; recent audits are reused uncharged.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • probe_agent_discoveryChecks selected registries (official MCP registry, PyPI, GitHub) for packages/servers tied to a domain or brand.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
    Checks selected registries (official MCP registry, PyPI, GitHub) for packages/servers tied to a domain or brand. A discovery-surface check (can agents find your published tooling?), not a visibility check. Use when you want to know whether a brand has discoverable agent/developer artifacts listed where agents look for them. Result: { state, score, tier, hits[], tool_schema_version }.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • probe_mcp_functionalDiscovers a site's advertised MCP endpoint (mcp.json / .well-known) and inspects its *declared* OAuth/transport posture (advertised, not guaranteed-working — it does not run a full…1 finding

    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.

    Findings

    • High

      The description refers to "mcp.json".

      Matched text

      description: "...overs a site's advertised MCP endpoint (mcp.json / .well-known) and inspects its *declar..."

      What this check looks for
    Description, as the server wrote it
    Discovers a site's advertised MCP endpoint (mcp.json / .well-known) and inspects its *declared* OAuth/transport posture (advertised, not guaranteed-working — it does not run a full live handshake). Use when checking whether a site exposes a connectable MCP server and what it claims to support. Result: { handshake_ok, declared_endpoint, declared_tool_names[], score, tool_schema_version }.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • run_auditRun a full AEO audit of a URL covering FIND, READ, and USE.No findings

    Why it is in this group

    • The name "run_audit" says "run": a word for a change.
    Description, as the server wrote it
    Run a full AEO audit of a URL covering FIND, READ, and USE. Async: returns an audit_id to poll with get_audit. Accepts an optional target_keyword. Spends one audit credit per fresh run; a same-URL re-run within 24h reuses the cached audit, uncharged.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • scan_product_pageDeterministically scores one product page (schema, price, availability, image) 0–100 for shopping-agent readability — no LLM, fully repeatable.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
    Deterministically scores one product page (schema, price, availability, image) 0–100 for shopping-agent readability — no LLM, fully repeatable. Use when you want a precise, single-page readability score for a specific product URL rather than a whole-site audit. Available on Pro+ plans. Result: { result: { readability_score, ... }, tool_schema_version }.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • scan_visibilityLive AI-visibility scan for a brand: crawl + reputation sampled across AI engines, returning where *that* brand is mentioned (any public brand, not just your own).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
    Live AI-visibility scan for a brand: crawl + reputation sampled across AI engines, returning where *that* brand is mentioned (any public brand, not just your own). Use when you want to know whether and how a named brand already surfaces in AI answers — complementary to search_companies, which finds who agents recommend for a category. Pro+ (LLM cost). Result: { reputation[], tool_schema_version }.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
Only reads 6Claude Code: allow
  • get_auditFetch an audit's status and, when complete, a compact decision-ready SUMMARY: AEO score (overall + FIND/READ/USE), a short summary, the weakest pillar, headline takeaways, and the …No findings

    Why it is in this group

    • The name "get_audit" says "get": a word for reading.
    Description, as the server wrote it
    Fetch an audit's status and, when complete, a compact decision-ready SUMMARY: AEO score (overall + FIND/READ/USE), a short summary, the weakest pillar, headline takeaways, and the top fixes. Lead with this; call get_audit_detail only when you need the full per-section breakdown.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • get_audit_detailFull structured per-section breakdown of a completed audit, on demand (only call after get_audit when you need depth): per-dimension FIND/READ/USE sub-scores, reputation across AI …No findings

    Why it is in this group

    • The name "get_audit_detail" says "get": a word for reading.
    Description, as the server wrote it
    Full structured per-section breakdown of a completed audit, on demand (only call after get_audit when you need depth): per-dimension FIND/READ/USE sub-scores, reputation across AI engines, competitor cluster (named for paid tiers), crawl/schema/robots findings, agentic-readiness + USE functional probes, and rendered-DOM analysis (paid). Typed, sanitized, size-capped (see truncated/dropped_sections). Composite *_score fields listed in experimental_fields may change methodology — do not hardcode thresholds. Also surfaces author/E-E-A-T, content freshness, images, hreflang, per-page per-bot access, Schema.org Action microformats, OpenAPI sub-metrics, Google Intelligence, product readability, site maturity, and a methodology block — each tagged with an availability state in the `availability` map (present | not_detected | not_run_free_tier | phase_c_disabled | probe_failed | truncated | not_measured_legacy). Wave C adds deterministic signals: homepage content quality (named quotes, stats-with-source, answer-shape) under crawl.content_signals; per-page video + per-locale schema in page_signals; OpenAPI per-operation coverage %, OAuth scopes, and MCP tool annotations in agentic_detail.use_probes; and self-disclosed trust claims (certifications, SLA/uptime, AI-content disclosure, verifiable-claims) under agentic_detail.trust_claims — each labeled "disclosed"/"mentioned" (never "verified") with an evidence URL and extraction-confidence. All carry an availability state in the `availability` map.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • get_audit_fullOne call that returns a completed audit's SUMMARY, full per-section DETAIL, and deduplicated prioritized FIXES together — so you don't have to chain get_audit → get_audit_detail → …No findings

    Why it is in this group

    • The name "get_audit_full" says "get": a word for reading.
    Description, as the server wrote it
    One call that returns a completed audit's SUMMARY, full per-section DETAIL, and deduplicated prioritized FIXES together — so you don't have to chain get_audit → get_audit_detail → get_fixes. Use `expand` to trim the payload ('summary' | 'detail' | 'fixes' | 'all'; default 'all'). Same ownership, tier gating, and sanitization as those tools. For an in-progress audit it returns the status so you can keep polling. The detail layer includes Wave-B surfaced sections (author/E-E-A-T, freshness, images, hreflang, per-bot access, Action microformats, OpenAPI sub-metrics, Google Intelligence, product readability, site maturity, methodology) and Wave-C deterministic signals (content quality, video/locale, USE sub-metrics, trust claims) each with an availability state.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • get_fixesReturn the prioritized, pillar-tagged (FIND / READ / USE) action plan for a completed audit, deduplicated across sources, with machine-actionable implementation steps included on f…No findings

    Why it is in this group

    • The name "get_fixes" says "get": a word for reading.
    Description, as the server wrote it
    Return the prioritized, pillar-tagged (FIND / READ / USE) action plan for a completed audit, deduplicated across sources, with machine-actionable implementation steps included on fixes where available. Use this when you want the to-do list to act on (or hand to a coding agent), rather than the scores or section detail.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • probe_ucp_readinessInspects /.well-known/ucp to report whether AI shopping agents can transact with the site (presence + advertised capabilities only — never a live purchase).No findings

    Why it is in this group

    • The description's first verb is "inspect": a word for reading.
    Description, as the server wrote it
    Inspects /.well-known/ucp to report whether AI shopping agents can transact with the site (presence + advertised capabilities only — never a live purchase). Use when evaluating an e-commerce or merchant site for agentic-commerce readiness. Result: { has_ucp_profile, capabilities[], score, tool_schema_version }.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • search_companiesSamples the major AI engines for which companies they name for a query (e.g.No findings

    Why it is in this group

    • The name "search_companies" says "search": a word for reading.
    Description, as the server wrote it
    Samples the major AI engines for which companies they name for a query (e.g. "best CRM for startups"); returns a consensus shortlist (≤5). Use when you want to know who agents *recommend* for a category — not where a specific brand is mentioned (use scan_visibility for that). Free, no URL needed. Result: { companies[], tool_schema_version }.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: 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 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http sitepulsar https://mcp.sitepulsar.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__sitepulsar__get_audit",
      "mcp__sitepulsar__get_audit_detail",
      "mcp__sitepulsar__get_fixes",
      "mcp__sitepulsar__get_audit_full",
      "mcp__sitepulsar__search_companies",
      "mcp__sitepulsar__probe_ucp_readiness"
    ],
    "ask": [
      "mcp__sitepulsar__check_agent_readiness",
      "mcp__sitepulsar__run_audit",
      "mcp__sitepulsar__compare_aeo",
      "mcp__sitepulsar__probe_agent_discovery",
      "mcp__sitepulsar__probe_mcp_functional",
      "mcp__sitepulsar__scan_product_page",
      "mcp__sitepulsar__scan_visibility"
    ],
    "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 sitepulsar. Review it before you use it.