
Aethis Mcp
io.github.Aethis-ai由 GitHub 账号 Aethis-ai 发布v0.22.0更新于 Oct 24, 2026
Deterministic eligibility decisions and test-driven rule authoring via the Aethis developer API.
概览
Aethis MCP 让助手对政策规则集执行确定性的资格判定,并在内测权限下从源文本编写、测试和发布规则。
- 可以做什么
- 执行判定与查看规则:用字段值对规则集或规则手册做判定,获取所需字段结构,解释结果与失败原因,并以图或 Mermaid 图输出规则集地图
- 引导式问答:返回信息量最大的下一个问题及剩余问题的最优路径,直到可以得出结论
- 浏览规则集:发现公开目录中的规则集,并列出自己租户下的项目、规则集和规则手册
- 编写规则手册与章节:创建或更新规则手册,发现、优化并校验章节与字段词表,设置字段规格
- 生成、测试与发布:带测试用例创建规则集,运行生成,反复优化直到测试通过,添加指引,发布或取消生成
- 管理租户内容:归档项目与规则集
- 适用场景
- 适合需要把法规、政策或合同条款套用到具体输入上,并要求可重复、可审计的“符合/不符合/无法判定”结论,而不是自由文本判断的场景。也适合把政策文档转成经过测试的规则集的团队,但这需要受邀的内测编写权限。
- 运行要求
- 以 stdio 在本地运行,通常通过 npx aethis-mcp 或 aethis-cli 安装器接入。判定与公开目录工具无需密钥。编写功能需要邀请,以及已保存的 CLI 配置(AETHIS_PROFILE、XDG_CONFIG_HOME)或 AETHIS_API_KEY,并且每次调用需要 Anthropic 密钥,建议通过 AETHIS_ANTHROPIC_KEY_ENV 指定变量名。AETHIS_BASE_URL 可覆盖默认端点。需要能访问 Aethis API 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Aethis Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
aethis-mcp
MCP server for the Aethis decision engine. Compile legislation, policy, contracts, and regulation into deterministic logic — same input, same answer, every time, with a full audit trail.
[npm version] [Docs] [License: MIT]
Install · Skills · Quick start · Tools · Setup · Authoring · DSL · Troubleshooting
Install
Authoring is in private beta. Decision tools (
aethis_decide,aethis_schema,aethis_explain,aethis_next_question) are public — no key required. Authoring tools (rule generation, test refinement, publishing) require an invite. Request access at aethis.ai/developer-access.
Recommended — one command via aethis-cli:
Wires the server into claude-code, cursor, claude-desktop, or windsurf. Idempotent. Restart your editor to pick up the change. Re-run after aethis account generate rotates a key. Full options: aethis mcp install --help.
Manual install:
For Cursor / Claude Desktop / Windsurf manual config, see Setup.
Onboarding an AI coding agent end-to-end? See docs.aethis.ai/agents/onboarding — install + verify + auth + workflow patterns in one page.
Skills
After the MCP server is installed, add reusable agent workflows with aethis-skills:
The skills package provides workflows for policy-to-ruleset authoring, test/refine/publish loops, decisions with trace, and regression comparison. It calls the MCP tools in this package; it does not replace the MCP server.
Quick start
Public rulesets work without a key. Browse: aethis_discover_rulesets({}) or docs.aethis.ai.
Engine determinism + accuracy benchmarks: Aethis-ai/confidently-wrong-benchmark.
Tools
35 tools across six groups.
aethis_graph is public for a public showcase ruleset (ruleset_id) and tenant-scoped for a rulebook (rulebook_id) — it returns the ruleset-map graph ({nodes, edges, sections, stats}, each node's display.sentence/display.routes/display.expr) plus a ready-to-render mermaid diagram string. Pass include_graph_overlay: true to aethis_decide to get that same graph back with a specific decision's per-criterion status (satisfied/not_satisfied/pending) stamped onto it (graph_overlay in the response) — a "you are here" map for those inputs.
aethis_create_rulebook / aethis_update_rulebook manage a Rulebook's identity (name/domain/slug/description) and robot_hints — beat-keyed natural-language guidance for the conversational agent. Active beats: general_context, preamble, session_start, postamble, session_end, stuck. Reserved (accepted, not yet acted on): persona, conversational_style, section_transition. Composition (bridging rulesets via outcome_logic) is a separate, larger surface not covered by these two tools yet.
Workflows
Evaluate eligibility (2 calls):
Pass include_trace: true for the per-criterion evaluation trail. Pass include_explanation: true for human-readable rule descriptions.
aethis_decide accepts either ruleset_id (single ruleset, may be public) or rulebook_id (composed multi-ruleset rulebook) — the two are mutually exclusive. Rulebook decide always requires an API key (AETHIS_API_KEY); anonymous callers get HTTP 401. aethis_graph follows the same ruleset_id/rulebook_id split for the underlying map.
Conversational eligibility (next-question routing):
Returns the most informative remaining question and the optimal_path of remaining questions. Call again after each answer; the engine recomputes from the updated state. Stops when a decision is reachable.
Authoring (private beta): see Authoring.
Prompts
Setup
Decision tools work with no key. For invited authoring access, run aethis login, then install with aethis mcp install --target <client>. The installer references a saved profile so the host configuration does not contain the API key.
Claude Code
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
For authoring, add "env": { "AETHIS_PROFILE": "default", "XDG_CONFIG_HOME": "/absolute/path/to/config" }. Use your saved profile name and the absolute directory containing aethis/credentials (normally your home directory’s .config).
Cursor / Windsurf
Add to ~/.cursor/mcp.json or ~/.codeium/windsurf/mcp_config.json (same JSON shape).
Keys
AETHIS_PROFILE— non-secret saved profile name. It pins the account and endpoint used by this registration, even if the CLI’sactive_profilelater changes.XDG_CONFIG_HOME— absolute config directory containingaethis/credentials. Relative values and credentials symlinks escaping your home/config directory are refused; credential files must have no group/other permission bits (normally0600).AETHIS_API_KEY— optional deliberate process-environment override for the platform key. Prefer saved-profile references when installing; avoid putting raw keys in host config or command arguments. The host must securely supply the process environment; it may not inherit your shell environment.AETHIS_ANTHROPIC_KEY_ENV— the name of the env var holding the Anthropic key Aethis authoring tools may use (e.g.AETHIS_ANTHROPIC_KEY). The server never reads a provider key from the environment unless you set this. See Passing your Anthropic key safely.- Rotate via
aethis account generate+aethis account revoke <key_id>. Mint one key per machine for surgical revocation.
Credential precedence and restart behavior
MCP parses the CLI credentials file as YAML. AETHIS_PROFILE selects a named profile; otherwise the file’s active_profile (or default) selects it. The profile supplies both its API key and base_url, with https://api.aethis.ai as the default endpoint. With an explicit AETHIS_PROFILE, AETHIS_API_KEY and AETHIS_BASE_URL deliberately override their respective values. Without an explicit profile selector, AETHIS_API_KEY uses AETHIS_BASE_URL or the default endpoint, ignoring the implicitly active profile (including implicit anonymous). Missing or malformed explicitly selected profiles fail visibly, including when environment overrides are present. Explicit AETHIS_PROFILE=anonymous always stays unsigned. After anonymous setup, run aethis login and install again to reference the saved authoring profile, then restart the host.
A saved profile outranks old macOS Keychain entries. If no profile is configured and no explicit name is selected, MCP can use the legacy default keychain entry, then the older flat credentials.yaml file. Flat api_key/base_url files at aethis/credentials remain supported. A configured profile awaiting login stays unsigned instead of borrowing another stored key.
The server keeps its authenticated startup key and endpoint paired until restart. If it started without a key, an authenticated tool can pick up a later login for the same endpoint. A changed endpoint causes a visible refusal: restart the MCP host to load the new pair. Startup stderr reports only the credential source, never key values.
Passing your Anthropic key safely
Authoring tools (aethis_generate_and_test, aethis_refine, aethis_discover_fields, aethis_refine_fields, aethis_discover_sections, aethis_refine_sections) need an Anthropic API key per call. Three accepted forms — listed in preferred order:
The server sends a provider key to Aethis only when you configured one for Aethis. It never picks up ANTHROPIC_API_KEY (or any other variable) from your environment on its own, and an env-var name supplied in a tool call by the host model is refused unless it is the one you configured. Only Anthropic keys (sk-ant-…) are accepted; anything else is refused locally and not sent.
-
AETHIS_ANTHROPIC_KEY_ENV(recommended). In the MCP server config, put the key in a dedicated env var and name that var inAETHIS_ANTHROPIC_KEY_ENV. Tools then use it automatically. The raw value never appears in the tool call payload, so it does not land in the MCP host's session transcript on disk. -
anthropic_key_keychain(macOS). A keychain reference — either"account"(service defaults toaethis-anthropic-key) or"service:account". Store the key once withsecurity add-generic-password -U -s aethis-anthropic-key -a my-anthropic -w 'sk-ant-...', then call: -
anthropic_key(deprecated). Pass the raw key as a tool argument. Accepted for backwards compatibility, but the raw value is written verbatim to the host's session transcript JSONL on disk. If a key was ever passed this way, rotate it before relying on the safer forms.
Authoring (private beta)
Authoring requires an invite. Request access. Decision tools (above) are public.
Three-phase workflow. Phases 1–2 are for multi-section domains; skip them for single-section rules and go straight to Phase 3.
Phase 1 — Section discovery
Phase 2 — Field vocabulary
Phase 3 — Generate, test, publish
When a test carries expectations, set contract_version: 1. The optional
binding catalogue is generic authoring metadata: omit it when no binding
assertion is needed, or pass {} to assert that no review bindings exist.
The server must confirm the complete stored contract before generation begins.
aethis_create_ruleset creates a project; it does not append or replace tests
on an existing project. Use aethis_set_tests with the complete version-1
contract for a later replacement, then generate or refine that same project.
Legacy updates cannot discard stored assertions. Object keys named __proto__
are rejected in field-value and binding maps rather than silently discarded.
If generation polling times out, call aethis_generation_status({ project_id })
before retrying: use its telemetry_availability, server-authoritative
worker_lifecycle, and retry_readiness, and retry only when readiness is
ready. An old heartbeat alone is not proof that the worker died. Call
aethis_cancel_generation({ project_id, job_id, confirm_job_id }) only after
showing the observed job_id and receiving explicit confirmation to abandon
that active run. It releases the project's job ownership, but worker shutdown
may be cooperative rather than immediate; inspect the returned detail. It is a
destructive, API-key-protected mutation. The response distinguishes a new
cancelled transition from the idempotent already_cancelled result.
Guidance
Targeted hints without regenerating, plus cross-section principles for a domain:
process_type is rule_generation (default) or field_extraction.
Diagnose a failing test
[!IMPORTANT] Tests are the publish gate.
aethis_publishrefuses to publish a ruleset with a failing test. SMEs write the tests; the LLM generates the rules from source text + guidance; the platform refuses to ship rules that don't satisfy the tests. Better tests = faster convergence.
[!IMPORTANT] Anthropic key required for authoring. Configure
AETHIS_ANTHROPIC_KEY_ENVor useanthropic_key_keychain(macOS keychain ref) rather than the rawanthropic_keyargument — see Passing your Anthropic key safely. Used per-request, never stored server-side; the raw form, however, lands in the MCP host's session transcript on disk.
[!IMPORTANT] DATE fields use integer ordinals (
date.toordinal()), not ISO strings.2025-04-13=739354. Quick conversion:python3 -c "from datetime import date; print(date(2025,4,13).toordinal())".
DSL capabilities
Field types
Operators
Helpers
days_between(date_a, date_b)→Intyears_between(date_a, date_b)→Int— completed whole years between the two dates (leap-correct). Use this for age from a date-of-birth field; never derive age asdays_between(...) / 365.min(a, b, ...),max(a, b, ...)→Int- Constant arithmetic folded at authoring time (
5 * 365→1825)
Not supported
- Division between runtime field values
- Weighted scoring or probabilistic outcomes
- Lists as field values (use pre-aggregated
Int/Bool) - More than 3 outcome tiers (
eligible/not_eligible/undetermined)
Troubleshooting
Related
- aethis-cli — Python CLI; file-based authoring with YAML test cases
- aethis-examples — runnable rulesets (spacecraft, construction-CAR, consumer credit) and benchmark scenarios
- confidently-wrong-benchmark — paper, 225-scenario benchmark, LegalBench harness
Development
License
MIT
来源:README.md,提交 2b97ae1
工具
0版本历史
4- v0.22.0最新Sep 30, 2026
- v0.20.0Sep 25, 2026
- v0.19.0Sep 25, 2026
- v0.18.0Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分