Ruleverdict

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 4, 2026

Deterministic rule-engine decisions with document-grounded explanations, rules and usage tools.

VerifiedSTDIODesktop only

Overview

Ruleverdict's local MCP server; no sign-in required; STDIO; 9 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

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

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

ruleverdict

Ask a rule engine, not a guess. ruleverdict is a small client for the ai-rete-rag service, which decides cases with deterministic rules instead of free-form model output: you pass structured facts and/or free text for a domain, and the verdict comes from that domain's rule set, explained with the documents the rules rest on.

Alongside deciding, it covers the full life of a domain: see which facts the rules need, inspect the rules themselves, pull them down as editable YAML, draft new rules from a written policy (each draft cites the sentence it encodes, and nothing is saved until you say so), publish a replacement rule set, feed policy text into the knowledge base, and watch the monthly decision quota. Responses come back exactly as the service returned them: nothing is trimmed, renamed or summarised on the way through.

Configuration

Two environment variables control the client:

  • AI_RETE_RAG_API_KEY (optional) — when set, it is sent on every request as Authorization: Bearer <key>. Leaving it unset is not an error: shared demo domains work keyless, and enforcement problems such as a missing domain claim or an exhausted quota surface from the API as errors rather than failing locally.
  • AI_RETE_RAG_API_URL (optional) — API base URL. Defaults to https://ai-rete-rag.com (see "Endpoint provenance" below).

Tools

  • decide — make a decision in a domain from structured facts and/or free text; the verdict comes from the rule engine, with a document-grounded explanation. Optional: as_of (a date the decision is evaluated at), fact_sources (where each fact came from), and the retrieval-mode flags pattern_01 (Pattern 01: rules-scope retrieval) and pattern_02 (Pattern 02: retrieval into working memory). Typical call: decide(domain="loan", facts={...}).
  • get_parameters — the facts a domain's rules decide on, most decisive first: what to collect before calling decide.
  • list_rules — inspect a domain's rules: conditions, verdicts, salience and overlaps.
  • get_rule_source — fetch a domain's rule set as editable YAML.
  • import_policy_rules — turn a written policy document into draft rules, each citing the sentence it encodes. Nothing is saved.
  • put_rules — create or replace a domain's rule set from YAML; pass dry_run to validate without saving.
  • ingest_text — add policy text to a domain's knowledge base, optionally with effective_from / effective_until dates or a supersedes pointer to the version it replaces.
  • list_documents — browse a domain's ingested documents.
  • get_usage — check your plan and remaining monthly decision quota.

Unset optional arguments are omitted from requests entirely. An upstream non-2xx reply fails with ai-rete-rag error: HTTP <status> and an unreachable API with ai-rete-rag unreachable.

Endpoint provenance

The original project's README pins the nine tools, the worked decide example, the Pattern 01 / Pattern 02 modes, both environment variable names, the optional-key behaviour, and the dry-run / nothing-saved workflow semantics — but not the request paths. Those are reconstructions, labelled as such:

  • POST <base>/api/decide with the arguments as the JSON body (used by decide).
  • GET <base>/api/domains/{domain}/parameters (used by get_parameters).
  • GET <base>/api/domains/{domain}/rules (used by list_rules).
  • GET <base>/api/domains/{domain}/rules/source (used by get_rule_source).
  • POST <base>/api/domains/{domain}/rules/import with body {"text": "..."} (used by import_policy_rules).
  • PUT <base>/api/domains/{domain}/rules with body {"rules": "...", "dry_run": ...} (used by put_rules).
  • POST <base>/api/domains/{domain}/documents with body {"text": "...", ...} (used by ingest_text).
  • GET <base>/api/domains/{domain}/documents (used by list_documents).
  • GET <base>/api/usage (used by get_usage).

Domain path segments are URL-encoded.

CLI

Each tool is a subcommand taking one JSON argument string:

bash
npx @reneturcios/ruleverdict decide '{"domain":"loan","facts":{"income":85000}}'npx @reneturcios/ruleverdict get_parameters '{"domain":"loan"}'npx @reneturcios/ruleverdict list_rules '{"domain":"loan"}'npx @reneturcios/ruleverdict get_rule_source '{"domain":"loan"}'npx @reneturcios/ruleverdict import_policy_rules '{"domain":"loan","text":"Loans need verified income."}'npx @reneturcios/ruleverdict put_rules '{"domain":"loan","rules":"rules: []","dry_run":true}'npx @reneturcios/ruleverdict ingest_text '{"domain":"loan","text":"Policy text"}'npx @reneturcios/ruleverdict list_documents '{"domain":"loan"}'npx @reneturcios/ruleverdict get_usage '{}'npx @reneturcios/ruleverdict --version

Output is the tool's result text (the upstream body on success). Exit codes: 0 on success, 1 on a runtime error, 2 on a usage error.

MCP server

bash
npx -y @reneturcios/ruleverdict mcp

MCP client config (the key is optional; provide it through the client's environment when you have one):

json
{  "mcpServers": {    "ruleverdict": {      "command": "npx",      "args": ["-y", "@reneturcios/ruleverdict", "mcp"],      "env": {        "AI_RETE_RAG_API_KEY": "<your key>"      }    }  }}

Docker

bash
docker run -i ghcr.io/cloudcorprecords/ruleverdictdocker run --rm ghcr.io/cloudcorprecords/ruleverdict get_usage '{}'

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # tsx --test test/*.test.ts (fake fetch only, no network)npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

Source: README.md at commit 509aebb

Tools

9

decide

Make a decision in a domain from structured facts and/or free text; the verdict comes from the rule engine, with a document-grounded explanation.

Parameterstextas_offactsdomainrequiredpattern_01pattern_02fact_sources

get_parameters

The facts a domain's rules decide on, most decisive first — what to collect before decide.

Parametersdomainrequired

list_rules

Inspect a domain's rules — conditions, verdicts, salience, overlaps.

Parametersdomainrequired

get_rule_source

Fetch a domain's rule set as editable YAML.

Parametersdomainrequired

import_policy_rules

Turn a written policy document into draft rules, each citing the sentence it encodes. Nothing is saved.

Parameterstextrequireddomainrequired

put_rules

Create or replace a domain's rule set from YAML (dry_run to validate).

Parametersrulesrequireddomainrequireddry_run

ingest_text

Add policy text to a domain's knowledge base, optionally dated or replacing an earlier version.

Parameterstextrequireddomainrequiredsupersedeseffective_fromeffective_until

list_documents

Browse a domain's ingested documents.

Parametersdomainrequired

get_usage

Check your plan and remaining monthly decision quota.

Takes no parameters.

Version history

1
  1. v0.1.0LatestNov 4, 2026

Score

90% 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 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts