mcpbeat Sign in

ai·rete·rag MCP Server

by ai-rete-rag Your server? Claim it
answering

ai·rete·rag is answering right now. Last checked 11 min ago. 309 installs a week from pypi. It exposes 8 tools. Last commit 23 Aug 2026.

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

Installs per day peak 313 · avg 72 · -24% w/w
a month agotoday
Uptime history 44 days of history · worst day 97%
44 days agonow
100.0%
Uptime 24h
182 of 182 checks
8
Tools
read from the server
697 ms
Response time
average over 24h
309
Installs / week
npm and PyPI

ai·rete·rag does not always answer

Over the last week it answered 99.2% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 11 min ago.

run in your terminal
claude mcp add ai-rete-rag-mcp --transport http https://ai-rete-rag.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "ai-rete-rag-mcp": {
      "url": "https://ai-rete-rag.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.ai-rete-rag-mcp]
url = "https://ai-rete-rag.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "ai-rete-rag-mcp": {
      "url": "https://ai-rete-rag.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "ai-rete-rag-mcp": {
      "url": "https://ai-rete-rag.com/mcp"
    }
  }
}

This one needs environment variables set before it will start: AI_RETE_RAG_API_KEY (Your ai·rete·rag API key (create one at ai-rete-rag.com under Settings -> API Keys). Authenticates calls and ties them to your plan quota.), AI_RETE_RAG_API_URL (API base URL. Defaults to https://ai-rete-rag.com; override for local development.). The author declared them in the registry entry; get the values from the project itself.

This endpoint answered with an authorization challenge. The server is running, and it signs you in through your browser: there is no API key to paste.

This server publishes 1 more address. The block above uses the one we reach during checks; the full list is under Endpoints below, and the author may intend a particular one for your client.

Available tools 8

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

decide
decide
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. 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 `list_rules` to see which fields a domain's rules test. unstructured_text: Optional free text (an application, a case note); 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 back in causal order: a rule that matched a fact asserted by an earlier firing appears after it, with the derived facts listed under `asserted_facts`. filter_retrieval_with_rules: Pattern 01 — run the rules first and let a fired rule's `retrieval_scope` action narrow which documents the retrieval searches before it runs. extract_from_retrieval: Pattern 02 — parse the retrieved documents into facts and assert them into working memory, so rules fire on what was actually read (not just the facts you passed).
documents
list_documents
List the documents ingested into a domain's knowledge base.
import
import_policy_rules
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). 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).
ingest
ingest_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). The built-in demo domains are read-only — ingest into your own domain instead. On team plans, only the domain admin (the member who created the domain, or the subscription owner) can add documents. Args: domain: Domain to ingest into (existing or new). text: The policy or reference text. source: Optional source name shown in the document list.
put
put_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); the built-in demo domains are read-only. 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 sentence it encodes. It is stored with the rule and shown beside it in decision audits, so a verdict can be defended with the source language, not just the rule name: - name: "Decline Late Returns" salience: 20 citation: "Returns are accepted within 30 days of delivery." when: all: - {type: retail, field: days_since_delivery, op: ">", value: 30} action: verdict: "DENIED" IMPORTANT: when persisting drafts returned by `import_policy_rules`, copy each rule's `citation` through into this YAML. Dropping it silently loses the link from the decision back to the policy clause that justifies it. Args: domain: Domain to author (an owned domain, or a new name to claim). rules_yaml: The full rule set as YAML text. dry_run: Validate only, without saving.
rule
get_rule_source
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; the built-in demo domains are read-only.
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`.
usage
get_usage
Show this account's decision usage, plan, and remaining monthly quota.

Endpoints

URLTransportStateLatencyChecked
https://ai-rete-rag.com/mcp streamable-http answering 735 ms 11 min ago
https://ai-rete-rag.com/mcp/auth streamable-http sign-in 688 ms 12 min ago

Alternatives to ai·rete·rag

same job, measured the same way
Darwin RAG
by brightdotdev

Local-first RAG engine with MCP server for AI agent integration.

345 installs/wk local only
VelesDB Memory
by cyberlife-coder

Offline agentic memory: remember/recall/relate/forget/why over a fused vector+graph+columnar engine

local only
Rippr MCP
by mrslbt

Rip YouTube transcripts to disk for AI agents, RAG pipelines, and LLM workflows.

42 installs/wk local only
Ragie
by mcparmory

Ingest, manage, and retrieve documents for RAG-powered AI applications

261 installs/wk local only
FAQai
by faqai

Turn any document into a production-ready RAG dataset from Claude, Cursor, or any MCP host.

46 installs/wk local only
hubmesh
by demigoddsk

Deterministic multi-hop graph retrieval for RAG. Zero LLM calls in the query path.

83 installs/wk local only
Deeprepo
by abhishek2432001

Productivity-boosting RAG engine for codebases with multi-provider AI support and semantic search.

local only
Ragalgo
by kokogo100

Dynamic RAG Engine preventing AI hallucinations in Korean Finance and Crypto markets.

35 installs/wk local only

ai·rete·rag — questions

Answers built from our own checks of this server.

What can ai·rete·rag do?
It exposes 8 tools, read directly from the server on our last check. Among them: decide, get_rule_source, get_usage, import_policy_rules, ingest_text, list_documents and 2 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is ai·rete·rag working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 182 of 182 checks got a reply (100.0%), average response time 697 ms. The bar chart above shows every period we have measured.
How do I connect ai·rete·rag?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You sign in through your browser once and the client keeps the session: no key to copy, and it refuses anonymous clients.
How do you sign in to ai·rete·rag?
No API key is involved. ai·rete·rag answers our knock with an OAuth challenge, so you authorise it once in your browser and the client keeps the session. That is also why we see no tool list: it will not describe itself to an anonymous client, and that is the server working as intended, not a fault.
How fast is ai·rete·rag?
It answers our handshake in 697 ms on average, which is faster than 17% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use ai·rete·rag?
The pypi package ai-rete-rag-mcp was installed 309 times in the last week. Week over week that is -24%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is ai·rete·rag open source?
Yes — it is published under the MIT licence, written in Python, 0 stars on GitHub and 1 open issue. The source link is on this page, so you can read exactly what it does with your data before you connect it.