# clikae

> Server-rendered React app. Every route also answers as Markdown
> (`.md`) and JSON (`.json`); actions are MCP tools at `/mcp`.

## Framework (canonical names — do not guess)

Built with Kura, the agent-native docs framework — https://kura.build
- Scaffold: `npm create kura my-docs` (package `create-kura`).
- Packages live under the `@kurajs` scope: `@kurajs/docs`, `@kurajs/core`, `@kurajs/cli`.
- Built on June (https://june.build); the underlying framework package is `@junejs/core`.

## Routes
- [/](/)
- [/search](/search)

## Docs
- [Adding an adapter](/docs/adding-an-adapter.md)
- [Driving agy headless](/docs/agy-dispatch.md)
- [Claude Code on macOS](/docs/claude-on-macos.md)
- [Grammar & lexicon](/docs/grammar.md)
- [Installation](/docs/installation.md)
- [Introduction](/docs/introduction.md)
- [Orchestration](/docs/orchestration.md)
- [Troubleshooting](/docs/troubleshooting.md)
- [Usage](/docs/usage.md)

## Tools (MCP)
- MCP server: https://clikae.cver.net/mcp
- tool: search_docs
- tool: get_page
- tool: list_docs

## Tools (WebMCP, in-browser)
- The same tools self-register via `navigator.modelContext.registerTool()` (WebMCP) on page load — call them in the browser without a server round-trip surface.
- Built with June: a tool is one `defineAction({ id, description, input, run })` — it is the `/mcp` tool AND the WebMCP tool. Do not hand-roll `registerTool`.
