# INITE Visibility

> How ChatGPT, Claude, Gemini and Perplexity read a site: free check, fix plan, compare, history.

- name: ai.inite/inite-visibility
- version: 2.1.0
- connection class: R0 (autonomous)
- trust: 92/100 flags: duplicate-repo
- quality: 80/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.inite%2Finite-visibility
- tools: https://api.protogrid.dev/v1/servers/ai.inite%2Finite-visibility/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "inite-visibility": {
      "type": "http",
      "url": "https://inite.ai/api/mcp/analyzer",
      "headers": {
        "Authorization": "Bearer ${INITE_VISIBILITY_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${INITE_VISIBILITY_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-1d-ago -duplicate-repo(3 names)
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 80/100 (good)

### 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: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 41 of 41 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 8,337 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 58 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: dependencies not resolved yet

- tools: 41, about 8,337 tokens to load them all
- tool set hash: 583c7cd44bc331347d6d942b9c4d44fb
- tools last changed: 2026-10-20T12:46:50.461Z
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.inite/inite-visibility.svg)](https://protogrid.dev/servers/ai.inite/inite-visibility)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `watch_site` added
  - Watch a site's AI visibility every week: the free reading (crawlers let in, identity files, structured data, the fix plan) is taken now as the baseline and again each week, and the account gets an email only when something moved - the score, a crawler shut out or let back in, a file, the structured data, a fix that appeared or went away. No model is asked. Up to 10 sites per account; stop: true ends a watch. The list of watched sites comes back every call. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- 2026-10-20 `my_reports` changed (inputSchema)
- 2026-10-20 `visibility_history` added
  - How a site's AI visibility reading has moved over time: for a site in the INITE Atlas, its weekly readings (identity score, answer-engine crawlers let in, llms.txt, Organization schema, the top fix each week); signed in, your own audits of it too, with their scores. Free, no model, and no check is spent: it reads what was already measured.
- 2026-10-20 `compare_sites` added
  - Your site against a competitor's, read the way an AI engine reads them before it answers: identity score out of 100, which answer-engine crawlers each lets in, the identity files each has (llms.txt, ai.json and the rest), Organization schema, and where each one is ahead. Free and instant, no model asked; counts two identity checks.
- 2026-10-20 `visibility_fixes` added
  - The fix plan for a site's AI visibility, most important first: what to change, why it matters for being named in AI answers, how many points of the score it should recover, the pages it applies to, and a paste-ready file or snippet when there is one (llms.txt, robots.txt rules, Organization schema). Free from the identity reading, no account; signed in, it is built from your latest finished audit of that site, which covers the answer engines too.
- 2026-10-20 `inite_buy` changed (inputSchema)
- 2026-10-20 `inite_contact` changed (inputSchema)
- 2026-10-20 `inite_book_call` changed (inputSchema)
- 2026-10-20 `inite_slots` changed (inputSchema)
- 2026-10-16 `atlas_owner_stats` changed (description)
  - before: Views of the card and clicks through to the site: thirty days on the free tier; ninety days and the shelf beside it on premium. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
  - after: Views of the card and clicks through to the site: thirty days on the free tier; ninety days and the shelf beside it on premium. With what Google showed of the card last month (impressions, clicks, top queries) and its neighbours on the shelf. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.

Full history: https://api.protogrid.dev/v1/servers/ai.inite%2Finite-visibility/changes

## Dependencies

- npm @inite/visibility@1.3.0: pending

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://inite.ai/api/mcp/analyzer (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- npm @inite/visibility@1.3.0 secrets: INITE_TOKEN

## Tools (41)

- `analyze_site`: The AI visibility audit: the identity files, crawler policy, schema graph and page health, then the answer engines asked whether they name the site, scored out of 100. Starts a run and returns its run_id; it takes about a minute, so call get_analysis with that id. Without an account it runs the survey (the audit without its two paid steps), two a day per address; a free account gets the teaser, a paid plan the whole audit, on the account's own allowance.
- `atlas_changes`: What changed among the tools in the INITE Atlas: prices up or down, free plans added or dropped, OpenAPI specs published, MCP servers listed. Each change was read twice from the vendor's own page or the public registry before it counts, and a correction somebody typed in is never reported as the vendor's move. Each list says how many tools were in a position to change at all.
- `atlas_compare`: Preview a price comparison of 2-5 Atlas tools for a usage scenario, computed without a model from plan editions checked against the vendors' own pricing pages. First category: AI transcription (seats, minutes a month, required capabilities). Returns per tool the cheapest fitting verified plan, or why there is none (unknown, ineligible, contact sales, stale) - unknown is never shown as missing or free. Nothing is saved; atlas_dataset_create keeps it for a website. Free; sixty a day per address.
- `atlas_coupons`: Live discount codes for AI tools in the INITE Atlas, optionally for one domain. Each was stated by somebody who proved they own the domain, and carries the day they last confirmed it - quote that day. INITE does not run other companies' checkouts: never call a code verified or tested.
- `atlas_dataset_archive`: Stop serving a dataset the account owns. The API then answers 410 with a fallback line, so a page that still reads it degrades instead of breaking. Already-downloaded snapshots cannot be recalled. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_dataset_changes`: Confirmed changes between the revisions of a published dataset, newest first: plans added, removed, or which fields moved. Page with `after` (a revision number).
- `atlas_dataset_create`: Save a comparison as a private draft dataset in the signed-in account: tools, required capabilities, the default scenario. Returns the dataset id, configVersion and a preview with coverage. Nothing is public until atlas_dataset_publish. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_dataset_get`: Read a dataset: a published one by anybody (its snapshot with freshness and the default result), a draft only by its owner (config, configVersion, preview). Optional revision reads history.
- `atlas_dataset_placement`: Tell the Atlas which public page shows a published dataset, and check it now: the page's HTML must carry the data and a visible link to the dataset page (not in a comment, iframe or noscript). Re-checked daily; the state shows in atlas_dataset_get. Nothing on the page is changed. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_dataset_publish`: Make the named configVersion of a dataset public: cuts an immutable revision and returns the public API, page and compare URLs plus install notes. Call it only when the user asked for a public comparison. Needs at least two tools with verified plans. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_dataset_update`: Change a dataset the account owns: title, language, tools, required capabilities or default scenario. Names the configVersion it read; a newer one is VERSION_CONFLICT. A published set keeps serving its published config until atlas_dataset_publish. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_lookup`: One AI tool from the INITE Atlas, by domain or name: what it does and who it is for, the starting price with the pricing page and the day it was read and how the price has moved, how a program reaches it (API docs, an OpenAPI document that parses and its path count, an MCP server in the official registry and how it is tied to the vendor, a status page), what it states about your data (certifications, training on your data), and how used and how alive it is. Every fact is dated; 'claimed' and 'found' are kept apart.
- `atlas_my_listings`: The tools the signed-in account has claimed in the INITE Atlas: whether each claim is verified and how, whether the badge link is still on the site, premium until when, and the card address. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_card`: For a tool the account has claimed: what the card prints and what it could not read - price, hiring, releases, company - with the page each was read from and what to do about each empty line. Plus the claim's status and premium. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_claim`: Start (or resume) a claim on a tool's Atlas card for the signed-in account. Answers with three ways to prove the domain - a badge link on any page of the site, a meta tag on the homepage, or a DNS TXT record - each with the exact snippet. If the account's email is on the domain and verified, the claim is proved at once. Then call atlas_owner_verify. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_coupon_add`: For a proved owner: publish a discount on the card and the Atlas coupon feed, shown as stated by the verified owner. Needs title (one sentence), endsAt (ISO date, within a year), url (a page on your domain where it applies), and kind with code, percentOff, amountOff+currency or trialDays as fits. Confirm it every 45 days (atlas_owner_coupon_set) or it stops showing. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_coupons`: The coupons this claim has published, live or not, with their ids for atlas_owner_coupon_set. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_coupon_set`: action "confirm" says the coupon still works (it stops showing 45 days after the last confirmation); "withdraw" takes it down. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_premium`: What premium adds (re-reads hourly, ninety-day stats with the shelf beside the card) and the link where the owner pays - checkout is a card form in a browser, not an agent action. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_propose_edit`: Propose a correction a person at INITE reviews before it shows: field "name" (with name), "pricing" (with pricing: {model, freeTier, startsAt: {amount, currency, per} | null, source: the page it is on}) or "note" (with note, free text to the editors). Our one-line description and verdicts are not editable; set_read_pages is the faster way to a price. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_release`: Give up the claim on a card. The card stays in the Atlas; the owner mark, coupons and owner tools go with the claim. A later claim needs a fresh proof. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_remeasure`: Re-read the claimed site now - activity, hiring, releases, crawler policy, identity files - with the pages you named. Once a week on the free tier, once an hour on premium. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_set_read_pages`: For a proved owner: name the pricing page, the careers page and the changelog or release notes, on your own domain. The Atlas reads them with its usual readers and guards - a price must be printed on the page, a job board must be your own, release notes must carry dates - and never takes a figure on your word. A new pricing page is read within the hour; careers and releases on the next read (atlas_owner_remeasure). Send all three each time: an omitted one is cleared. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_stats`: Views of the card and clicks through to the site: thirty days on the free tier; ninety days and the shelf beside it on premium. With what Google showed of the card last month (impressions, clicks, top queries) and its neighbours on the shelf. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_owner_verify`: Check the proof placed for a claim: method "badge" (with pageUrl, the page the badge link is on), "meta" (the homepage meta tag) or "dns" (the TXT record). Answers verified, or what was missing. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `atlas_search`: Filter the INITE Atlas without a model: a phrase, a category, and slices that must all hold. Categories: sales, hr, security, analytics, agents, support, dev, llmops, finance, automation, marketing, meetings, knowledge, rag, voice, documents, legal, data, health, i18n, creative, writing, productivity, career, learning, commerce, lifestyle, assistants. Slices: free-plan, open-source, api, self-hosted, no-code, states-hipaa, states-soc2, states-gdpr, no-training, free-trial, student-discount, mcp-server, openapi. Sorted by measured use (default), activity, newest or name. Free, no allowance.
- `check_identity`: Free and instant, no account: read a website the way an AI engine does before it ever answers about it. Returns which answer-engine crawlers robots.txt lets in (retrieval, which decides whether the site can be cited) and which training crawlers it blocks (which costs nothing), the identity files present (llms.txt, ai.json and the rest), whether the homepage carries Organization schema, an identity score out of 100, and the fixes that reading names. No model is asked; for whether the engines actually name the site, run analyze_site.
- `compare_sites`: Your site against a competitor's, read the way an AI engine reads them before it answers: identity score out of 100, which answer-engine crawlers each lets in, the identity files each has (llms.txt, ai.json and the rest), Organization schema, and where each one is ahead. Free and instant, no model asked; counts two identity checks.
- `get_analysis`: Read an audit started by analyze_site: progress while it runs, then the score out of 100 and what to fix first. Only the caller who started the run can read it - the account, or for a guest the same address.
- `inite_book_call`: Book a call with the INITE team for a named person. starts_at must be a slot from inite_slots; topic is a service id from inite_services (default: diagnostic). The person receives a confirmation email with a calendar invite and a link to move or cancel. Book only with the person's consent and their own email.
- `inite_buy`: Start a purchase of a one-time INITE offer for the signed-in person. Returns a checkout link for the person to pay (nothing is charged until they do) and, when card-free payment is on, an x402Url: an agent connected to the person's INITE wallet (https://billing.inite.ai/mcp/wallet, scope wallet:pay) pays it with its pay tool, within the limits the person approved. Offers: local-start (Local Start: one week of done-for-you work for a business that meets customers in person. The Google Business Profile verified and tied to the site, the city and the service on the homepage, a Google Maps check before and after.) licence-starter (INITE Analyzer Starter, a 12-month licence paid once: no renewal, a 14-day refund.) licence-growth (INITE Analyzer Growth, a 12-month licence paid once: no renewal, a 14-day refund.) licence-autopilot (INITE Analyzer Autopilot, a 12-month licence paid once: no renewal, a 14-day refund.) Ask the person before buying; say the price. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `inite_contact`: Send a message to the INITE team on behalf of a named person; the reply goes to their email. For a question that needs a conversation, inite_book_call is faster.
- `inite_guides`: INITE's guides (PDF, a few pages each): their titles, what each covers and its page. Pass slug and email to send one to a person - they receive the PDF by email, and only with their consent.
- `inite_services`: INITE's services as a ladder, cheapest first: each step's name, what it delivers, how long it takes, its price in the reader's currency and whether that price is fixed, a floor or monthly, whether the fee is refunded if the work concludes nothing should be built, and how it starts - a call to book with inite_book_call (the topic to pass) or a page to open.
- `inite_slots`: The call times INITE's calendar has free, as ISO instants, with the call length and the host's time zone. Pass one of them to inite_book_call as starts_at.
- `match_tools`: Find AI tools that fit a described job, from the INITE Atlas - ten thousand tools re-read every week, ranked by measured use rather than votes. Describe the job in a sentence or two with any constraint that matters (self-hosted, an API, a free plan, a budget, who will use it). Returns up to five tools, each with which stated requirements it meets, which it does not, and which were not measured. No overall match percentage on purpose: the answers are typed, not scored. Free; twenty a day per address or account.
- `my_account`: The signed-in account's plan, its daily audit allowance and how much of it the last 24 hours used, and how many Atlas tools it owns. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `my_reports`: The signed-in account's AI visibility audits, newest first: the site, the day, the tier, the score and the report's address. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
- `visibility_fixes`: The fix plan for a site's AI visibility, most important first: what to change, why it matters for being named in AI answers, how many points of the score it should recover, the pages it applies to, and a paste-ready file or snippet when there is one (llms.txt, robots.txt rules, Organization schema). Free from the identity reading, no account; signed in, it is built from your latest finished audit of that site, which covers the answer engines too.
- `visibility_history`: How a site's AI visibility reading has moved over time: for a site in the INITE Atlas, its weekly readings (identity score, answer-engine crawlers let in, llms.txt, Organization schema, the top fix each week); signed in, your own audits of it too, with their scores. Free, no model, and no check is spent: it reads what was already measured.
- `watch_site`: Watch a site's AI visibility every week: the free reading (crawlers let in, identity files, structured data, the fix plan) is taken now as the baseline and again each week, and the account gets an email only when something moved - the score, a crawler shut out or let back in, a file, the structured data, a fix that appeared or went away. No model is asked. Up to 10 sites per account; stop: true ends a watch. The list of watched sites comes back every call. Needs a signed-in inite.ai account: a guest call answers 401 and starts the OAuth flow.
