ai·rete·rag

com.ai-rete-ragPublished by ai-rete-rag.comOfficial publisherv0.11.0Updated Oct 24, 2026

Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowKnowledge & Memory

Overview

AI-generated overview

A remote or local MCP server for ai·rete·rag that lets an assistant make rule-engine decisions in a domain and explain them from ingested policy documents.

What you can do
Decide cases in a domain from structured facts or free text, with verdicts from the rule engine and explanations grounded in policy documents, optionally as of an earlier date. Inspect rules and parameters: list rules with conditions and verdicts, fetch the rule set as YAML, and see which facts a domain decides on. Author rules: convert a policy document into draft rules with citations, then validate or save a rule set from YAML. Manage the knowledge base: ingest policy text, optionally dated or superseding an earlier version, and list ingested documents. Check plan and remaining monthly decision quota.
When to use it
Use it when decisions must be reproducible and auditable against written policy, such as loan, fraud or clinical-style determinations, and you want the assistant to collect the right facts, run the decision and cite the policy behind it.
Requirements
Either the hosted endpoint or a local process run with uvx or pip from the PyPI package ai-rete-rag-mcp. An API key is needed for your own account and quota, supplied as AI_RETE_RAG_API_KEY or as an Authorization bearer header; without it only shared demo domains are available. AI_RETE_RAG_API_URL overrides the API base URL. Network access to the service.
Before you install
The API key is a secret shown once and ties usage to your plan quota; keep it out of shared configs. Writing tools create or replace rule sets and ingest documents into your account, and creating a new domain claims it, subject to plan limits. Imported draft rules are LLM-assisted and should be reviewed before saving. Decisions consume monthly quota.

Installation

In SourceWeft

  1. Open ai·rete·rag in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.ai-rete-rag%2Fai-rete-rag-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "ai-rete-rag": {
      "type": "http",
      "url": "https://ai-rete-rag.com/mcp"
    }
  }
}

README

ai·rete·rag MCP Server

Use ai·rete·rag — deterministic rule-based decisions with RAG-powered explanations — from Claude Code, Claude Desktop, or any MCP client.

The verdict always comes from the Rete rule engine (auditable, reproducible); the LLM only explains why, grounded in your ingested policy documents.

Tools

ToolWhat it does
decideMake a decision in a domain — structured facts and/or free text, with optional Pattern 01 (rules scope retrieval) and Pattern 02 (retrieval into working memory). as_of reads the policy documents in force on an earlier day
get_parametersThe facts a domain's rules decide on (from your account's own rules), most decisive first — what to collect before decide
list_rulesInspect a domain's rules — conditions, verdicts, salience, overlaps
get_rule_sourceFetch a domain's rule set as editable YAML
import_policy_rulesTurn a written policy document into draft rules, each citing the sentence it encodes (nothing is saved — review, then put_rules)
put_rulesCreate or replace a domain's rule set from YAML (dry_run to validate)
ingest_textAdd policy text to a domain's knowledge base, optionally dated (effective_from, effective_until) or replacing an earlier version (supersedes)
list_documentsBrowse a domain's ingested documents
get_usageCheck your plan and remaining monthly decision quota

Prompt: decide_case

