io.github.Aethis-ai/aethis-mcp
NPM · AETHIS-MCP · SCANNED SEP 21
Deterministic eligibility decisions and test-driven rule authoring via the Aethis developer API.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 97 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to Aethis-ai/aethis-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 6 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability80
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6867 tokens (~196/item across 35 items; 35 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management60
- Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 36 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.Aethis-ai/aethis-mcp server?
io.github.Aethis-ai/aethis-mcp runs locally as an npm package, launched with npx -y aethis-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · aethis-mcp
claude mcp add aethis-ai-aethis-mcp -- npx -y aethis-mcp
{
"mcpServers": {
"aethis-ai-aethis-mcp": {
"command": "npx",
"args": [
"-y",
"aethis-mcp"
]
}
}
} {
"servers": {
"aethis-ai-aethis-mcp": {
"command": "npx",
"args": [
"-y",
"aethis-mcp"
]
}
}
} codex mcp add aethis-ai-aethis-mcp -- npx -y aethis-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"aethis-ai-aethis-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"aethis-mcp"
],
"enabled": true
}
}
} openclaw mcp add aethis-ai-aethis-mcp --command npx --arg -y --arg aethis-mcp
mcp_servers:
aethis-ai-aethis-mcp:
command: "npx"
args: ["-y", "aethis-mcp"] {
"McpServers": {
"aethis-ai-aethis-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"aethis-mcp"
]
}
}
} assistant mcp add aethis-ai-aethis-mcp -t stdio -c npx -a -y aethis-mcp
{
"mcpServers": {
"aethis-ai-aethis-mcp": {
"command": "npx",
"args": [
"-y",
"aethis-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- Package version: 0.17.4 → 0.18.0 functional
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 +4
- Stability: unverified → 0.27 ▲ functional
- 3 Sept 26 81
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed npm/aethis-mcp@0.18.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | Aethis-ai/aethis-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/Aethis-ai/aethis-mcp/.github/workflows/release.yml@refs/tags/v0.18.0 |
| Rekor log index | 2832435290 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:e8cd07975962c62401c34241efcafd50dd4ea97de49aee84656716bc7fcd5e00c85993386dd73fa8c6fc481e91b959dfed12e3084505f46648987b587 |
Background: How many MCP packages publish verified provenance →
Dependencies 97 packages
| Packages resolved | 97 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
aethis_add_domain_guidance ~234
Add a guidance hint at domain level — applies to ALL projects in the domain, not just one project. Use for cross-section principles: solicitor navigation, discretion model, raw-facts principle. These hints are retrieved automatically during generation for any project in the domain. Use adherence='exact' with process_type='section_discovery' to specify exactly which sections the SME wants — the LLM will follow them precisely.
| Name | Type | Req | Description |
|---|---|---|---|
| adherence | string | – | How strictly the LLM must follow this hint. 'exact' = must follow, produce nothing beyond what is specified (use for SME-defined section lists); 'guided' = strong preference, may adapt if source text… |
| domain | string | yes | Domain identifier (e.g. 'uk_citizenship') |
| guidance_text | string | yes | The guidance hint text |
| notes | string | – | SME commentary or legislation provenance. Never sent to LLM. |
| process_type | string | – | Which authoring phase this hint targets — rule_generation (default), field_extraction, or section_discovery |
No output schema declared.
No examples provided.
aethis_add_guidance ~168
Add a guidance hint to a project. Use for domain knowledge not in the source text. Then call aethis_generate_and_test to regenerate.
| Name | Type | Req | Description |
|---|---|---|---|
| adherence | string | – | How strictly the LLM must follow this hint. 'exact' = must follow precisely, produce nothing beyond what is specified; 'guided' = strong preference, may adapt if source text requires (default); 'loos… |
| guidance_text | string | yes | Domain knowledge or correction not present in the source text |
| process_type | string | – | Which authoring phase this hint targets. Use 'field_extraction' for field design principles (e.g. raw-facts principle, solicitor navigation). Defaults to 'rule_generation'. |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_archive_project ~41
Archive a project. Archived projects are preserved but excluded from listing. This is permanent.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | The project ID to archive |
No output schema declared.
No examples provided.
aethis_archive_ruleset ~50
Archive a rule ruleset. Archived rulesets are preserved but excluded from /decide resolution. This is permanent.
| Name | Type | Req | Description |
|---|---|---|---|
| ruleset_id | string | yes | The ruleset ID to archive |
No output schema declared.
No examples provided.
aethis_cancel_generation ~167
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_job_id | string | yes | Repeat job_id to bind the cancellation target; host/user approval is a separate requirement |
| job_id | string | yes | The exact job ID returned by aethis_generation_status |
| project_id | string | yes | The project ID containing the observed generation job |
No output schema declared.
No examples provided.
aethis_create_rulebook ~269
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional description |
| domain | string | – | Domain hint, lower-snake (e.g. 'uk_fsm') |
| name | string | yes | Human-readable name for the rulebook (e.g. 'UK FSM') |
| robot_hints | object | – | Assistant guidance for the conversational agent, keyed by conversational beat. Natural language only — no rule syntax, no field keys. Active beats: general_context, preamble, session_start, postamble… |
| slug | string | – | Stable human-readable alias (e.g. 'aethis/uk-fsm'). Globally unique when set; recommended for any rulebook referenced from outside this session. |
No output schema declared.
No examples provided.
aethis_create_ruleset ~140
Create a new rule ruleset with source text and test cases (TDD). Test cases are required. After creation, call aethis_generate_and_test.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Domain hint (e.g., 'uk_immigration') |
| name | string | yes | Human-readable name for the rule ruleset |
| section_id | string | yes | Unique section identifier (e.g., 'flight_readiness') |
| source_text | string | yes | The source legislation, policy, or specification text |
| test_cases | array | yes | Test cases: [{name, field_values, expected_outcome}]. At least 1 required. |
No output schema declared.
No examples provided.
aethis_decide ~364
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.
| Name | Type | Req | Description |
|---|---|---|---|
| field_values | object | yes | Input field values (see aethis_schema for required fields) |
| include_explanation | boolean | – | Include human-readable rule explanations with source citations |
| include_graph_overlay | boolean | – | Stamp this decision's per-criterion outcome (satisfied/not_satisfied/pending) onto the ruleset-map graph and return it as graph_overlay — the same {nodes, edges, sections, stats} shape as aethis_grap… |
| include_trace | boolean | – | Include the full evaluation trace showing how each rule was evaluated |
| rulebook_id | string | – | The ID or slug of a composed rulebook (e.g. `aethis/uk-fsm`). Mutually exclusive with ruleset_id. Requires an API key — anonymous callers get HTTP 401. |
| ruleset_id | string | – | The ID or slug of a single published ruleset. Mutually exclusive with rulebook_id. |
No output schema declared.
No examples provided.
aethis_discover_fields ~275
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.
| Name | Type | Req | Description |
|---|---|---|---|
| anthropic_key | string | – | Your Anthropic API key. [sensitive — do not echo or log] Deprecated in favour of anthropic_key_env / anthropic_key_keychain: when passed as a tool argument, the raw value is written verbatim to the h… |
| anthropic_key_env | string | – | Preferred. Name of an env var (set in your MCP client config) holding the Anthropic API key. The raw value never appears in the tool call, so it does not land in the session transcript. |
| anthropic_key_keychain | string | – | Preferred on macOS. Keychain reference: either 'service:account' or just 'account' (service defaults to 'aethis-anthropic-key'). The server reads it via the `security` command at call time. |
| openai_key | string | – | Deprecated — use anthropic_key_env or anthropic_key_keychain. [sensitive — do not echo or log] Accepted for backwards compatibility. |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_discover_rulesets ~156
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 / aethis_explain to interact with one. Distinct from aethis_list_rulesets, which is tenant-scoped.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum rulesets to return (default 20, max 50). |
| offset | integer | – | Pagination offset (default 0). |
No output schema declared.
No examples provided.
aethis_discover_sections ~332
Discover the logical sections of source legislation for a domain. Provide the raw text of your source documents (legislation, guidance notes, form instructions). The service analyses the content and identifies which sections should be authored as separate rule rulesets. Run BEFORE creating projects — you need to know the sections before you can create one. Call aethis_refine_sections if sections are missing or incorrectly split.
| Name | Type | Req | Description |
|---|---|---|---|
| anthropic_key | string | – | Your Anthropic API key. [sensitive — do not echo or log] Deprecated in favour of anthropic_key_env / anthropic_key_keychain: when passed as a tool argument, the raw value is written verbatim to the h… |
| anthropic_key_env | string | – | Preferred. Name of an env var (set in your MCP client config) holding the Anthropic API key. The raw value never appears in the tool call, so it does not land in the session transcript. |
| anthropic_key_keychain | string | – | Preferred on macOS. Keychain reference: either 'service:account' or just 'account' (service defaults to 'aethis-anthropic-key'). The server reads it via the `security` command at call time. |
| domain | string | yes | Domain identifier, e.g. 'uk_citizenship' |
| openai_key | string | – | Deprecated — use anthropic_key_env or anthropic_key_keychain. [sensitive — do not echo or log] Accepted for backwards compatibility. |
| sources | array | yes | Source documents to analyse. Provide the actual text content. |
No output schema declared.
No examples provided.
aethis_explain ~50
Get human-readable descriptions of the rules in a ruleset, including criteria groups, requirements, and exception paths.
| Name | Type | Req | Description |
|---|---|---|---|
| ruleset_id | string | yes | The ID of the published rule ruleset |
No output schema declared.
No examples provided.
aethis_explain_failure ~132
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.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_outcome | string | yes | The outcome you expected from this input |
| field_values | object | yes | The test input values that produced the unexpected outcome |
| ruleset_id | string | yes | The ID of the rule ruleset to diagnose |
| test_name | string | – | Name of the failing test case (included in the diagnosis for context) |
No output schema declared.
No examples provided.
aethis_generate_and_test ~298
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.
| Name | Type | Req | Description |
|---|---|---|---|
| anthropic_key | string | – | Your Anthropic API key. [sensitive — do not echo or log] Deprecated in favour of anthropic_key_env / anthropic_key_keychain: when passed as a tool argument, the raw value is written verbatim to the h… |
| anthropic_key_env | string | – | Preferred. Name of an env var (set in your MCP client config) holding the Anthropic API key. The raw value never appears in the tool call, so it does not land in the session transcript. |
| anthropic_key_keychain | string | – | Preferred on macOS. Keychain reference: either 'service:account' or just 'account' (service defaults to 'aethis-anthropic-key'). The server reads it via the `security` command at call time. |
| openai_key | string | – | Deprecated — use anthropic_key_env or anthropic_key_keychain. [sensitive — do not echo or log] Accepted for backwards compatibility. |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_generation_status ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | The project ID whose generation status to inspect |
No output schema declared.
No examples provided.
aethis_graph ~233
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 a ruleset's/rulebook's structure before or instead of aethis_explain. Ruleset graphs may be public (no auth for public showcase rulesets); rulebook graphs always require an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| rulebook_id | string | – | The slug (e.g. `aethis/uk-fsm`) or opaque id (`rb_*`) of a composed rulebook. Mutually exclusive with ruleset_id. Requires an API key — anonymous callers get HTTP 401. |
| ruleset_id | string | – | The ID or slug of a single published ruleset. Mutually exclusive with rulebook_id. |
No output schema declared.
No examples provided.
aethis_list_domain_guidance ~54
List all active guidance hints for a domain. Returns cross-section hints that apply to all projects in the domain.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain identifier (e.g. 'uk_citizenship') |
No output schema declared.
No examples provided.
aethis_list_guidance ~54
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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_list_projects ~33
List all projects in the current tenant. Returns project IDs, names, domains, and latest ruleset information.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
aethis_list_rulebooks ~154
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 rulebook. Tenant-scoped — requires an API key. Pass a returned rulebook_id or slug to aethis_decide (rulebook_id arg) or aethis_rulebook_schema.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
aethis_list_rulesets ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_next_question ~109
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.
| Name | Type | Req | Description |
|---|---|---|---|
| field_values | object | yes | Answers collected so far (empty dict for first question) |
| ruleset_id | string | yes | The ID of the published rule ruleset |
No output schema declared.
No examples provided.
aethis_publish ~177
Publish the latest rule ruleset. Runs tests first and refuses if they fail unless force=true. Auto-deprecates previous active ruleset.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Publish even if tests are not all passing |
| label | string | – | Human-readable label for this ruleset version, e.g. 'v5 — raw facts, date arithmetic'. Stored on the ruleset and shown in aethis_list_rulesets. |
| name | string | – | Override the human-readable section name for this ruleset. When omitted, the ruleset keeps the name set at generation time (a titlecase of section_id, e.g. 'english_language' → 'English Language'). S… |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_refine ~317
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.
| Name | Type | Req | Description |
|---|---|---|---|
| anthropic_key | string | – | Your Anthropic API key. [sensitive — do not echo or log] Deprecated in favour of anthropic_key_env / anthropic_key_keychain: when passed as a tool argument, the raw value is written verbatim to the h… |
| anthropic_key_env | string | – | Preferred. Name of an env var (set in your MCP client config) holding the Anthropic API key. The raw value never appears in the tool call, so it does not land in the session transcript. |
| anthropic_key_keychain | string | – | Preferred on macOS. Keychain reference: either 'service:account' or just 'account' (service defaults to 'aethis-anthropic-key'). The server reads it via the `security` command at call time. |
| feedback | string | – | Optional correction or domain knowledge to add before regenerating |
| openai_key | string | – | Deprecated — use anthropic_key_env or anthropic_key_keychain. [sensitive — do not echo or log] Accepted for backwards compatibility. |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_refine_fields ~294
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.
| Name | Type | Req | Description |
|---|---|---|---|
| anthropic_key | string | – | Your Anthropic API key. [sensitive — do not echo or log] Deprecated in favour of anthropic_key_env / anthropic_key_keychain: when passed as a tool argument, the raw value is written verbatim to the h… |
| anthropic_key_env | string | – | Preferred. Name of an env var (set in your MCP client config) holding the Anthropic API key. The raw value never appears in the tool call, so it does not land in the session transcript. |
| anthropic_key_keychain | string | – | Preferred on macOS. Keychain reference: either 'service:account' or just 'account' (service defaults to 'aethis-anthropic-key'). The server reads it via the `security` command at call time. |
| feedback | string | yes | Guidance about missing or incorrect fields (e.g., 'Section 7 implies a criminal record check') |
| openai_key | string | – | Deprecated — use anthropic_key_env or anthropic_key_keychain. [sensitive — do not echo or log] Accepted for backwards compatibility. |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_refine_sections ~350
Add guidance to improve section discovery, then re-discover sections. Use when sections are missing, incorrectly split, or named differently than expected. Saves the feedback as a domain-level guidance hint and immediately re-runs discovery so you can see the effect. Repeat until the section list matches your expectations.
| Name | Type | Req | Description |
|---|---|---|---|
| anthropic_key | string | – | Your Anthropic API key. [sensitive — do not echo or log] Deprecated in favour of anthropic_key_env / anthropic_key_keychain: when passed as a tool argument, the raw value is written verbatim to the h… |
| anthropic_key_env | string | – | Preferred. Name of an env var (set in your MCP client config) holding the Anthropic API key. The raw value never appears in the tool call, so it does not land in the session transcript. |
| anthropic_key_keychain | string | – | Preferred on macOS. Keychain reference: either 'service:account' or just 'account' (service defaults to 'aethis-anthropic-key'). The server reads it via the `security` command at call time. |
| domain | string | yes | Domain identifier, e.g. 'uk_citizenship' |
| feedback | string | yes | What was wrong and how to fix it, e.g. 'The english language and life in the UK test should be separate sections' |
| openai_key | string | – | Deprecated — use anthropic_key_env or anthropic_key_keychain. [sensitive — do not echo or log] Accepted for backwards compatibility. |
| sources | array | yes | The same source documents used in the initial aethis_discover_sections call |
No output schema declared.
No examples provided.
aethis_review_project ~375
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.
| Name | Type | Req | Description |
|---|---|---|---|
| anthropic_key | string | – | Your Anthropic API key. [sensitive — do not echo or log] Deprecated in favour of anthropic_key_env / anthropic_key_keychain: when passed as a tool argument, the raw value is written verbatim to the h… |
| anthropic_key_env | string | – | Preferred. Name of an env var (set in your MCP client config) holding the Anthropic API key. The raw value never appears in the tool call, so it does not land in the session transcript. |
| anthropic_key_keychain | string | – | Preferred on macOS. Keychain reference: either 'service:account' or just 'account' (service defaults to 'aethis-anthropic-key'). The server reads it via the `security` command at call time. |
| coach | boolean | – | Add an opt-in LLM-synthesised coaching narrative on top of the deterministic rubric. Requires an Anthropic key (anthropic_key_env / anthropic_key_keychain / anthropic_key). Off by default — the deter… |
| openai_key | string | – | Deprecated — use anthropic_key_env or anthropic_key_keychain. [sensitive — do not echo or log] Accepted for backwards compatibility. |
| project_id | string | yes | The project ID to review |
No output schema declared.
No examples provided.
aethis_rulebook_schema ~172
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_*`).
| Name | Type | Req | Description |
|---|---|---|---|
| rulebook_id | string | yes | The slug (e.g. `aethis/uk-fsm`) or opaque id (`rb_*`) of the rulebook |
No output schema declared.
No examples provided.
aethis_schema ~59
Get the input fields required for an eligibility check. Returns field names, types, descriptions, and allowed values. Use this before calling aethis_decide.
| Name | Type | Req | Description |
|---|---|---|---|
| ruleset_id | string | yes | The ID of the published rule ruleset |
No output schema declared.
No examples provided.
aethis_set_field_spec ~128
Store the expected field specification for a project. Once set, every aethis_discover_fields call automatically validates discovered fields against this spec. Mismatches (missing fields, wrong types, wrong enum values) generate guidance hints automatically and appear in the validation_result block. Call this BEFORE running aethis_discover_fields when the SME has already defined the field vocabulary. The spec is persisted on the project and survives across sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_fields | array | yes | The fields the SME expects to be discovered for this project |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_set_tests ~120
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 | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | Existing project ID whose complete test suite will be replaced |
| test_cases | array | yes | The complete authoritative reviewed suite (1-100 cases); this replaces existing tests |
No output schema declared.
No examples provided.
aethis_update_rulebook ~215
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | New description |
| name | string | – | New human-readable name |
| robot_hints | object | – | Assistant guidance for the conversational agent, keyed by conversational beat. Natural language only — no rule syntax, no field keys. Active beats: general_context, preamble, session_start, postamble… |
| rulebook_id | string | yes | The slug (e.g. `aethis/uk-fsm`) or opaque id (`rb_*`) of the rulebook to update |
| slug | string | – | New stable alias |
No output schema declared.
No examples provided.
aethis_usage ~122
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` budget to the user — so a 429 is never the first signal. Tenant-scoped — requires an API key.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
aethis_validate_fields ~138
Assert that the discovered fields match an expected field specification. Returns a structured diff: missing fields, type mismatches, enum value mismatches, and extra fields. all_match=true only when there are no missing fields and no type or enum mismatches. Extra discovered fields do not affect all_match. Run after aethis_discover_fields to verify field coverage before writing test cases. If all_match=false, call aethis_refine_fields with guidance about the missing or incorrect fields.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_fields | array | yes | The fields you expect to find in the discovered field set |
| project_id | string | yes | The project ID |
No output schema declared.
No examples provided.
aethis_validate_sections ~152
Compare discovered sections against an expected specification. Returns missing sections (expected but not found) and extra sections (found but not expected). Call after aethis_discover_sections to check whether the LLM found all sections the SME expects. If sections are missing, call aethis_add_domain_guidance with adherence='exact' to enforce them.
| Name | Type | Req | Description |
|---|---|---|---|
| discovered_sections | array | yes | Section names/IDs returned by aethis_discover_sections |
| domain | string | yes | Domain identifier, e.g. 'uk_citizenship' |
| expected_sections | array | yes | Section names/IDs the SME expects (snake_case, e.g. ['english_language', 'residence', 'good_character']) |
No output schema declared.
No examples provided.
What is the io.github.Aethis-ai/aethis-mcp server?
io.github.Aethis-ai/aethis-mcp is listed in the public MCP registry as io.github.Aethis-ai/aethis-mcp. Deterministic eligibility decisions and test-driven rule authoring via the Aethis developer API. This page covers its npm package (aethis-mcp).
Is the io.github.Aethis-ai/aethis-mcp server safe to use?
io.github.Aethis-ai/aethis-mcp scores 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.Aethis-ai/aethis-mcp server expose?
io.github.Aethis-ai/aethis-mcp exposes 35 tools: aethis_schema, aethis_decide, aethis_next_question, aethis_graph, aethis_explain, and 30 more. Their descriptions and schemas cost roughly 6,115 tokens of context every time the server is loaded.
Is the io.github.Aethis-ai/aethis-mcp server still maintained?
io.github.Aethis-ai/aethis-mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.Aethis-ai/aethis-mcp server under?
io.github.Aethis-ai/aethis-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.