{
  "data": {
    "tool": {
      "category": "inference",
      "endpoint": "https://ai-rete-rag.com/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ai-rete-rag-mcp.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/ai-rete-rag-mcp.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 3359,
          "counts": {
            "error": 0,
            "note": 5,
            "warn": 7
          },
          "findings": [
            {
              "rule": "TC07",
              "severity": "warn",
              "tool": "decide",
              "message": "the description is about 651 tokens",
              "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
            },
            {
              "rule": "TC07",
              "severity": "warn",
              "tool": "put_rules",
              "message": "the description is about 707 tokens",
              "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_parameters",
              "message": "its one parameter, domain, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_rule_source",
              "message": "its one parameter, domain, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "list_documents",
              "message": "its one parameter, domain, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "list_rules",
              "message": "its one parameter, domain, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC18",
              "severity": "warn",
              "tool": "import_policy_rules",
              "message": "readOnlyHint is true but the name says \"import\"",
              "fix": "If it changes anything, readOnlyHint must be false."
            },
            {
              "rule": "TC11",
              "severity": "note",
              "tool": "decide",
              "message": "parameters are documented in the description but not in the schema: domain, extract_from_retrieval, fact_sources, facts, filter_retrieval_with_rules, query and 2 more",
              "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
            },
            {
              "rule": "TC11",
              "severity": "note",
              "tool": "import_policy_rules",
              "message": "parameters are documented in the description but not in the schema: domain, policy_text",
              "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
            },
            {
              "rule": "TC11",
              "severity": "note",
              "tool": "ingest_text",
              "message": "parameters are documented in the description but not in the schema: domain, source, text",
              "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
            },
            {
              "rule": "TC11",
              "severity": "note",
              "tool": "put_rules",
              "message": "parameters are documented in the description but not in the schema: domain, dry_run, rules_yaml",
              "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
            },
            {
              "rule": "TC29",
              "severity": "note",
              "message": "about 289 tokens (8% of the definitions) are titles that repeat property or function names",
              "fix": "Strip \"title\" keys that only restate a name before listing tools."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:21:57Z",
        "count": 9,
        "schemaTokens": 3359,
        "status": "ok",
        "tools": [
          {
            "name": "decide",
            "title": "Make a decision",
            "description": "Make a deterministic, auditable decision in a domain.\n\nThe verdict comes from the domain's rule set (Rete engine, never the LLM),\nso it is reproducible and compliant. The explanation is generated from the\ndomain's ingested policy documents.\n\nWithout an API key only the shared demo domains are available, and the\nresponse carries `next_step`: how to get a free key for your own rules.\nPass that on to the user rather than dropping it.\n\nArgs:\n    domain: Rule-set domain, e.g. \"loan\", \"fraud\", \"clinical\".\n    query: Natural-language question or decision request.\n    facts: Structured facts for working memory, e.g.\n        {\"credit_score\": 710, \"annual_income\": 85000}. Use\n        `get_parameters` to see which fields a domain's rules test.\n        Facts you read yourself from photos, document scans, voice notes\n        or video go here, under those field names; explicit facts always\n        win over anything extracted server-side.\n    fact_sources: Where each fact in `facts` came from, e.g.\n        {\"monthly_income\": \"payslip.jpg\", \"claim_usd\": \"voice note 1\"}.\n        Always set this for facts you read from a file, photo, recording\n        or video: it is stored in the decision's audit record so a\n        reviewer can tell typed facts from ones read off evidence. Facts\n        without a source are recorded as \"request\".\n    unstructured_text: Optional free text (an application, a case note,\n        a voice-note transcript, what a photo or video shows); facts are\n        extracted from it automatically and merged.\n    response_mode: \"verdict_only\" (fastest), \"verdict_with_explanation\",\n        or \"full_audit\" (every rule evaluation + retrieved chunks, available\n        on every plan including the free tier).\n        rule_firings come back in causal order: a rule that matched a fact\n        asserted by an earlier firing appears after it, with the derived\n        facts listed under `asserted_facts`.\n    filter_retrieval_with_rules: Pattern 01 — run the rules first and let a\n        fired rule's `retrieval_scope` action narrow which documents the\n        retrieval searches before it runs.\n    extract_from_retrieval: Pattern 02 — parse the retrieved documents into\n        facts and assert them into working memory, so rules fire on what was\n        actually read (not just the facts you passed).\n\nThe result's `missing_parameters` lists rule inputs that were not\nsupplied but could still change the verdict, most decisive first. When it\nis non-empty, tell the user the verdict is provisional and ask for those\nfacts; when it is empty, more facts cannot change the verdict.\n",
            "inputSchema": {
              "properties": {
                "domain": {
                  "title": "Domain",
                  "type": "string"
                },
                "extract_from_retrieval": {
                  "default": false,
                  "title": "Extract From Retrieval",
                  "type": "boolean"
                },
                "fact_sources": {
                  "anyOf": [
                    {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Fact Sources"
                },
                "facts": {
                  "anyOf": [
                    {
                      "additionalProperties": true,
                      "type": "object"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Facts"
                },
                "filter_retrieval_with_rules": {
                  "default": false,
                  "title": "Filter Retrieval With Rules",
                  "type": "boolean"
                },
                "query": {
                  "title": "Query",
                  "type": "string"
                },
                "response_mode": {
                  "default": "verdict_with_explanation",
                  "enum": [
                    "verdict_only",
                    "verdict_with_explanation",
                    "full_audit"
                  ],
                  "title": "Response Mode",
                  "type": "string"
                },
                "unstructured_text": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Unstructured Text"
                }
              },
              "required": [
                "domain",
                "query"
              ],
              "title": "decideArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "decideOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "readOnlyHint": false
            }
          },
          {
            "name": "list_rules",
            "title": "List rules",
            "description": "List the decision rules for one domain (or all domains).\n\nReturns each rule's conditions — either a flat AND list (field / operator /\nvalue) or a `when` condition tree (nested all/any/not) — plus its verdict,\nsalience, and any asserted facts (`action.assert`, the facts a rule\nproduces for other rules to consume). `edges` lists the derived rule→rule\ndependencies: src asserts a fact type that dst's conditions test (forward\nchaining). Each rule may also carry `citation` — the policy sentence it\nencodes — which is what lets a decision be traced back to the source\nclause. Also includes overlap warnings. Use this to learn which fact\nfields a domain expects before calling `decide`.\n",
            "inputSchema": {
              "properties": {
                "domain": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Domain"
                }
              },
              "title": "list_rulesArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "list_rulesOutput",
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true
            }
          },
          {
            "name": "get_parameters",
            "title": "Get decision parameters",
            "description": "List the input parameters a domain's rules decide on — the facts to\ncollect before calling `decide`. Derived from your account's own copy of\nthe rules, so it covers your custom domains too.\n\nEach parameter has its `field` name (the key to use in `facts`), `kind`\n(number / boolean / string), the `tests` rules make on it (e.g. \u003e= 720 —\nmatch these units and scales), the `rules` and `verdicts` it can lead to,\nand `max_salience`. Parameters come most decisive first: those feeding\nthe highest-salience rules, which win when several rules fire. Also\nreturns every verdict the domain can reach.\n",
            "inputSchema": {
              "properties": {
                "domain": {
                  "title": "Domain",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "title": "get_parametersArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_parametersOutput",
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true
            }
          },
          {
            "name": "ingest_text",
            "title": "Ingest policy text",
            "description": "Add policy/reference text to a domain's knowledge base.\n\nThe text is chunked and embedded; explanations for future decisions in this\ndomain will cite it. Creating a new domain claims it for your account\n(plan limits apply). Ingesting into a built-in demo domain gives your\naccount its own copy of that demo (it counts as one of your domains); the\nshared demo others see is unchanged. On team plans, only the domain admin (the member\nwho created the domain, or the subscription owner) can add documents.\n\nArgs:\n    domain: Domain to ingest into (existing or new).\n    text: The policy or reference text.\n    source: Optional source name shown in the document list.\n",
            "inputSchema": {
              "properties": {
                "domain": {
                  "title": "Domain",
                  "type": "string"
                },
                "source": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Source"
                },
                "text": {
                  "title": "Text",
                  "type": "string"
                }
              },
              "required": [
                "domain",
                "text"
              ],
              "title": "ingest_textArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "ingest_textOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "readOnlyHint": false
            }
          },
          {
            "name": "list_documents",
            "title": "List documents",
            "description": "List the documents ingested into a domain's knowledge base.",
            "inputSchema": {
              "properties": {
                "domain": {
                  "title": "Domain",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "title": "list_documentsArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "list_documentsOutput",
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true
            }
          },
          {
            "name": "get_rule_source",
            "title": "Get rule source (YAML)",
            "description": "Fetch a domain's rule set as editable YAML (plus the parsed rules and\nwhether you may edit it). Use this before `put_rules` to see the current\nrules. For a built-in demo domain you get your own copy's rules once you\nhave edited it, otherwise the shared demo's.\n",
            "inputSchema": {
              "properties": {
                "domain": {
                  "title": "Domain",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "title": "get_rule_sourceArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_rule_sourceOutput",
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true
            }
          },
          {
            "name": "put_rules",
            "title": "Save rules",
            "description": "Create or replace a domain's rule set from YAML (self-serve rule authoring).\n\nThe first save to a new domain claims it for your account (plan limits\napply). Saving to a built-in demo domain saves your own copy of it, seeded\nfrom the demo; the shared demo others see is unchanged. Rules are validated before\nsaving — set dry_run=true to validate without persisting. The response\nreports ok/errors, the parsed rules, and any overlap warnings.\n\nYAML format — a list of rules. Flat form (conditions are AND-ed):\n    - name: \"Approve\"\n      salience: 10\n      conditions:\n        - type: loan\n          field: credit_score\n          op: \"\u003e=\"\n          value: 700\n      action:\n        verdict: \"APPROVED\"\n        reason: \"Credit score meets threshold\"\n\nTree form — `when:` holds nested all/any/not condition groups, and an\naction may assert derived facts that other rules consume (forward\nchaining; the rule graph derives from these automatically):\n    - name: \"Sepsis Screen\"\n      salience: 30\n      when:\n        all:\n          - {type: clinical, field: temperature_f, op: \"\u003e=\", value: 101.5}\n          - any:\n              - {type: clinical, field: wbc_count, op: \"\u003e\", value: 12.0}\n              - {type: clinical, field: bands_pct, op: \"\u003e\", value: 10}\n      action:\n        verdict: \"URGENT_ALERT\"\n        assert:\n          - {type: sepsis_flag, fields: {severity: high}}\n    - name: \"Escalate\"\n      salience: 40\n      when:\n        all:\n          - {type: sepsis_flag, field: severity, op: \"==\", value: high}\n          - {type: clinical, field: age, op: \"\u003e=\", value: 65}\n      action:\n        verdict: \"ADMIT_ICU\"\n\nUse either `conditions:` or `when:` per rule, never both. `not` passes\nwhen the inner condition does not hold (including when the field is\nabsent). Produce/consume cycles between rules are rejected at validation.\nAn action may also carry `retrieval_scope: { \u003ckey\u003e: \u003cvalue\u003e }` to narrow\nwhich documents retrieval searches (Pattern 01).\n\nA rule may also carry `citation:` — the policy sentence it encodes. It is\nstored with the rule and shown beside it in decision audits, so a verdict\ncan be defended with the source language, not just the rule name:\n    - name: \"Decline Late Returns\"\n      salience: 20\n      citation: \"Returns are accepted within 30 days of delivery.\"\n      when:\n        all:\n          - {type: retail, field: days_since_delivery, op: \"\u003e\", value: 30}\n      action:\n        verdict: \"DENIED\"\n\nIMPORTANT: when persisting drafts returned by `import_policy_rules`, copy\neach rule's `citation` through into this YAML. Dropping it silently loses\nthe link from the decision back to the policy clause that justifies it.\n\nArgs:\n    domain: Domain to author (an owned domain, or a new name to claim).\n    rules_yaml: The full rule set as YAML text.\n    dry_run: Validate only, without saving.\n",
            "inputSchema": {
              "properties": {
                "domain": {
                  "title": "Domain",
                  "type": "string"
                },
                "dry_run": {
                  "default": false,
                  "title": "Dry Run",
                  "type": "boolean"
                },
                "rules_yaml": {
                  "title": "Rules Yaml",
                  "type": "string"
                }
              },
              "required": [
                "domain",
                "rules_yaml"
              ],
              "title": "put_rulesArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "put_rulesOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "readOnlyHint": false
            }
          },
          {
            "name": "import_policy_rules",
            "title": "Draft rules from a policy",
            "description": "Convert a written policy document into DRAFT decision rules (LLM-assisted).\n\nReturns validated draft rules (when/action, including chained asserts where\nthe policy stages its determinations), derived rule→rule edges, and overlap\nwarnings. Each returned rule carries a `citation` field holding the policy\nsentence it encodes (also summarized in the top-level `citations` map).\nNOTHING IS SAVED: review the drafts (and show them to the user), then\npersist explicitly with `put_rules` — validate first with dry_run=true,\nand keep each rule's `citation` in the YAML you save so the audit trail\nback to the policy survives.\n\nArgs:\n    domain: Domain the rules are drafted for (an owned domain or a new name).\n    policy_text: The policy document text (max ~50k characters).\n",
            "inputSchema": {
              "properties": {
                "domain": {
                  "title": "Domain",
                  "type": "string"
                },
                "policy_text": {
                  "title": "Policy Text",
                  "type": "string"
                }
              },
              "required": [
                "domain",
                "policy_text"
              ],
              "title": "import_policy_rulesArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "import_policy_rulesOutput",
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true
            }
          },
          {
            "name": "get_usage",
            "title": "Check usage and quota",
            "description": "Show this account's decision usage, plan, and remaining monthly quota.",
            "inputSchema": {
              "properties": {},
              "title": "get_usageArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_usageOutput",
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true
            }
          }
        ]
      },
      "name": "ai·rete·rag",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "pypi",
          "identifier": "ai-rete-rag-mcp",
          "version": "0.9.0",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp.json",
      "popularity": {
        "githubStars": 0,
        "pypiWeekly": 160
      },
      "registryName": "com.ai-rete-rag/ai-rete-rag-mcp",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://ai-rete-rag.com/mcp"
        },
        {
          "type": "streamable-http",
          "url": "https://ai-rete-rag.com/mcp/auth"
        }
      ],
      "repository": "https://github.com/zaharajabeen13-create/ai-rete-rag-mcp",
      "reviewed": false,
      "slug": "ai-rete-rag-mcp",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.ai-rete-rag/ai-rete-rag-mcp",
      "summary": "Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.",
      "updatedAt": "2026-10-03T07:08:14Z",
      "url": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp",
      "vendor": "ai-rete-rag.com",
      "vendorUrl": "https://ai-rete-rag.com",
      "version": "0.9.0",
      "websiteUrl": "https://ai-rete-rag.com",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp",
    "json": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp.md",
    "slim": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp.min.md"
  },
  "markdown": "# ai·rete·rag\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by ai-rete-rag.com (https://ai-rete-rag.com)\n- Category: Model APIs \u0026 inference (https://www.anchorterminal.com/categories/inference.md)\n- Listed because: It's published in the registry under ai-rete-rag.com, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.\n\n## Facts\n\n- MCP registry: `com.ai-rete-rag/ai-rete-rag-mcp` 0.9.0\n- Endpoint: https://ai-rete-rag.com/mcp (streamable HTTP)\n- Package: pypi `ai-rete-rag-mcp` (stdio)\n- Source: https://github.com/zaharajabeen13-create/ai-rete-rag-mcp\n- Website: https://ai-rete-rag.com\n- PyPI downloads a week: 160\n- GitHub stars: 0\n- Registry entry updated: 2026-10-03\n\n## Tools\n\n- Tools it lists (9, about 3,359 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:21 UTC):\n  - `decide` (writes): 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…\n  - `list_rules` (read-only): 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`…\n  - `get_parameters` (read-only): 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…\n  - `ingest_text` (writes): 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.…\n  - `list_documents` (read-only): List the documents ingested into a domain's knowledge base.\n  - `get_rule_source` (read-only): 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…\n  - `put_rules` (writes): 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).…\n  - `import_policy_rules` (read-only): Convert a written policy document into DRAFT decision rules (LLM-assisted). Returns validated draft rules (when/action, including chained asserts where the…\n  - `get_usage` (read-only): Show this account's decision usage, plan, and remaining monthly quota.\n- How its tools read to an agent (0 errors, 7 warnings, 5 notes, about 3,359 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC07 decide: the description is about 651 tokens\n  - warn TC07 put_rules: the description is about 707 tokens\n  - warn TC11 get_parameters: its one parameter, domain, has no description\n  - warn TC11 get_rule_source: its one parameter, domain, has no description\n  - warn TC11 list_documents: its one parameter, domain, has no description\n  - warn TC11 list_rules: its one parameter, domain, has no description\n  - warn TC18 import_policy_rules: readOnlyHint is true but the name says \"import\"\n  - note TC11 decide: parameters are documented in the description but not in the schema: domain, extract_from_retrieval, fact_sources, facts, filter_retrieval_with_rules, query and 2 more\n  - note TC11 import_policy_rules: parameters are documented in the description but not in the schema: domain, policy_text\n  - note TC11 ingest_text: parameters are documented in the description but not in the schema: domain, source, text\n  - note TC11 put_rules: parameters are documented in the description but not in the schema: domain, dry_run, rules_yaml\n  - note TC29 server: about 289 tokens (8% of the definitions) are titles that repeat property or function names\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/ai-rete-rag-mcp.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "ai·rete·rag",
        "url": ""
      }
    ],
    "description": "ai·rete·rag, an MCP server by ai-rete-rag.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "ai·rete·rag",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/ai-rete-rag-mcp",
    "published": "",
    "section": "indexed",
    "title": "ai·rete·rag: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/ai-rete-rag-mcp"
  },
  "tokens": {
    "markdown": 1250,
    "slim": 1180
  },
  "version": 1
}
