Docsary
Markdown Ask Claude Ask ChatGPT
On this page

Search and AI

Help readers find answers with built-in search. Give AI agents the same documentation through Markdown URLs, MCP tools, and site indexes.

Every site includes search at /search, updated as you write pages. Readers can search the version they are viewing or choose Search all versions.

Search uses titles and rendered text, including code. It accepts up to 200 characters and eight terms, requires each term to match, and returns up to 20 results. Punctuation separates terms; operator words are treated as text.

Non-current results are labeled when searching all versions. Duplicate paths favor the current version. Results include highlighted snippets, and search-result pages are marked noindex.

Search requires a connection. Suggestions require JavaScript; the search form and results do not. There are no synonyms, filters, or relevance settings. Prefix matching follows stored word roots, so some longer partial words may not match.

Raw markdown at every URL

Append .md to any page URL to get its source:

https://docs.acme.com/guide/install       → rendered HTML
https://docs.acme.com/guide/install.md    → text/markdown

The root page is at /index.md. Non-default versions follow the same rule: /0.9/guide/install.md.

The response contains the original Markdown and front matter as text/markdown; charset=utf-8. Use it to read, copy, or compare pages without extracting text from HTML.

Each HTML page advertises its Markdown URL:

<link rel="alternate" type="text/markdown" href="https://docs.acme.com/guide/install.md">

A page request with Accept: text/markdown returns the same source unless the header gives HTML a stronger preference. Responses include Vary: Accept.

curl -H 'Accept: text/markdown' https://docs.acme.com/guide/install

MCP server

Every site is an MCP server at /mcp on its own hostname:

https://docs.acme.com/mcp

Connect a compatible MCP client to search and read the site. This public, read-only connection requires no sign-in or API key. It uses Streamable HTTP with one JSON-RPC request per POST, no session or event stream, and open CORS.

Tool What it does
search_docs Ranked full-text search — the same index as /search — returning each hit's path, URL, title and a plain-text snippet. Version-scoped like the search page.
get_page One page's stored Markdown source. Pass a path with its version, or a URL, exactly as list_pages or search_docs report them; a URL carries its version. Long pages come in slices (truncated, next_offset).
list_pages The table of contents: every page of a version in navigation order with path, URL, title, description and depth. Paginated, 50 at a time.
list_versions The versions, which one is current, and each one's page count. Pass a slug as version to the other tools to read that version. Every result names the version it came from.

Follow next_offset when a result is truncated or paginated. Page slices contain at most 60,000 characters; total JSON responses are capped at 100,000 UTF-16 characters. Titles and descriptions may be shortened.

Requests are limited to 100 per 10 seconds per client address and hostname; a 429 tells you when to retry. The supported protocol revision is 2025-06-18. Cached results can take time to reflect writes.

To edit documentation, use the separate authenticated connector at api.docsary.com/mcp.

skill.md

/skill.md tells an agent what the site covers, which versions exist, and how to search and read it. Docsary generates it from your site name, homepage description, navigation, and versions.

llms.txt

/llms.txt is a compact index of the whole site for agents that need to decide what to read.

# Acme Docs

> Everything Acme does, written down.

Every page below links to its markdown source: the same content as the HTML
page, without navigation, styling, or scripts. Append `.md` to any
documentation URL to get it. These links are the 1.0 documentation, which is
the current version — older versions are under Optional at the end. For
everything at once in a single file, fetch https://docs.acme.com/llms-full.txt.
To look something up rather than read it all, /search?q=<terms> answers with
ranked pages.

Agents with tool support can connect to this site's MCP server at
https://docs.acme.com/mcp — Streamable HTTP, no authentication, read-only —
and use search_docs, get_page, list_pages and list_versions. A ready-made
skill file describing the site and how to read it is at
https://docs.acme.com/skill.md.

## Start here

- [Welcome](https://docs.acme.com/index.md): What Acme is and how to get started.

## User Guide

- [Install](https://docs.acme.com/guide/install.md): From download to first run.
- [Configuration](https://docs.acme.com/guide/config.md): Every setting, and what it changes.

## Optional

- [/llms-full.txt](https://docs.acme.com/llms-full.txt): every page of the current version inline, in one file.
- [/sitemap.xml](https://docs.acme.com/sitemap.xml): every indexable URL, all versions included.
- [/mcp](https://docs.acme.com/mcp): the site's MCP server (Streamable HTTP, no authentication): search_docs, get_page, list_pages, list_versions.
- [/skill.md](https://docs.acme.com/skill.md): a skill file for agents — what this site documents and how to read it.
- [0.9 documentation](https://docs.acme.com/0.9): an older version, kept for readers still on it.

The index uses your homepage description as its summary and groups links by navigation order. Older versions appear under Optional.

Write useful page descriptions: agents use them to decide which pages to open.

llms-full.txt

/llms-full.txt is the entire current documentation in one plain-text response: every page of the default version only, in path order, as raw markdown, each preceded by its path and title.

# Acme Docs — full documentation

> Scope: every page of the 1.0 documentation, which is the current version.
> 1 older version is NOT included here; they are listed in
> https://docs.acme.com/llms.txt

---
page: /
title: Welcome
---

# Welcome
...

---
page: /quickstart
title: Quickstart
---

# Quickstart
...

For an older release, read that version’s .md URLs directly.

Page tools

Page controls appear beside the article on wide screens and above it on narrow screens:

Control What it does
Copy page Fetches the page's .md source and puts it on the clipboard. Confirms with Copied ✓.
Markdown Opens the .md source.
Ask Claude Opens Claude with a prompt naming this page's .md URL and title, ready to answer questions about it.
Ask ChatGPT The same, for ChatGPT.
Print / PDF Opens the browser print dialog against a print stylesheet — navigation, rails, and page tools are dropped, code and tables are made legible on paper.

The Ask controls open a prepared prompt asking the assistant to read the page's Markdown URL. Whether it fetches that URL depends on the assistant and its available tools.

These controls appear on documentation pages only, not on search results or the 404 page.

Crawler policy

robots.txt is generated per host.

On the site's primary host:

User-agent: *
Content-Signal: search=yes, ai-input=yes
Allow: /

Sitemap: https://docs.acme.com/sitemap.xml

search=yes allows indexing; ai-input=yes allows use as model input at answer time. The default does not grant or deny AI training permission.

Non-primary hosts send Disallow: / and noindex directives. These request exclusion from cooperating crawlers; they do not prevent access or guarantee removal from an index.

/sitemap.xml lists every page of every version with a last-modified date.

Social previews

Docsary generates preview cards so links can show a title, description, site name, and image when shared.

Generated images are 1200×630 PNGs at /og/<page path>.png, or /og.png for the homepage. They use the site name, page title, and colors.primary. Changes appear after caches refresh.

To use your own artwork instead, set og_image in site settings to its URL. It replaces the generated card on every page.

Structured data

Each page includes TechArticle and BreadcrumbList structured data for search engines. The homepage also includes WebSite data with the search URL. FAQ and How-To markup are not included.