# ai.sitepulsar/mcp (remote · mcp.sitepulsar.ai)

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

- Trust score: 83/100 (high trust)
- Change this week: +10
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.sitepulsar.ai`: 83/100 (this document), [markdown](https://verifymcp.io/servers/ai-sitepulsar-mcp/mcp.md), [page](https://verifymcp.io/servers/ai-sitepulsar-mcp/mcp)

## Channel facts

- Endpoint: `https://mcp.sitepulsar.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 97/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1849 tokens (~142/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

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

### Codex

```toml
[mcp_servers.ai-sitepulsar-mcp]
url = "https://mcp.sitepulsar.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-sitepulsar-mcp": {
      "type": "remote",
      "url": "https://mcp.sitepulsar.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-sitepulsar-mcp --url https://mcp.sitepulsar.ai/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-sitepulsar-mcp:
    url: "https://mcp.sitepulsar.ai/mcp"
```

### Other

```json
{
  "mcpServers": {
    "ai-sitepulsar-mcp": {
      "type": "http",
      "url": "https://mcp.sitepulsar.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 81, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 75, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 73, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 73)

First indexed and scored.

## MCP tools (13)

### `check_agent_readiness` (~81 tokens)

Check Agent Readiness

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.

Input parameters:

- `url` (string, required): Absolute URL to audit.

Output parameters:

- `aeo_estimate` (object)
- `cached` (boolean): Whether this estimate was served from cache.
- `categories` (object|null): Per-category static check items ({id,label,passed}); page-controlled value/tip fields are stripped.
- `find_low` (boolean): True when FIND discovery signals are weak (≤25).
- `is_estimate` (boolean): Always true — this is a heuristic estimate, not a full LLM-scored audit.
- `suggested_next_calls` (array): Advisory next-tool-call pointers (suggested_next_calls). Score-neutral agent UX.
- `url` (string): The validated URL that was checked.

### `run_audit` (~102 tokens)

Run Full AEO Audit

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.

Input parameters:

- `target_keyword` (string): Optional keyword to evaluate against; inferred when absent.
- `url` (string, required): Absolute URL to audit.

Output parameters:

- `audit_id` (string): The audit id to poll with get_audit.
- `cached` (boolean): Whether an existing recent audit was reused (uncharged).
- `eta_ms` (number): Estimated time to completion in ms (0 when cached).
- `served_from_cache` (boolean): Present + true on a cache hit.
- `status` (string): 'queued' for a fresh run, 'complete' for a cache hit.
- `suggested_next_calls` (array): Advisory next-tool-call pointers (suggested_next_calls). Score-neutral agent UX.

### `get_audit` (~100 tokens)

Get Audit Summary

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.

Input parameters:

- `audit_id` (string, required): The audit_id returned by run_audit / compare_aeo (poll until status is completed).

Output parameters:

- `aeo_score` (object)
- `audit_id` (string): The audit id.
- `headline_takeaways` (array): Up to 3 headline takeaways.
- `schema_version` (number): Summary contract version.
- `status` (string): Audit status (e.g. queued/running/complete/failed).
- `suggested_next_calls` (array): Advisory next-tool-call pointers (suggested_next_calls). Score-neutral agent UX.
- `summary` (string): Short natural-language summary (capped at a word boundary).
- `summary_truncated` (boolean): True when the summary was clipped to the cap (ends with an ellipsis).
- `top_fixes` (array): Top 3 prioritized fixes (lean shape).
- `weakest_pillar` (string|null): FIND | READ | USE | null (no clear weakest).

### `get_audit_detail` (~359 tokens)

Get Audit Detail

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.

Input parameters:

- `audit_id` (string, required): The audit_id returned by run_audit / compare_aeo (poll until status is completed).

Output parameters:

- `agent_discovery` (object|null): Off-site FIND distribution sub-score (state/tier/score/headline).
- `agent_identity` (object|null): READ-pillar verifiable agent identity (DID/VC).
- `agentic_detail` (object|null): Agentic readiness: structured_data, trust, mcp_readiness, agent_card, use_probes, trust_claims.
- `ap2_readiness` (object|null): USE-pillar AP2 mandate readiness.
- `audit_id` (string): The audit id.
- `availability` (object): Per-section availability state map (present | not_detected | not_run_free_tier | ...).
- `competitors` (object|null): Competitor cluster (named on paid tiers; coarse bucket otherwise).
- `crawl` (object|null): Crawl/schema/robots/semantic-HTML findings + content_signals.
- `deep_signals` (object|null): Per-bot access + schema Action microformats (paid).
- `dimension_scores` (object|null): Per-pillar (find/read/use) sub-dimension score maps.
- `dropped_sections` (array): Names of sections shed for size.
- `experimental_fields` (array): Composite *_score paths whose methodology may change without a schema bump.
- `find_comparable` (number|null): Cross-run-stable FIND from legacy-5 sub-scores.
- `google_intelligence` (object|null): Knowledge graph + places + review platforms (paid).
- `methodology` (object): Scoring version, pillar weights, and methodology notes.
- `page_signals` (object|null): Per-page rollups: author/E-E-A-T, freshness, images, hreflang, video, locale schema.
- `pillar_scores` (object)
- `product_readability` (object|null): Product-page readability score + coverage + top issues.
- `rendered_dom` (object|null): Rendered-DOM analysis (paid tier only).
- `reputation` (object|null): AI-engine reputation rollup (providers_queried, mentioned_count, per_provider[]).
- `schema_version` (number): Detail contract version.
- `site_maturity` (string|null): early_stage | growing | established | null.
- `status` (string): Audit status.
- `tool_description_quality` (object): LLM-judged MCP tool-description quality (OMITTED unless state 'judged').
- `truncated` (boolean): True if any sections were shed to fit the byte cap.
- `ucp_readiness` (object|null): USE-pillar UCP agentic-commerce profile readiness.
- `url` (string): Audited URL.
- `webmcp_readiness` (object|null): USE-pillar declarative WebMCP tool readiness.

### `compare_aeo` (~80 tokens)

Compare AEO Across URLs

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.

Input parameters:

- `urls` (array, required): Absolute URLs to compare.

Output parameters:

- `audit_id` (string): The first child audit id (poll each child with get_audit).
- `child_audit_ids` (array): All child audit ids, in input order.
- `eta_ms` (number): Estimated time to completion in ms (0 when all cached).
- `reused_audit_ids` (array): Child ids served from cache (not charged).
- `status` (string): 'complete' if all reused, else 'queued'.
- `suggested_next_calls` (array): Advisory next-tool-call pointers (suggested_next_calls). Score-neutral agent UX.

### `get_fixes` (~104 tokens)

Get Prioritized Fixes

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.

Input parameters:

- `audit_id` (string, required): The audit_id returned by run_audit / compare_aeo (poll until status is completed).

Output parameters:

- `audit_id` (string): The audit id.
- `fixes` (array): Canonical (deduped + impact-sorted) fix list.

### `get_audit_full` (~227 tokens)

Get Full Audit Report

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.

Input parameters:

- `audit_id` (string, required): The audit_id returned by run_audit / compare_aeo (poll until status is completed).
- `expand` (string): Which sections to include; default 'all'.

Output parameters:

- `audit_id` (string): The audit id.
- `detail` (object): Full per-section detail (present unless trimmed by expand).
- `expand` (string): Which sections were included ('summary' | 'detail' | 'fixes' | 'all').
- `fixes` (array): Canonical fix list (present unless trimmed by expand).
- `schema_version` (number): Combined-envelope contract version.
- `status` (string): Audit status (present when still polling).
- `suggested_next_calls` (array): Advisory next-tool-call pointers (suggested_next_calls). Score-neutral agent UX.
- `summary` (object): Lean summary (present unless trimmed by expand).

### `search_companies` (~101 tokens)

Search AI-Recommended Companies

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 }.

Input parameters:

- `query` (string, required): Natural-language search query (3–200 chars).

Output parameters:

- `companies` (array): Consensus shortlist (≤5) of companies AI engines name for the query.
- `tool_schema_version` (number): Result-shape version.

### `probe_agent_discovery` (~128 tokens)

Probe Agent Discovery Surfaces

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 }.

Input parameters:

- `brand` (string): Optional brand/company name; inferred from the domain when absent.
- `url` (string, required): Absolute https URL of the target (any public domain).

Output parameters:

- `attributed_identifier` (string|null): Owned registry identifier, if found.
- `hits` (array): Up to 6 matching discovery-surface hits.
- `score` (number): Discovery sub-score 0–100.
- `state` (string): Probe state (present | not_detected | probe_failed).
- `tier` (string): Discovery tier (registered | code_proxy_mcp | none).
- `tool_schema_version` (number): Result-shape version.

### `probe_ucp_readiness` (~109 tokens)

Probe UCP Shopping Readiness

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 }.

Input parameters:

- `brand` (string): Optional brand/company name; inferred from the domain when absent.
- `url` (string, required): Absolute https URL of the target (any public domain).

Output parameters:

- `capabilities` (array): Declared UCP capability ids (≤30).
- `has_ucp_profile` (boolean): Whether a UCP commerce profile was found.
- `reachability` (object): Reachability of the UCP profile ({ state, ... }).
- `score` (number): Known-capability coverage indicator 0–100.
- `tool_schema_version` (number): Result-shape version.

### `probe_mcp_functional` (~130 tokens)

Probe MCP Endpoint Posture

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 }.

Input parameters:

- `brand` (string): Optional brand/company name; inferred from the domain when absent.
- `url` (string, required): Absolute https URL of the target (any public domain).

Output parameters:

- `attempted_endpoint` (string|null): Endpoint URL the probe attempted.
- `declared_endpoint` (string|null): Endpoint URL declared in the manifest.
- `declared_tool_names` (array): Manifest-declared tool names (≤20, validated).
- `handshake_ok` (boolean): Whether a live handshake completed.
- `reachability_state` (string): present | not_detected | probe_failed.
- `score` (number): MCP functional posture score 0–100.
- `tool_schema_version` (number): Result-shape version.
- `tools_listed` (number): Count of tools the endpoint listed (≥0).

### `scan_product_page` (~122 tokens)

Scan Product Page Readability

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 }.

Input parameters:

- `brand` (string): Optional brand/company name; inferred from the domain when absent.
- `url` (string, required): Absolute https URL of the target (any public domain).

Output parameters:

- `result` (object)
- `tool_schema_version` (number): Result-shape version.

### `scan_visibility` (~128 tokens)

Scan AI Visibility

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 }.

Input parameters:

- `brand` (string): Optional brand/company name; inferred from the domain when absent.
- `url` (string, required): Absolute https URL of the target (any public domain).

Output parameters:

- `reputation` (array): Per-engine reputation entries (≤10) for the brand.
- `tool_schema_version` (number): Result-shape version.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ai-sitepulsar-mcp/mcp#diagnostics

## Score history

- 2026-08-03: 83
- 2026-08-02: 82
- 2026-08-01: 82
- 2026-07-31: 81
- 2026-07-30: 75
- 2026-07-29: 75
- 2026-07-28: 74
- 2026-07-27: 73
- 2026-07-26: 73

## Links

- Remote endpoint: https://mcp.sitepulsar.ai/mcp
- Repository: https://github.com/SitePulsar/mcp-server
- Website: https://www.sitepulsar.ai/
- Changelog RSS feed: https://verifymcp.io/servers/ai-sitepulsar-mcp/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-sitepulsar-mcp/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-sitepulsar-mcp/mcp
