Яндекс.Метрика

Shtab: is the website ready for AI agents

shtab.app·checked November 11, 2026
90.3out of 100
Ready

Agents can find the site, read it and connect.

Paste the task into Claude Code, Cursor or another agent with access to the site’s code.

  • Agent access: 100
  • Discoverability: 96
  • Content for models: 100
  • AI bot rules: 100
  • API and protocols: 59

Fix these first

First, what gets in agents’ way the most.

  1. 01

    An API description (OpenAPI) is published

    Failed

    Publish an OpenAPI file (openapi.json or openapi.yaml) at a public URL and link to it from the docs.

    A file listing every API method in a machine format. An agent builds requests from it.

    API and MCP →
    ›What the site returned
    Response code
    404

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/openapi.json"
  2. 02

    The homepage links to API docs

    Partial

    Link to your API docs from the homepage, for example in the footer or a developers menu.

    When asked to set up an integration, an agent looks for docs starting from the homepage.

    ›What the site returned

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  3. 03

    An agent can find how to sign in

    Partial

    Publish /.well-known/oauth-authorization-server (or /.well-known/openid-configuration) as JSON with an issuer field and the authorization endpoints.

    A service file with OAuth endpoints. Without it an agent needs a person to explain where to get a token.

    API and MCP →
    ›What the site returned
    Response code
    404
    Headers
    content-type: application/json
    vary: Accept-Encoding, Accept
    link: </.well-known/oauth-authorization-server.md>; rel="alternate"; type="text/markdown"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/.well-known/oauth-authorization-server/"
  4. 04

    An API catalog exists

    Failed

    Publish /.well-known/api-catalog as application/linkset+json with links to your API descriptions (RFC 9727).

    One file at a standard URL linking to all of the company’s APIs and their descriptions.

    API and MCP →
    ›What the site returned
    Response code
    406
    Headers
    content-type: text/plain; charset=utf-8
    vary: Accept

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/.well-known/api-catalog/"
  5. 05

    Agent skills are published

    Failed

    Publish /.well-known/agent-skills/index.json with a list of skills in the skills field.

    Ready-made instructions for how an agent does common tasks in the product.

    API and MCP →
    ›What the site returned
    Response code
    404
    Headers
    content-type: application/json
    vary: Accept-Encoding

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/.well-known/agent-skills/index.json"
Other issues4
  1. 06

    The API says which server grants access

    Failed

    Publish /.well-known/oauth-protected-resource as JSON with a resource field on the API domain (RFC 9728).

    A service file: which authorization server issues tokens for this API.

    API and MCP →
    ›What the site returned
    Response code
    404
    Headers
    content-type: application/json
    vary: Accept-Encoding, Accept
    link: </.well-known/oauth-protected-resource.md>; rel="alternate"; type="text/markdown"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/.well-known/oauth-protected-resource/"
  2. 07

    An agent-to-agent card exists

    Failed

    Publish /.well-known/agent-card.json in the A2A format: JSON with a name field, a description and the agent’s URL.

    A file in the A2A standard: who you are, what you can do and how another agent reaches you.

    API and MCP →
    ›What the site returned
    Response code
    404
    Headers
    content-type: application/json
    vary: Accept-Encoding

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/.well-known/agent-card.json"
  3. 08

    There is a guide for how an agent gets access

    Failed

    Put an auth.md file at the site root with step-by-step instructions for how an agent gets a key or token.

    An auth.md file walks an agent through getting a key or token without a person’s help.

    API and MCP →
    ›What the site returned
    Response code
    404
    Headers
    content-type: text/plain; charset=utf-8
    vary: Accept-Encoding, Accept

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/auth.md"
  4. 09

    A catalog of AI interfaces exists

    Failed

    Publish /.well-known/ai-catalog.json as JSON listing your MCP servers and other interfaces for agents.

    One file at a standard URL listing the company’s MCP servers and other interfaces for agents.

    API and MCP →
    ›What the site returned
    Response code
    404
    Headers
    content-type: application/json
    vary: Accept-Encoding

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/.well-known/ai-catalog.json"
What already works33
  • Homepage opens without a CAPTCHA

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/html;charset=utf-8
    vary: Accept
    link: </index.md>; rel="alternate"; type="text/markdown"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Text is visible without JavaScript

    ›What the site returned
    Found
    words of text: 1,762

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Prices are visible without JavaScript

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/html;charset=utf-8
    vary: Accept
    link: </pricing.md>; rel="alternate"; type="text/markdown"
    Found
    snippet: ез ограничений по числу пользователей — бесплатно навсегда. 0 ₽ навсегда Попробовать Максимум пользоват

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/pricing/"
  • A missing page returns 404

    ›What the site returned
    Response code
    404
    Headers
    content-type: text/html;charset=utf-8
    vary: Accept
    link: </agent-readiness-check-33a8330ffe.md>; rel="alternate"; type="text/markdown"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/agent-readiness-check-33a8330ffe/"
  • A short path from http to https

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/html;charset=utf-8
    vary: Accept
    link: </index.md>; rel="alternate"; type="text/markdown"
    Found
    redirects: 1

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • The homepage is light and fast

    ›What the site returned
    Found
    page size, KB: 297
    response time, s: 0.558

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • robots.txt exists

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/plain
    vary: Accept-Encoding

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/robots.txt"
  • A sitemap exists

    ›What the site returned
    Response code
    200
    Headers
    content-type: application/xml
    vary: origin

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/sitemap.xml"
  • Homepage metadata is filled in

    ›What the site returned

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Company or product markup is present

    ›What the site returned
    Found
    JSON-LD types: Answer, BreadcrumbList, ContactPoint, FAQPage, ImageObject, ListItem, Organization, PostalAddress, Question, WebSite

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • The site points agents to its machine-readable files

    ›What the site returned

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • llms.txt exists

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/plain; charset=utf-8
    vary: Accept-Encoding
    Found
    H1 headings: yes

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -H "Accept: text/markdown" -D - -o /dev/null "https://shtab.app/llms.txt"
  • llms-full.txt exists

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/markdown; charset=utf-8
    vary: Accept
    link: <https://shtab.app/>; rel="alternate"; type="text/html", <https://shtab.app/>; rel="canonical"
    Found
    page size, KB: 25

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -H "Accept: text/markdown" -D - -o /dev/null "https://shtab.app/index.md"
  • The site serves Markdown when an agent asks

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/markdown; charset=utf-8
    vary: Accept
    link: <https://shtab.app/>; rel="alternate"; type="text/html", <https://shtab.app/>; rel="canonical"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -H "Accept: text/markdown" -D - -o /dev/null "https://shtab.app/"
  • Pages have Markdown versions

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/markdown; charset=utf-8
    vary: Accept
    link: <https://shtab.app/>; rel="alternate"; type="text/html", <https://shtab.app/>; rel="canonical"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -H "Accept: text/markdown" -D - -o /dev/null "https://shtab.app/index.md"
  • A clear heading structure

    ›What the site returned
    Found
    H1 headings: 1
    H2 headings: 6
    has <main>: yes

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • robots.txt has rules for AI bots

    ›What the site returned
    Response code
    200
    Found
    AI bots in robots.txt: Bytespider, ChatGPT-User, Claude-SearchBot, Claude-User, ClaudeBot, GPTBot, Google-Extended, MistralAI-User, OAI-SearchBot, Perplexity-User, PerplexityBot, YandexAdditional, anthropic-ai

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/robots.txt"
  • Content use is declared

    ›What the site returned
    Response code
    200
    Found
    lines: Content-Signal: search=yes, ai-input=yes, ai-train=yes, Content-Signal: search=yes, ai-input=yes, ai-train=yes, Content-Signal: search=yes, ai-input=yes, ai-train=yes

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/robots.txt"
  • Alice AI robots are allowed

    ›What the site returned
    Response code
    200

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/robots.txt"
  • Agents and AI search are allowed

    ›What the site returned
    Response code
    200

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/robots.txt"
  • Open API docs or an MCP server exist

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/markdown; charset=utf-8
    vary: Accept
    link: <https://shtab.app/mcp/>; rel="alternate"; type="text/html", <https://shtab.app/mcp/>; rel="canonical"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/mcp.md"
  • An MCP server exists

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/markdown; charset=utf-8
    vary: Accept
    link: <https://shtab.app/mcp/>; rel="alternate"; type="text/html", <https://shtab.app/mcp/>; rel="canonical"
    Found
    MCP endpoints: https://shtab.app/mcp/, https://my.shtab.app/connect/mcp, https://my.shtab.app/api/mcp/rpc

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/mcp.md"
  • The homepage is not hidden from search

    ›What the site returned

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Homepage text fits an agent’s memory

    ›What the site returned
    Found
    tokens, approx.: 4,692

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Content starts near the top of the page

    ›What the site returned
    Found
    text before the heading, %: 14

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • ChatGPT and Claude get the same page people do

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/html;charset=utf-8
    vary: Accept
    link: </index.md>; rel="alternate"; type="text/markdown"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Page preview data is filled in

    ›What the site returned
    Found
    found: og:title, og:description, og:image, og:type

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Company markup has a description and contacts

    ›What the site returned
    Found
    found: description, logo, contact

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Markup links to official profiles

    ›What the site returned
    Found
    sameAs links: 3

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • About, contact and policy pages are linked from the homepage

    ›What the site returned
    Found
    found: about, contacts, privacy

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • llms.txt is structured well enough to navigate

    ›What the site returned
    Found
    H1 headings: yes
    H2 headings: 10
    links: 93

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/llms.txt"
  • The Markdown version has a header with page data

    ›What the site returned

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/"
  • Pricing is available in Markdown

    ›What the site returned
    Response code
    200
    Headers
    content-type: text/markdown; charset=utf-8
    vary: Accept
    link: <https://shtab.app/pricing/>; rel="alternate"; type="text/html", <https://shtab.app/pricing/>; rel="canonical"

    Repeat the check yourself

    curl -sSL -c /dev/null -A "agent-readiness-index/0.1" -D - -o /dev/null "https://shtab.app/pricing.md"
Not scored4

These checks do not apply to the site and do not lower the score.

  • The API reports errors in a machine format
  • The MCP server answers a connection
  • MCP tools have descriptions
  • An access refusal says where to sign in

Check your own site

Paste the address and get the same breakdown in half a minute.

Check a site →