# Shtab: is the website ready for AI agents

> We checked the Shtab website (shtab.app): can ChatGPT, Claude and Alice open it, does it have llms.txt, Markdown, an API and MCP. 90.3 out of 100. API: yes, MCP: yes, llms.txt: yes.

Источник: https://pachca.com/en/agent-ready/shtab

[shtab.app](https://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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/openapi.json](https://shtab.app/openapi.json)

    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.

    [sitemap and JSON-LD →](https://pachca.com/en/agent-ready/guide/structured-data)

    ›What the site returned

    URL

    [https://shtab.app/](https://shtab.app/)

    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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/.well-known/oauth-authorization-server/](https://shtab.app/.well-known/oauth-authorization-server/)

    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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/.well-known/api-catalog/](https://shtab.app/.well-known/api-catalog/)

    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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/.well-known/agent-skills/index.json](https://shtab.app/.well-known/agent-skills/index.json)

    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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/.well-known/oauth-protected-resource/](https://shtab.app/.well-known/oauth-protected-resource/)

    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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/.well-known/agent-card.json](https://shtab.app/.well-known/agent-card.json)

    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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/auth.md](https://shtab.app/auth.md)

    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 →](https://pachca.com/en/agent-ready/guide/api-mcp)

    ›What the site returned

    URL

    [https://shtab.app/.well-known/ai-catalog.json](https://shtab.app/.well-known/ai-catalog.json)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/pricing/](https://shtab.app/pricing/)

    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

    URL

    [https://shtab.app/agent-readiness-check-33a8330ffe/](https://shtab.app/agent-readiness-check-33a8330ffe/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/robots.txt](https://shtab.app/robots.txt)

    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

    URL

    [https://shtab.app/sitemap.xml](https://shtab.app/sitemap.xml)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/llms.txt](https://shtab.app/llms.txt)

    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

    URL

    [https://shtab.app/index.md](https://shtab.app/index.md)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/index.md](https://shtab.app/index.md)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/robots.txt](https://shtab.app/robots.txt)

    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

    URL

    [https://shtab.app/robots.txt](https://shtab.app/robots.txt)

    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

    URL

    [https://shtab.app/robots.txt](https://shtab.app/robots.txt)

    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

    URL

    [https://shtab.app/robots.txt](https://shtab.app/robots.txt)

    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

    URL

    [https://shtab.app/mcp.md](https://shtab.app/mcp.md)

    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

    URL

    [https://shtab.app/mcp.md](https://shtab.app/mcp.md)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/llms.txt](https://shtab.app/llms.txt)

    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

    URL

    [https://shtab.app/](https://shtab.app/)

    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

    URL

    [https://shtab.app/pricing.md](https://shtab.app/pricing.md)

    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 →](https://pachca.com/en/agent-ready)

## Other checked sites

- [Advanta](https://pachca.com/en/agent-ready/advanta)65.9
- [Aspro.Cloud](https://pachca.com/en/agent-ready/aspro-cloud)25.9
- [ELMA365 Projects](https://pachca.com/en/agent-ready/elma365)61.2
- [EvaTeam](https://pachca.com/en/agent-ready/evateam)62.8
- [Flowlu](https://pachca.com/en/agent-ready/flowlu)58.2
- [Kaiten](https://pachca.com/en/agent-ready/kaiten)61
- [LeaderTask](https://pachca.com/en/agent-ready/leadertask)68.7
- [Planfix](https://pachca.com/en/agent-ready/planfix)64.2
- [Platrum](https://pachca.com/en/agent-ready/platrum)74.1
- [Pyrus](https://pachca.com/en/agent-ready/pyrus)59.4
- [SimpleOne SDLC](https://pachca.com/en/agent-ready/simpleone)54.1
- [TeamStorm](https://pachca.com/en/agent-ready/teamstorm)64.9
- [WEEEK](https://pachca.com/en/agent-ready/weeek)63.6
- [Yandex Tracker](https://pachca.com/en/agent-ready/yandex-tracker)54.9
- [YouGile](https://pachca.com/en/agent-ready/yougile)65.2
