{"name":"io.github.Aethis-ai/aethis-mcp","slug":"aethis-ai-aethis-mcp","title":null,"description":"Deterministic eligibility decisions and test-driven rule authoring via the Aethis developer API.","url":"https://mcp.market/server/aethis-ai-aethis-mcp","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":33,"stars":1,"forks":0,"downloads_week":247,"last_push_at":"2026-09-14T15:36:48.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Aethis-ai/aethis-mcp","website":"https://docs.aethis.ai","version":"0.18.0","remotes":[],"packages":[{"registryType":"npm","identifier":"aethis-mcp","version":"0.18.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"API key for rule authoring tools (create/generate/publish). Decision tools (decide/schema/explain on public rulesets) work without a key. Get one via 'aethis login' in aethis-cli.","format":"string","isSecret":true,"name":"AETHIS_API_KEY"},{"description":"API base URL. Defaults to https://api.aethis.ai — override for self-hosted or staging.","format":"string","default":"https://api.aethis.ai","name":"AETHIS_BASE_URL"}]}],"tools":[{"name":"aethis_add_domain_guidance","description":"Add a guidance hint at domain level — applies to ALL projects in the domain, not just one project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_add_guidance","description":"Add a guidance hint to a project. Use for domain knowledge not in the source text. Then call aethis_generate_and_test to regenerate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_archive_project","description":"Archive a project. Archived projects are preserved but excluded from listing. This is permanent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_archive_ruleset","description":"Archive a rule ruleset. Archived rulesets are preserved but excluded from /decide resolution. This is permanent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_cancel_generation","description":"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","write_action":true,"price_micros":0,"input_schema":null},{"name":"aethis_create_rulebook","description":"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='draft'. Populate afterwards with aethis_create_ruleset for each section, then wire up the field vocabulary and composition logic before publishing. Requires an API key.","write_action":true,"price_micros":0,"input_schema":null},{"name":"aethis_create_ruleset","description":"Create a new rule ruleset with source text and test cases (TDD). Test cases are required. After creation, call aethis_generate_and_test.","write_action":true,"price_micros":0,"input_schema":null},{"name":"aethis_decide","description":"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 e","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_discover_fields","description":"Discover input fields from the project's source text. Returns field names, types, descriptions, and completeness assessment. Run this BEFORE writing test cases to ensure field names are consistent. Call repeatedly with aethis_refine_fields to improve completeness.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_discover_rulesets","description":"List public showcase rulesets across all tenants. No authentication required. Use this for first-time discovery, demos, or whenever the user asks 'what rulesets are available?' without referencing a specific project. Returns slug, ruleset_id, name (the human-readable section title), description, field_count, rule_count for each — pass the slug or ruleset_id to aethis_decide / aethis_schema / aethi","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_discover_sections","description":"Discover the logical sections of source legislation for a domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_explain","description":"Get human-readable descriptions of the rules in a ruleset, including criteria groups, requirements, and exception paths.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_explain_failure","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_generate_and_test","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_generation_status","description":"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's progress and safe failure diagnostics. Retry only when retry_readiness is ready; an old heartbeat alone does not prove worker death. Tenant-scoped — requires an API key.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_graph","description":"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's display.sentence / display.routes / display.expr shows how that branch composes, and mermaid is a ready-to-render diagram string. Use this to visualise or explain ","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_list_domain_guidance","description":"List all active guidance hints for a domain. Returns cross-section hints that apply to all projects in the domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_list_guidance","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_list_projects","description":"List all projects in the current tenant. Returns project IDs, names, domains, and latest ruleset information.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_list_rulebooks","description":"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 'what rulebooks exist?' or to disambiguate whether several `<ns>/<x>/*` rulesets are bridged into one parent ","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_list_rulesets","description":"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 language and life in the UK'), status (active/archived), version, field count, and rule count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_next_question","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_publish","description":"Publish the latest rule ruleset. Runs tests first and refuses if they fail unless force=true. Auto-deprecates previous active ruleset.","write_action":true,"price_micros":0,"input_schema":null},{"name":"aethis_refine","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_refine_fields","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_refine_sections","description":"Add guidance to improve section discovery, then re-discover sections.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_review_project","description":"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 c","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_rulebook_schema","description":"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","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_schema","description":"Get the input fields required for an eligibility check. Returns field names, types, descriptions, and allowed values. Use this before calling aethis_decide.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_set_field_spec","description":"Store the expected field specification for a project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_set_tests","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_update_rulebook","description":"Update a Rulebook's name, description, slug, or robot_hints (assistant guidance for the conversational agent). Provide at least one field to change; omitted fields are left as-is. Requires an API key.","write_action":true,"price_micros":0,"input_schema":null},{"name":"aethis_usage","description":"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 count, limit, remaining, and reset time. `generate` (LLM rule generation) is the scarce class; browsing and status polling (`read`) are effectively unlimited-but-metered. Check this before a large authoring run — and report remaining `generate`","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_validate_fields","description":"Assert that the discovered fields match an expected field specification.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aethis_validate_sections","description":"Compare discovered sections against an expected specification.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-19T19:54:44.819Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:54:44.796Z","components":{"code":{"score":25,"max":25,"notes":["9 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"aethis-mcp","version":"0.18.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-14T15:40:07.044Z","repositoryUrl":"git+https://github.com/Aethis-ai/aethis-mcp.git","weeklyDownloads":247}],"repo":{"found":true,"owner":"Aethis-ai","repo":"aethis-mcp","archived":false,"pushedAt":"2026-09-14T15:36:48Z","stars":1,"forks":0,"openIssues":9,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/154603090?v=4","ownerCreatedAt":"2023-12-22T12:30:47Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/154603090?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":1,"forks":0,"downloadsWeek":247,"license":"MIT","lastPushAt":"2026-09-14T15:36:48.000Z","score":33}}}},"grade_history":[],"reviews":[]}