← Back to search

aethis-mcp

GitHub Actions Scanned 22d ago

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

D
57.9 / 100

Versions

0.15.1latest
Jul 25, 2026
0.15.0
Jul 21, 2026
0.13.0
Jul 20, 2026
0.10.0
Jul 4, 2026
0.9.0
May 29, 2026
+ show 10 moreshow less
0.7.2
May 25, 2026
0.7.1
May 22, 2026
0.7.0
May 22, 2026
0.4.3
May 11, 2026
0.3.0
May 6, 2026
0.2.6
May 4, 2026
0.2.2
Apr 7, 2026
0.2.1
Apr 7, 2026
0.2.0
Apr 7, 2026
0.1.0
Apr 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 36

aethis_schema
annotations: none low

Get the input fields required for an eligibility check. Returns field names, types, descriptions, and allowed values. Use this before calling aethis_decide.

ruleset_id string
aethis_decide
annotations: none low

Evaluate eligibility against either a single published ruleset (ruleset_id) or a composed rulebook (rulebook_id). Provide exactly one. A rulebook composes multiple rulesets via outcome_logic — use it for the whole-form decision (e.g. `aethis/uk-fsm`). A ruleset is one section in isolation (e.g. `aethis/uk-fsm/child-eligibility`). Returns eligible/not_eligible/undetermined with optional trace and explanation. When undetermined, includes next_question and optimal_path. Rulebook evaluation always requires an API key; ruleset evaluation can be anonymous against public rulesets.

ruleset_id string rulebook_id string include_trace boolean include_explanation boolean include_graph_overlay boolean
aethis_next_question
annotations: none low

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 decision is reached. When the ruleset author attached notes to a question (e.g. why it is asked, or legal background), they are surfaced under a Notes block.

ruleset_id string
aethis_graph
annotations: none low

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_id, slug, name, graph: {nodes, edges, sections, stats}, mermaid}: each node

ruleset_id string rulebook_id string
aethis_explain
annotations: none low

Get human-readable descriptions of the rules in a ruleset, including criteria groups, requirements, and exception paths.

ruleset_id string
aethis_explain_failure
annotations: none low

Diagnose why a ruleset produced an unexpected outcome for specific test inputs. Use during rule authoring when a test fails — returns the diagnosis, criteria with DSL metadata (waivable, review_required), and a targeted hint for fixing the rule.

test_name string ruleset_id string
aethis_list_projects
annotations: none low

List all projects in the current tenant. Returns project IDs, names, domains, and latest ruleset information.

project_id string
aethis_list_rulesets
annotations: none low

