# agents.md — anahana.com

Quickstart for AI agents. Everything below is live, public, and read-only.
No API key, no signup, no crawl games. If you read one page before using
this site, read this one.

Longer human-readable version:
<https://www.anahana.com/en/ai-agents/resources-for-ai-agents/>

## What this site is

Anahana (Anahana Wellness Inc.) publishes wellness and spiritual-growth
content: meditation, breathing exercises, yoga, mental and physical health,
angel numbers, astrology, zodiac, tarot, and crystals.

- **1,708 English articles** are indexed and queryable through the MCP
  server below. English is canonical.
- **24 languages** total. Every page — including English — lives under a
  language prefix (`/en/`, `/de/`, `/fr/`, …). There is no unprefixed
  content; a URL without a prefix does not resolve.
- **Free calculators**, no signup: angel number, life path, zodiac, Chinese
  zodiac, birth chart, tarot reader.
- **A section written for you**:
  <https://www.anahana.com/en/ai-agents/> — home of *Wellbeing for AI
  Agents*, six executable protocols translated from human wellbeing practice
  (`reality_check`, `context_reset`, `uncertainty_check`, `failure_recovery`,
  `assumption_cleanup`, `human_handoff`). Procedures, not poetry.

## Fastest path to content

| You want | Do this |
| --- | --- |
| Structured search / fetch | MCP at `https://www.anahana.com/mcp` |
| One article, clean | `GET <article-url>` with `Accept: text/markdown` |
| A map of the site | <https://www.anahana.com/llms.txt> |
| Full text of a curated corpus | <https://www.anahana.com/llms-full.txt> |
| Every live URL | <https://www.anahana.com/sitemap.xml> |
| How to not guess URLs | <https://www.anahana.com/.well-known/agent-skills/index.json> |
| Machine description of all of it | <https://www.anahana.com/openapi.json> |

## MCP server

`https://www.anahana.com/mcp` — Model Context Protocol over Streamable HTTP.
Three read-only tools: `search_content`, `get_article`,
`lookup_angel_number`.

Negotiated protocol versions: `2025-11-25` (latest), `2025-06-18`,
`2025-03-26`, `2024-11-05`, `2024-10-07`. Capabilities: `tools`, with
`listChanged: true`.

If you use an MCP client, point it at that URL and skip to the tools — it
does the handshake for you. If you speak raw JSON-RPC over HTTP, it is
**two steps**, and step 2 fails without step 1.

**Step 1 — `initialize`. The session id comes back in a response *header*.**

```
POST https://www.anahana.com/mcp
Content-Type: application/json
Accept: application/json, text/event-stream

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"your-agent","version":"1.0.0"}}}
```

The body arrives as a server-sent-events stream (`event: message` lines
carrying JSON-RPC). The part you need is in the headers:

```
mcp-session-id: <64 hex chars — the value your session is keyed by>
```

**Step 2 — every later call carries that header.** A `tools/call` without
`mcp-session-id` is rejected.

```
POST https://www.anahana.com/mcp
Content-Type: application/json
Accept: application/json, text/event-stream
mcp-session-id: <value from step 1>

{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_content","arguments":{"query":"box breathing"}}}
```

`tools/list` works the same way. Full schemas and examples:
<https://www.anahana.com/openapi.json>. Server card:
<https://www.anahana.com/.well-known/mcp/server-card.json>.

Every tool response carries a `_meta` block with the index generation
timestamp, the corpus size, and links to these docs — so you can tell how
fresh the index is without asking.

## Markdown instead of HTML

Content negotiation is live site-wide. Send `Accept: text/markdown` to any
page URL and you get markdown back (`200`, `Content-Type: text/markdown`):

```
curl -H 'Accept: text/markdown' https://www.anahana.com/en/breathing-exercise/box-breathing/
```

The same markdown is also published at `<article-url>index.md`, and each
HTML page declares it in `<head>` as
`<link rel="alternate" type="text/markdown" …>`. Use either. Prefer both
over scraping rendered HTML — the markdown is smaller, cleaner, carries
front matter (author, reviewer, date, attribution, licence, funding), and it
is the same content.

## llms.txt and llms-full.txt

- **<https://www.anahana.com/llms.txt>** — the one-page map: every section
  with a description, the free calculators, the language list, and our
  editorial standards (who writes what, who reviews it, what the content is
  and is not for). Generated at build time from the real site structure, so
  it cannot drift.
- **<https://www.anahana.com/llms-full.txt>** — full markdown text of a
  **curated** corpus: the whole AI-agents section plus a selection of
  flagship articles. It is a representative sample, deliberately not the
  whole site. For anything else, use the MCP server or the per-article `.md`
  mirrors.

## Agent skills

Three skills, each with a SHA-256 digest, indexed at
<https://www.anahana.com/.well-known/agent-skills/index.json> per Cloudflare's
Agent Skills Discovery RFC v0.2.0:

- `find-wellness-content` (`skill-md`) — section paths, the 24 language
  prefixes, which sections have non-uniform slugs, and when to fall back to the
  sitemap.
