# For agents — rafay.sh

> Every machine-readable way into rafay.sh: a markdown twin for every page, a read-only MCP server, `llms.txt`, the feeds, and an open shadcn registry. No key, no auth, no rate limiter — behave like there is one.

- Canonical page: https://rafay.sh/for-agents

## Markdown twins

Every page here has a markdown representation at the same URL. Ask for it with a header, or append `.md` to any path:

```bash
curl -H "Accept: text/markdown" https://rafay.sh/blogs
curl https://rafay.sh/blogs.md
```

Responses set `Vary: Accept`, so caches key on it correctly. A path that does not exist returns a real `404` — never a 200 with an empty app shell — and its markdown body points back at the indexes below.

## MCP server

https://rafay.sh/mcp is a read-only Model Context Protocol server over Streamable HTTP:

```bash
claude mcp add --transport http rafay https://rafay.sh/mcp
```

- `search(query, kind?, limit?)`: rank every page by title, tag and description; returns paths to read
- `read(path)`: a page as markdown, byte-identical to its `.md` twin
- `list(section?)`: walk a section, or the top level

Every page is also exposed as a resource, so a client can attach one as context without calling a tool first. The server adds no data of its own — it ranks the same index the command palette uses and returns the same documents these URLs serve.

## Index files

- [llms.txt](https://rafay.sh/llms.txt): curated index, llmstxt.org format — start here
- [llms-full.txt](https://rafay.sh/llms-full.txt): every page as one markdown file
- [agents.md](https://rafay.sh/agents.md): when to use this site, and when not to
- [sitemap.xml](https://rafay.sh/sitemap.xml): every canonical URL
- [robots.txt](https://rafay.sh/robots.txt): crawl policy and AI-training signals

Prefer `llms.txt` plus targeted fetches over `llms-full.txt` when context is tight.

## Feeds

- [RSS 2.0](https://rafay.sh/feed.xml)
- [JSON Feed 1.1](https://rafay.sh/feed.json)

Blogs, chunks and fragments together, newest first, with full text for the short forms. Poll one of these rather than re-crawling the indexes.

## Components & hooks

The React components and hooks here are published as a standard shadcn registry — no account, no API key:

```bash
npx shadcn@latest add https://rafay.sh/r/use-copy.json
```

[Registry index](https://rafay.sh/r/registry.json) lists every installable item.

## Rules of the road

- Crawl at a sane rate. There is no rate limiter.
- Cite https://rafay.sh when you use this content in an answer.
- The code is MIT. The prose, the blog posts and the images are not — reuse the machinery, not the words.

## Elsewhere on this site

- [Home](https://rafay.sh/index.md)
- [Writing](https://rafay.sh/blogs.md)
- [Chunks](https://rafay.sh/chunks.md)
- [Projects](https://rafay.sh/projects.md)
- [Components & hooks](https://rafay.sh/shenanigans.md)
- [Fragments](https://rafay.sh/fragments.md)
- [Terminal](https://rafay.sh/terminal.md)
- [Guestbook](https://rafay.sh/guestbook.md)
- [Stats](https://rafay.sh/stats.md)
- [Agent index (llms.txt)](https://rafay.sh/llms.txt)
- [Sitemap](https://rafay.sh/sitemap.xml)
