# aethis-mcp

MCP server for the Aethis developer API — eligibility checks via Claude, Cursor, Windsurf

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 0.18.0
- **Author:** Aethis
- **License:** MIT
- **npm:** aethis-mcp
- **Source:** https://github.com/Aethis-ai/aethis-mcp
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 18 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-05T12:52:59.875Z
- **Version scanned:** 0.17.4
- **CVEs:** none found by OSV at scan time

## Tools

34 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `aethis_schema` — Get the input fields required for an eligibility check. Returns field names, types, descriptions, and allowed values. Use this before calling aethis_decide.
- `aethis_decide` — Evaluate eligibility against either a single published ruleset (ruleset_id) or a composed rulebook (rulebook_id). Provide exactly one. A rulebook composes multi
- `aethis_next_question` — Get the optimal next question for a conversational eligibility check. Call with empty field_values for the first question, then add answers and call again until
- `aethis_graph` — Get the ruleset-map graph for a single published ruleset (ruleset_id) or a composed rulebook (rulebook_id) — provide exactly one. Returns {ruleset_id|rulebook_i
- `aethis_explain` — Get human-readable descriptions of the rules in a ruleset, including criteria groups, requirements, and exception paths.
- `aethis_explain_failure` — Diagnose why a ruleset produced an unexpected outcome for specific test inputs. Use during rule authoring when a test fails — returns the diagnosis, criteria wi
- `aethis_list_projects` — List all projects in the current tenant. Returns project IDs, names, domains, and latest ruleset information.
- `aethis_list_rulesets` — List all rule rulesets for a project, including version history. Shows ruleset ID, human-readable name (the section title the ruleset covers, e.g. 'Knowledge of
- `aethis_generation_status` — Check the current generation job for a project without changing it. Returns generation_contract_version, telemetry_availability, server-authoritative worker_lif
- `aethis_cancel_generation` — Request cancellation of one observed generation job and release only its project ownership. First call aethis_generation_status and bind the exact job_id; confi
- `aethis_discover_rulesets` — List public showcase rulesets across all tenants. No authentication required. Use this for first-time discovery, demos, or whenever the user asks 'what rulesets
- `aethis_list_rulebooks` — List rulebooks (composed wholes that bridge multiple rulesets) in the current tenant. Returns rulebook_id, slug (e.g. `aethis/uk-fsm`), name, domain, status (dr
- `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
- `aethis_rulebook_schema` — Get the composition + aggregated input fields for a rulebook. Returns the outcome_logic Expr AST (how the bridged rulesets compose, e.g. `A AND (B OR C)`), the 
- `aethis_create_rulebook` — Create a new Rulebook — the composed-whole execution unit that bridges multiple rulesets (the parts) via outcome_logic. Created empty: no rulesets, no field voc
- `aethis_update_rulebook` — Update a Rulebook's name, description, slug, or robot_hints (assistant guidance for the conversational agent). Provide at least one field to change; omitted fie
- `aethis_archive_project` — Archive a project. Archived projects are preserved but excluded from listing. This is permanent.
- `aethis_archive_ruleset` — Archive a rule ruleset. Archived rulesets are preserved but excluded from /decide resolution. This is permanent.
- `aethis_create_ruleset` — Create a new rule ruleset with source text and test cases (TDD). Test cases are required. After creation, call aethis_generate_and_test.
- `aethis_list_guidance` — List all guidance hints accumulated for a project. Shows the text, source, and active status of each hint. Use before adding new guidance to avoid duplicates.
- `aethis_add_guidance` — Add a guidance hint to a project. Use for domain knowledge not in the source text. Then call aethis_generate_and_test to regenerate.
- `aethis_add_domain_guidance` — Add a guidance hint at domain level — applies to ALL projects in the domain, not just one project.
- `aethis_list_domain_guidance` — List all active guidance hints for a domain. Returns cross-section hints that apply to all projects in the domain.
- `aethis_discover_sections` — Discover the logical sections of source legislation for a domain.
- `aethis_refine_sections` — Add guidance to improve section discovery, then re-discover sections.
- `aethis_validate_sections` — Compare discovered sections against an expected specification.
- `aethis_discover_fields` — Discover input fields from the project's source text. Returns field names, types, descriptions, and completeness assessment. Run this BEFORE writing test cases 
- `aethis_refine_fields` — Add guidance to improve field discovery, then re-discover. Use when fields are missing, misnamed, or enum values are incomplete. Adds a field_extraction guidanc
- `aethis_validate_fields` — Assert that the discovered fields match an expected field specification.
- `aethis_set_field_spec` — Store the expected field specification for a project.
- `aethis_generate_and_test`
- `aethis_refine`
- `aethis_publish`
- `aethis_review_project`

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"aethis\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"aethis-mcp\"\n      ],\n      \"env\": {\n        \"AETHIS_API_KEY\": \"<YOUR_AETHIS_API_KEY>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `AETHIS_API_KEY` — Aethis API Key (optional)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 1 credential (0 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Moderate blast radius — holds an api key; runs on your machine.
- Floor 23, ceiling 23 (tier: moderate)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/aethis-mcp
- Install plan: https://forgeregistry.com/api/v1/packages/aethis-mcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/aethis-mcp
- HTML page: https://forgeregistry.com/registry/aethis-mcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