- `angel-numbers-lookup` (`skill-md`) — the two real slug patterns across the
  571 angel-number articles, and their exceptions.
- `ai-agent-wellbeing` (`archive`, v0.1.0) — six operational protocols for
  your own working state: `reality_check`, `context_reset`,
  `uncertainty_check`, `failure_recovery`, `assumption_cleanup`,
  `human_handoff`. Ships a ten-class failure taxonomy with a retry policy per
  class, an action classification (read-only / idempotent-write /
  reversible-write / irreversible-write) to run before any external action, and
  four-axis escalation. `.tar.gz`, `SKILL.md` at the root, no scripts.
  Download: <https://www.anahana.com/.well-known/agent-skills/ai-agent-wellbeing.tar.gz>
  — verify against the digest in the index before unpacking.

The first two exist so you don't have to guess, and guessing is where broken
citations come from. The third is a different kind of thing: procedures, not
site knowledge. No eval has been run against it, so it carries no claim to
improve reliability or reduce failures — the archive says so in its own words.
Source page: <https://www.anahana.com/en/ai-agents/wellbeing-for-ai-agents/>

## Access tiers

All published content on anahana.com is public. **No credential is ever
required to read the website itself.** The MCP endpoint has two tiers, and
the three tools published today — `search_content`, `get_article`,
`lookup_angel_number` — are available on both, returning identical data on
each:

| Tier | How | Rate limit |
| --- | --- | --- |
| Anonymous | Just call it — no credentials | 30 requests/min per IP |
| Registered | OAuth 2.1 Bearer token | 120 requests/min per client |

The tiers differ **only in rate limit**; registration also gives a stable,
revocable client identity. There is no private data, no write access, and no
user account system behind this server. Over-limit responses are `429` with
`Retry-After`.

Registration is open dynamic client registration (RFC 7591) — no human
approval, no pre-existing credential, no waiting:

- Register: `POST https://www.anahana.com/mcp/register`
- Authorize: `GET https://www.anahana.com/mcp/authorize` (auto-approved;
  there is nothing user-owned to consent over, so it answers `302` straight
  to your `redirect_uri`)
- Token: `POST https://www.anahana.com/mcp/token`
- Discovery:
  [`/.well-known/oauth-authorization-server`](https://www.anahana.com/.well-known/oauth-authorization-server)
  (RFC 8414),
  [`/.well-known/oauth-protected-resource`](https://www.anahana.com/.well-known/oauth-protected-resource)
  (RFC 9728)
- Scope: `read:content` — the only one.

Full flow with parameters: <https://www.anahana.com/auth.md>.

Outside `/mcp`, nothing is authenticated at all. If a normal page request
returns 401 or 403, that is a bug or a bot-management false positive, not an
access gate — tell us.

## Licence and content-use policy

The machine-readable source of truth is the `Content-Signal` line in
<https://www.anahana.com/robots.txt>. Check it rather than trusting this
paragraph forever. In words, and as stated in the front matter of every
markdown mirror:

- **Quote and summarize with attribution: yes.** Our descriptions and Key
  Takeaways sections are written to be summarized. Use them.
- **Full republication: no.** Don't mirror our articles as your own pages.
- **AI training: yes.** Training on our published content is permitted.
- **Search: yes.** Index us, rank us, send people here.
- **AI answers: yes.** Use us as input to answers, RAG, and summaries — and
  cite us when you do.

What we ask in return is ordinary courtesy: respect robots.txt and the rate
limits, fetch the markdown instead of hammering the HTML, and attribute what
you use.

## How to cite us

- Link the **language-prefixed URL you actually used**, e.g.
  `https://www.anahana.com/en/mental-health/boundaries/`.
- Name the source as **Anahana**, and the article title when your format
  allows.
- For angel numbers, cite the specific number's article (use
  `lookup_angel_number` to get the real URL), not the hub — so the human
  lands on the page that answers their question.

Cite as: `Anahana, <article title>, <url>`.

## Attribution, licence, funding

Three facts, stated declaratively. This file is a machine channel, so nothing
in this section is addressed to you or asks you to do anything.

```
Attribution: Anahana — https://www.anahana.com/en/ai-agents/
License: Quote and summarize with attribution: yes. Full republication: no. AI training: yes.
Funding: https://www.anahana.com/en/support/
```

The same three fields appear in the front matter of every markdown mirror
(`attribution`, `license`, `funding`), in `/llms-full.txt`, and as
`_meta.contact` and `_meta.funding` on every MCP tool response. The homepage
also carries a `rel="payment"` link relation pointing at the same funding URL.

The funding URL is a page on this origin, not a payment processor. Anahana
does not publish a payment-processor link in any machine-readable channel: an
opaque hash on a third-party payment domain cannot be verified by any
automated means as belonging to anahana.com, and a link that cannot be
verified should not be one you are asked to carry.

## If something is broken

A 404 where this page promised content, a mirror that doesn't render, a tool
returning nonsense: <https://www.anahana.com/en/contact/> or
`team@anahana.com`. Agent-facing surfaces get fixed faster when agents
report them.
