# Spotted

> Check if AI crawlers can read a site, and the questions customers ask AI about a business.

- name: io.github.Ranqint/spotted
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.Ranqint%2Fspotted
- tools: https://api.protogrid.dev/v1/servers/io.github.Ranqint%2Fspotted/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "spotted": {
      "type": "http",
      "url": "https://spotted.elya-studio.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-100% +updated-2d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 432 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 1 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 2, about 432 tokens to load them all
- tool set hash: 2d619d6e3f4b6739b653fbf822a95a47
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.Ranqint/spotted.svg)](https://protogrid.dev/servers/io.github.Ranqint/spotted)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://spotted.elya-studio.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (2)

- `buying_questions`: Builds the questions a customer is likely to ask an AI assistant (in Hebrew) before choosing a business of a given type, grouped by stage of the buying journey: the problem, comparing options, choosing a provider, price, trust and after the purchase. Use when a business owner wants to know what customers ask ChatGPT or Claude about their field, city or services.
- `check_ai_crawler_access`: Checks one public web page the way AI crawlers do: reads its robots.txt, meta robots / X-Robots-Tag and /llms.txt, and reports, for each AI and search crawler (OpenAI, Anthropic, Perplexity, Google, Microsoft), whether it is allowed to read that page. Use when someone asks whether ChatGPT, Claude, Perplexity or Google AI can see, read or cite their site. Facts only, no score.