An agent workflow for deciding a case in any domain on your account, including your own: it calls get_parameters to learn which facts the rules decide on, reads the case — text, photos, document scans, voice notes or video (the agent reads the media itself; the API only receives the facts) — maps it onto those exact fields, calls decide with fact_sources recording which file each fact came from (kept in the decision's audit trail), and — while the result's missing_parameters is non-empty (facts that could still change the verdict) — asks you for them, most decisive first, and decides again. The verdict always comes from the rules.

Connect by URL (no install)

The server is also hosted, which is the only route for clients that connect to a URL and have no field for a static header — claude.ai and Claude Desktop custom connectors, in particular.

URLAuthReaches
https://ai-rete-rag.com/mcp/authSign in with Google, once, in the browserYour account — your domains, your plan quota
https://ai-rete-rag.com/mcpNone, or Authorization: Bearer ik_...Shared demo domains anonymously; your account with a key

Add https://ai-rete-rag.com/mcp/auth as a custom connector and approve the prompt. Connections are listed under Settings → Connected apps, and disconnecting one takes effect immediately.

Install

No install needed with uv — uvx ai-rete-rag-mcp fetches and runs the server on demand (see the config snippets below).

Alternatively, install it as a package:

bash
pip install ai-rete-rag-mcp         # from PyPIpip install .                       # or from source, in this repo

Configure

First create an API key: sign in at ai-rete-rag.com, open Settings → API Keys, and create a key (ik_... — shown once).

Claude Code

bash
claude mcp add ai-rete-rag -e AI_RETE_RAG_API_KEY=ik_your-key-here -- uvx ai-rete-rag-mcp

(If you installed via pip, use -- ai-rete-rag-mcp instead of -- uvx ai-rete-rag-mcp.)

Or skip the install entirely and point it at the hosted endpoint with your key:

bash
claude mcp add --transport http ai-rete-rag https://ai-rete-rag.com/mcp \  --header "Authorization: Bearer ik_your-key-here"

Claude Desktop / other clients (JSON)

json
{  "mcpServers": {    "ai-rete-rag": {      "command": "uvx",      "args": ["ai-rete-rag-mcp"],      "env": {        "AI_RETE_RAG_API_KEY": "ik_your-key-here"      }    }  }}

(With a pip install, set "command": "ai-rete-rag-mcp" and drop "args".)

Environment variables:

VariableDefaultPurpose
AI_RETE_RAG_API_KEY(none)Your API key — authenticates calls and ties them to your plan quota
AI_RETE_RAG_API_URLhttps://ai-rete-rag.comAPI base URL — point at http://localhost:8000 for local dev

Without a key you can still explore the shared demo domains (loan, fraud, clinical, …) subject to free-tier limits.

Example

"Use ai·rete·rag to decide whether this loan application should be approved: credit score 645, annual income $52k, requested amount $30k."

Claude calls decide(domain="loan", facts={...}) and returns the rule-derived verdict plus a plain-English explanation citing the underwriting policy.

Source: README.md at commit 76d3d08

Tools

9

decide

Make a decision

Make a deterministic, auditable decision in a domain. The verdict comes from the domain's rule set (Rete engine, never the LLM), so it is reproducible and compliant. The explanation is generated from the domain's ingested policy documents. Without an API key only the shared demo domains are available, and the response carries `next_step`: how to get a free key for your own rules. Pass that on to the user rather than dropping it. Args: domain: Rule-set domain, e.g. "loan", "fraud", "clinical". query: Natural-language question or decision request. facts: Structured facts for working memory, e.g. {"credit_score": 710, "annual_income": 85000}. Use `get_parameters` to see which fields a domain's rules test. Facts you read yourself from photos, document scans, voice notes or video go here, under those field names; explicit facts always win over anything extracted server-side. fact_sources: Where each fact in `facts` came from, e.g. {"monthly_income": "payslip.jpg", "claim_usd": "voice note 1"}. Always set this for facts you read from a file, photo, recording or video: it is stored in the decision's audit record so a reviewer can tell typed facts from ones read off evidence. Facts without a source are recorded as "request". as_of: Read the domain's policy documents as of this day, as YYYY-MM-DD (default: today). Use the date a case was filed to decide it under the policy in force then; the rules themselves are always the current ones. unstructured_text: Optional free text (an application, a case note, a voice-note transcript, what a photo or video shows); facts are extracted from it automatically and merged. response_mode: "verdict_only" (fastest), "verdict_with_explanation", or "full_audit" (every rule evaluation + retrieved chunks, available on every plan including the free tier). rule_firings come

Parametersas_offactsqueryrequireddomainrequiredfact_sourcesresponse_modeunstructured_textextract_from_retrievalfilter_retrieval_with_rules

list_rules

List rules

List the decision rules for one domain (or all domains). Returns each rule's conditions — either a flat AND list (field / operator / value) or a `when` condition tree (nested all/any/not) — plus its verdict, salience, and any asserted facts (`action.assert`, the facts a rule produces for other rules to consume). `edges` lists the derived rule→rule dependencies: src asserts a fact type that dst's conditions test (forward chaining). Each rule may also carry `citation` — the policy sentence it encodes — which is what lets a decision be traced back to the source clause. Also includes overlap warnings. Use this to learn which fact fields a domain expects before calling `decide`.

Parametersdomain

get_parameters

Get decision parameters

List the input parameters a domain's rules decide on — the facts to collect before calling `decide`. Derived from your account's own copy of the rules, so it covers your custom domains too. Each parameter has its `field` name (the key to use in `facts`), `kind` (number / boolean / string), the `tests` rules make on it (e.g. >= 720 — match these units and scales), the `rules` and `verdicts` it can lead to, and `max_salience`. Parameters come most decisive first: those feeding the highest-salience rules, which win when several rules fire. Also returns every verdict the domain can reach.

Parametersdomainrequired

ingest_text

Ingest policy text

Add policy/reference text to a domain's knowledge base. The text is chunked and embedded; explanations for future decisions in this domain will cite it. Creating a new domain claims it for your account (plan limits apply). Ingesting into a built-in demo domain gives your account its own copy of that demo (it counts as one of your domains); the shared demo others see is unchanged. On team plans, only the domain admin (the member who created the domain, or the subscription owner) can add documents. Documents can be dated. A decision only cites documents in force on its date, so a replaced policy is never quoted for a new decision. To publish a new version, ingest it under a new `source` with `supersedes` naming the old one: the old document stops applying on the new one's `effective_from` (today if not given), and the new one starts that day. A document can be superseded only once; to replace a successor, supersede the successor. Args: domain: Domain to ingest into (existing or new). text: The policy or reference text. source: Optional source name shown in the document list. effective_from: First day this document applies, as YYYY-MM-DD (default: always). effective_until: First day it no longer applies, as YYYY-MM-DD (default: no end). supersedes: Source name of the document this one replaces.

Parameterstextrequireddomainrequiredsourcesupersedeseffective_fromeffective_until

list_documents

List documents

List the documents ingested into a domain's knowledge base.

Parametersdomainrequired

get_rule_source

Get rule source (YAML)

Fetch a domain's rule set as editable YAML (plus the parsed rules and whether you may edit it). Use this before `put_rules` to see the current rules. For a built-in demo domain you get your own copy's rules once you have edited it, otherwise the shared demo's.

Parametersdomainrequired

put_rules

Save rules

Create or replace a domain's rule set from YAML (self-serve rule authoring). The first save to a new domain claims it for your account (plan limits apply). Saving to a built-in demo domain saves your own copy of it, seeded from the demo; the shared demo others see is unchanged. Rules are validated before saving — set dry_run=true to validate without persisting. The response reports ok/errors, the parsed rules, and any overlap warnings. YAML format — a list of rules. Flat form (conditions are AND-ed): - name: "Approve" salience: 10 conditions: - type: loan field: credit_score op: ">=" value: 700 action: verdict: "APPROVED" reason: "Credit score meets threshold" Tree form — `when:` holds nested all/any/not condition groups, and an action may assert derived facts that other rules consume (forward chaining; the rule graph derives from these automatically): - name: "Sepsis Screen" salience: 30 when: all: - {type: clinical, field: temperature_f, op: ">=", value: 101.5} - any: - {type: clinical, field: wbc_count, op: ">", value: 12.0} - {type: clinical, field: bands_pct, op: ">", value: 10} action: verdict: "URGENT_ALERT" assert: - {type: sepsis_flag, fields: {severity: high}} - name: "Escalate" salience: 40 when: all: - {type: sepsis_flag, field: severity, op: "==", value: high} - {type: clinical, field: age, op: ">=", value: 65} action: verdict: "ADMIT_ICU" Use either `conditions:` or `when:` per rule, never both. `not` passes when the inner condition does not hold (including when the field is absent). Produce/consume cycles between rules are rejected at validation. An action may also carry `retrieval_scope: { <key>: <value> }` to narrow which documents retrieval searches (Pattern 01). A rule may also carry `citation:` — the policy

Parametersdomainrequireddry_runrules_yamlrequired

import_policy_rules

Draft rules from a policy

Convert a written policy document into DRAFT decision rules (LLM-assisted). Returns validated draft rules (when/action, including chained asserts where the policy stages its determinations), derived rule→rule edges, and overlap warnings. Each returned rule carries a `citation` field holding the policy sentence it encodes (also summarized in the top-level `citations` map). Coverage runs the other way too: `uncovered_sentences` lists policy sentences no rule's citation points back to (out of `policy_sentence_count`), and `unverified_citations` names rules whose quote is missing or not found verbatim in the policy. Show both to the user: an uncovered sentence may need a rule; an unverified one may be a paraphrase that misstates the policy. `background_sentences` is the subset of uncovered sentences with no obligation language (definitions, preamble); lead with the others, but mention these too, since the split is a keyword heuristic. NOTHING IS SAVED: review the drafts (and show them to the user), then persist explicitly with `put_rules` — validate first with dry_run=true, and keep each rule's `citation` in the YAML you save so the audit trail back to the policy survives. Args: domain: Domain the rules are drafted for (an owned domain or a new name). policy_text: The policy document text (max ~50k characters).

Parametersdomainrequiredpolicy_textrequired

get_usage

Check usage and quota

Show this account's decision usage, plan, and remaining monthly quota.

Takes no parameters.

Version history

5
  1. v0.11.0LatestOct 17, 2026
  2. v0.10.0Oct 10, 2026
  3. v0.9.0Oct 3, 2026
  4. v0.8.0Sep 29, 2026
  5. v0.7.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Ai-Rete-Rag integrations