List all rule rulesets for a project, including version history. Shows ruleset ID, human-readable name (the section title the ruleset covers, e.g.

project_id string
aethis_generation_status
annotations: none low

Check the current generation job for a project without changing it. Returns generation_contract_version, telemetry_availability, server-authoritative worker_lifecycle, retry_readiness, and the active or most recent job

project_id string
aethis_cancel_generation
annotations: none low

Request cancellation of one observed generation job and release only its project ownership. First call aethis_generation_status and bind the exact job_id; confirm_job_id protects against accidental target mismatch but does not itself prove human approval. MCP hosts should require destructive-action approval, and agents must obtain a fresh explicit user reply before calling. The response outcome is cancelled or idempotent already_cancelled. Cancellation may be cooperative rather than immediate. It is a destructive mutation and requires an API key.

job_id string project_id string confirm_job_id string
aethis_discover_rulesets
annotations: none low

List public showcase rulesets across all tenants. No authentication required. Use this for first-time discovery, demos, or whenever the user asks

limit number offset number
aethis_list_rulebooks
annotations: none low

List rulebooks (composed wholes that bridge multiple rulesets) in the current tenant. Returns rulebook_id, slug (e.g. `aethis/uk-fsm`), name, domain, status (draft/active/archived), version, outcome_logic (the composition Expr AST), ruleset_refs, and timestamps. Use this when the user asks

rulebook_id string
aethis_usage
annotations: none low

Show the caller

rulebook_id string
aethis_rulebook_schema
annotations: none low

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 list of bridged rulesets (ruleset_name, ruleset_id, slug, status), and the union of all required input fields. Use this BEFORE aethis_decide on a rulebook_id to know what field_values to supply, or to inspect how a rulebook is wired. Pass a rulebook slug (e.g. `aethis/uk-fsm`) or opaque id (`rb_*`).

rulebook_id string
aethis_create_rulebook
annotations: none low

Create a new Rulebook — the composed-whole execution unit that bridges multiple rulesets (the parts) via outcome_logic. Created empty: no rulesets, no field vocabulary, no tests, status=

name string slug string domain string description string
aethis_update_rulebook
annotations: none low

Update a Rulebook

name string slug string description string rulebook_id string
aethis_archive_project
annotations: none low

Archive a project. Archived projects are preserved but excluded from listing. This is permanent.

project_id string
aethis_archive_ruleset
annotations: none low

Archive a rule ruleset. Archived rulesets are preserved but excluded from /decide resolution. This is permanent.

ruleset_id string
aethis_create_ruleset
annotations: none low

Create a new rule ruleset with source text and test cases (TDD). Test cases are required. After creation, call aethis_generate_and_test.

name string domain string section_id string source_text string
aethis_set_tests
annotations: none low

Replace the complete reviewed test suite for an existing project after field discovery. Requires 1 to 100 cases and replaces prior tests without creating a project or changing its sources, fields, or guidance. This is destructive. The target API must advertise replacement support before any write. If the response is interrupted, inspect the project before approving another replacement.

name string project_id string
aethis_list_guidance
annotations: none low

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.

project_id string
aethis_add_guidance
annotations: none low

Add a guidance hint to a project. Use for domain knowledge not in the source text. Then call aethis_generate_and_test to regenerate.

project_id string guidance_text string
aethis_add_domain_guidance
annotations: none low

Add a guidance hint at domain level — applies to ALL projects in the domain, not just one project.

notes string domain string guidance_text string
aethis_list_domain_guidance
annotations: none low

List all active guidance hints for a domain. Returns cross-section hints that apply to all projects in the domain.

domain string
aethis_discover_sections
annotations: none low

Discover the logical sections of source legislation for a domain.

name string domain string content string
aethis_refine_sections
annotations: none low

Add guidance to improve section discovery, then re-discover sections.

name string domain string content string feedback string
aethis_validate_sections
annotations: none low

Compare discovered sections against an expected specification.

domain string
aethis_discover_fields
annotations: none low

Discover input fields from the project

project_id string
aethis_refine_fields
annotations: none low

Add guidance to improve field discovery, then re-discover. Use when fields are missing, misnamed, or enum values are incomplete. Adds a field_extraction guidance hint and re-runs discovery.

feedback string project_id string
aethis_validate_fields
annotations: none low

Assert that the discovered fields match an expected field specification.

key string sort string project_id string
aethis_set_field_spec
annotations: none low

Store the expected field specification for a project.

key string sort string project_id string
aethis_generate_and_test
annotations: none low

Generate rules from source text and run all test cases. Triggers generation, polls until complete, then runs tests. Returns pass/fail with regression detection. Usually takes 60-120 seconds; if polling times out, use aethis_generation_status before retrying, and aethis_cancel_generation only when the caller wants to stop the run.

project_id string
aethis_refine
annotations: none low

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 the full suite (seed-from-existing incremental re-authoring). Use this to fix a specific finding without re-authoring the whole section; use aethis_generate_and_test for a from-scratch rebuild.

feedback string project_id string
aethis_publish
annotations: none low

Publish the latest rule ruleset. Runs tests first and refuses if they fail unless force=true. Auto-deprecates previous active ruleset.

name string force boolean label string project_id string
aethis_review_project
annotations: none low

Review an authoring project against the deterministic authoring-coach rubric and get skill-building feedback. Returns a score, per-check evidence across grounding / process / lifecycle, strengths, and the single highest-leverage next improvement. Advisory only — it never blocks publishing. The deterministic report needs no LLM key; set coach=true (with an Anthropic key) to add an LLM-synthesised coaching narrative on top of the computed checks.

project_id string
aethis
annotations: none low

Permissions 4

network medium
Server uses network capabilities via: fetch()
filesystem low
Server uses filesystem capabilities via: fs/promises
shell high
Server uses shell capabilities via: child_process
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 0

No scan findings.