> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aethis.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Capabilities and access

> What Aethis does without a key, what needs an invite, and the generated inventory of tools and published package versions.

Aethis has exactly two access tiers. Everything on this site belongs to one of
them, and every page says which before you start.

|                       | Evaluate                                                                                                                                                                               | Author and publish                                                                                                                    |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Access**            | Open. No signup, no Aethis key, no model-provider key.                                                                                                                                 | **Invite-only private beta.** [Request access](https://aethis.ai/developer-access).                                                   |
| **What you can do**   | Decide against published public rulesets, read their input schema, read their rules and source references, render their graph, diagnose a failed outcome, browse the public catalogue. | Everything above, plus create projects, upload sources, discover sections and fields, generate rules, run tests, review, and publish. |
| **What it costs you** | Nothing. Anonymous callers are rate-limited per client, with client identity taken from the trusted proxy hop rather than a caller-supplied header.                                    | An Aethis API key, plus your own model-provider key for generation steps.                                                             |
| **Where to start**    | [Your first decision](/getting-started/first-decision)                                                                                                                                 | [Author your first ruleset](/getting-started/author-first-ruleset)                                                                    |

<Note>
  Generation steps send your source text to a model provider using **your own**
  key, passed per request in an `X-Anthropic-Key` header and never stored.
  Nothing on the evaluate tier calls a model at all — decisions run against
  pre-compiled rules.
</Note>

## What a 401 or 403 means

An authentication error on this API is a statement about which tier you are in,
not a bug in your request.

| Status | What happened                                                                                                                                                                | What to do                                                                                                                                                                                                     |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `401`  | You called an authoring or tenant-scoped route with no key, or with a key the engine could not verify. Composed rulebook decisions (`rulebook_id`) are always in this class. | Evaluating a public ruleset? Use `ruleset_id` with a leaf slug — no key needed. Authoring? [Request access](https://aethis.ai/developer-access).                                                               |
| `403`  | Your key is valid but lacks the scope the route requires.                                                                                                                    | Check `aethis whoami` for your scopes, then see [Authentication and API keys](/reference/authentication). Missing an authoring scope you were expecting? [Request access](https://aethis.ai/developer-access). |

The full status table, including the blocking-error contract, is on the
[REST API](/interfaces/rest-api#error-responses) page.

## Published packages

Four interfaces call the same engine. These are the versions the registries
resolve today.

| Surface    | Package             | Install                      | Latest published |
| ---------- | ------------------- | ---------------------------- | ---------------- |
| CLI        | `aethis-cli` (PyPI) | `uv tool install aethis-cli` | `0.29.0`         |
| Python SDK | `aethis-sdk` (PyPI) | `uv add aethis-sdk`          | `0.10.0`         |
| MCP server | `aethis-mcp` (npm)  | `npx -y aethis-mcp`          | `0.15.1`         |

The REST API needs no package at all — see [REST API](/interfaces/rest-api).

## MCP tool inventory

The MCP server (`io.github.aethis-ai/aethis-mcp`) exposes **32 tools**: **7** are reachable with no Aethis API key (read-only evaluation and discovery) and **25** need an invite-only authoring key.

**Access** is the tier a tool belongs to. "Any origin, hybrid" marks a tool
whose common path is open but which has a narrower key-guarded path as well —
`aethis_graph` renders a public ruleset map anonymously, but a *rulebook* map
requires a key.

**Effect** reproduces the `readOnlyHint` / `destructiveHint` annotations the
server declares for each tool.

<Warning>
  **Treat the Effect column as a hint, not a safety boundary.** It reports what
  the server *declares* about a tool, and a declaration can be wrong — a tool
  that spends your model-provider key and persists its result to your project
  can still be declared read-only. If your agent host gates approval on these
  annotations, do not rely on them alone to decide what may run unattended.
  Gate on the **Access** column as well, and treat every API-key tool as
  capable of writing.
</Warning>

| Tool                          | What it does                                                                                                                                                     | Access             | Effect          |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | --------------- |
| `aethis_add_domain_guidance`  | Add a guidance hint at domain level — applies to ALL projects in the domain, not just one project                                                                | API key            | Writes          |
| `aethis_add_guidance`         | Add a guidance hint to a project                                                                                                                                 | API key            | Writes          |
| `aethis_archive_project`      | Archive a project                                                                                                                                                | API key            | Retires content |
| `aethis_archive_ruleset`      | Archive a rule ruleset                                                                                                                                           | API key            | Retires content |
| `aethis_create_rulebook`      | Create a new Rulebook — the composed-whole execution unit that bridges multiple rulesets (the parts) via outcome\_logic                                          | API key            | Writes          |
| `aethis_create_ruleset`       | Create a new rule ruleset with source text and test cases (TDD)                                                                                                  | API key            | Writes          |
| `aethis_decide`               | Evaluate eligibility against either a single published ruleset (ruleset\_id) or a composed rulebook (rulebook\_id)                                               | No key             | Read-only       |
| `aethis_discover_fields`      | Discover input fields from the project's source text                                                                                                             | API key            | Read-only       |
| `aethis_discover_rulesets`    | List public showcase rulesets across all tenants                                                                                                                 | No key             | Read-only       |
| `aethis_discover_sections`    | Discover the logical sections of source legislation for a domain                                                                                                 | API key            | Read-only       |
| `aethis_explain`              | Get human-readable descriptions of the rules in a ruleset, including criteria groups, requirements, and exception paths.                                         | No key             | Read-only       |
| `aethis_explain_failure`      | Diagnose why a ruleset produced an unexpected outcome for specific test inputs                                                                                   | No key             | Read-only       |
| `aethis_generate_and_test`    | Generate rules from source text and run all test cases                                                                                                           | API key            | Writes          |
| `aethis_graph`                | Get the ruleset-map graph for a single published ruleset (ruleset\_id) or a composed rulebook (rulebook\_id) — provide exactly one                               | Any origin, hybrid | Read-only       |
| `aethis_list_domain_guidance` | List all active guidance hints for a domain                                                                                                                      | API key            | Read-only       |
| `aethis_list_guidance`        | List all guidance hints accumulated for a project                                                                                                                | API key            | Read-only       |
| `aethis_list_projects`        | List all projects in the current tenant                                                                                                                          | API key            | Read-only       |
| `aethis_list_rulebooks`       | List rulebooks (composed wholes that bridge multiple rulesets) in the current tenant                                                                             | API key            | Read-only       |
| `aethis_list_rulesets`        | List all rule rulesets for a project, including version history                                                                                                  | API key            | Read-only       |
| `aethis_next_question`        | Get the optimal next question for a conversational eligibility check                                                                                             | No key             | Read-only       |
| `aethis_publish`              | Publish the latest rule ruleset                                                                                                                                  | API key            | Writes          |
| `aethis_refine`               | Refine an existing published ruleset: add optional feedback, then make the MINIMAL edit to fix failing test cases while keeping passing tests green, and re-run  | API key            | Writes          |
| `aethis_refine_fields`        | Add guidance to improve field discovery, then re-discover                                                                                                        | API key            | Writes          |
| `aethis_refine_sections`      | Add guidance to improve section discovery, then re-discover sections                                                                                             | API key            | Writes          |
| `aethis_review_project`       | Review an authoring project against the deterministic authoring-coach rubric and get skill-building feedback                                                     | API key            | Read-only       |
| `aethis_rulebook_schema`      | Get the composition + aggregated input fields for a rulebook                                                                                                     | API key            | Read-only       |
| `aethis_schema`               | Get the input fields required for an eligibility check                                                                                                           | No key             | Read-only       |
| `aethis_set_field_spec`       | Store the expected field specification for a project                                                                                                             | API key            | Writes          |
| `aethis_update_rulebook`      | Update a Rulebook's name, description, slug, or robot\_hints (assistant guidance for the conversational agent)                                                   | API key            | Writes          |
| `aethis_usage`                | Show the caller's rate-limit budget per operation class over the rolling 24h window: for each of decide / generate / author / read / keys / admin, the used coun | API key            | Read-only       |
| `aethis_validate_fields`      | Assert that the discovered fields match an expected field specification                                                                                          | API key            | Read-only       |
| `aethis_validate_sections`    | Compare discovered sections against an expected specification                                                                                                    | API key            | Read-only       |

Parameters, request shapes and worked examples for each tool:
[Tools reference](/mcp-server/tools).

## How these numbers stay true

The table above is not maintained by hand. `scripts/gen_capability_inventory.py`
builds `generated/capability-inventory.json` from three checked upstream
sources — the MCP server's own generated `tool-inventory.json`, its
`TOOL_CAPABILITIES` registry (which its test suite pins against the handlers
that actually require a key), and the PyPI and npm registries. A CI check
re-renders these regions on every pull request and fails if a page has drifted
from the artefact, or if any page reintroduces a hand-typed tool count.
