Skip to main content
Glama

ai·rete·rag

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
zaharajabeen13-create/ai-rete-rag-mcp
GitHub Stars
0
Server Listing
ai-rete-rag

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 8 of 8 tools scored. Lowest: 3.4/5.

Server CoherenceA
Disambiguation5/5

Each tool serves a clearly distinct purpose: decide executes decisions, rule management tools (get_rule_source, list_rules, put_rules) each address different aspects of rule viewing/editing, import_policy_rules handles policy-to-rule drafting, and document tools handle knowledge base content. No two tools are easily confused.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern, e.g., list_rules, get_usage, put_rules, import_policy_rules. The single-verb 'decide' fits naturally as the core action. There is no mixing of styles or unpredictable naming.

Tool Count5/5

With 8 tools, the server is well-scoped for its purpose of rule-based decisioning with RAG support. Each tool represents a distinct capability in the workflow—policy ingestion, rule authoring, knowledge base management, decision execution, and usage monitoring—without excess.

Completeness4/5

The tool set covers the core lifecycle: ingest policy text, import draft rules, publish rules, list rules/source, and execute decisions. Minor gaps exist such as no explicit delete for documents or rules (though put_rules with empty YAML can effectively clear rules), and domain listing is indirect via list_rules. These are workable omissions.

Available Tools

8 tools
decideMake a decisionAInspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
factsNo
queryYes
domainYes
response_modeNoverdict_with_explanation
unstructured_textNo
extract_from_retrievalNo
filter_retrieval_with_rulesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the sparse annotations, the description discloses key behavioral traits: determinism, auditable rule-set execution (never LLM), explanation generation from policy documents, causal ordering of rule firings, and two documented retrieval patterns. It also mentions 'available on every plan including the free tier,' providing useful context not in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with Args and Pattern sections. For a tool with 7 parameters and multiple behavioral nuances, each section earns its place. It could be tightened slightly (e.g., condensing the response_mode explanation), but it is not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of an output schema, the description covers all necessary areas: purpose, rule-based execution, response modes, rule firing order, retrieval patterns, and cross-references to sibling tools for rule inspection. No critical gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden. It thoroughly explains all seven parameters, including examples for facts (e.g., {'credit_score': 710}, the meaning of response_mode enum values, and the two boolean patterns. This adds far more meaning than the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb+resource: 'Make a deterministic, auditable decision in a domain.' It clearly distinguishes the tool from sibling rule-management tools (e.g., list_rules, put_rules) by focusing on the decision execution itself, and adds the unique context of the Rete engine.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool ('Make a decision') and even directs users to list_rules to inspect which fields a domain tests. It does not explicitly state when-not-to-use or name alternative tools for other tasks, missing the 'exclusions' element, but the intended usage is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rule_sourceGet rule source (YAML)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already indicates readOnlyHint=true, but the description adds beyond that by disclosing the tool returns editable YAML, parsed rules, and an editability flag. It also notes demo domains are read-only, which is useful behavioral context not captured in the annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and front-loaded with the core purpose. Every sentence contributes value: the first states what it does, the second provides usage context and a caution. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only tool, the description covers the key behavioral aspects: return content, usage context, and a permission caveat. An output schema exists, so it need not detail return values. It is complete enough for a correct invocation, missing only deeper parameter semantics already penalized.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The only parameter, 'domain', is not described beyond the passing phrase 'a domain's rule set'. No examples, valid values, or guidance on how to identify a domain. The description adds essentially no meaning beyond the parameter name itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Fetch' and clearly identifies the resource ('a domain's rule set') and the output format ('editable YAML'). It also mentions additional outputs (parsed rules and editability), which further clarifies its role. This clearly distinguishes it from siblings like list_rules and put_rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'Use this before put_rules to see the current rules'. It also provides an important caveat about built-in demo domains being read-only, giving the agent actionable context for when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageCheck usage and quotaA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates a safe read operation, and the description adds meaningful context by enumerating exactly what is shown (decision usage, plan, remaining quota). It consistently frames the tool as read-only, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's purpose without any filler. Every word contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters), the presence of an output schema, and the clear read-only scope, the description is fully adequate. It covers what the tool does without needing to explain return values or complex behaviors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, which removes the need for semantic explanations. Per guidelines, the baseline is 4 when no parameters exist, and the description is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('Show') and resource ('this account's decision usage, plan, and remaining monthly quota'). It clearly distinguishes this tool from siblings like 'decide' or 'list_rules' by focusing on account-level quota information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (when you need account usage/quota information) but provides no explicit alternatives or exclusions. It does not compare with sibling tools or mention prerequisites, leaving usage largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_policy_rulesDraft rules from a policyA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
policy_textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although the annotation readOnlyHint=true already signals read-only behavior, the description goes further by explicitly stating 'NOTHING IS SAVED,' which reinforces the safety profile. It also discloses return behavior (validated draft rules, edge list, overlap warnings, citation fields) and offers validation advice (dry_run=true). This adds meaningful context beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening sentence, a detailed body explaining the outputs and the no-save behavior, and an Args section. It is somewhat lengthy but every part contributes value: the workflow guidance, return details, and parameter descriptions are all necessary for a tool of this complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, output content, side-effect-free behavior, and the follow-up workflow with put_rules. It mentions constraints like the 50k character limit. Given that an output schema exists, the description doesn't need to enumerate return fields, but it still provides a solid overall picture. Minor gaps include lack of error-condition examples and broader alternative guidance, but it is sufficiently complete for a complex drafting tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry the full burden of explaining parameters. It does so by defining 'domain' as 'Domain the rules are drafted for (an owned domain or a new name)' and 'policy_text' as 'The policy document text (max ~50k characters).' These explanations add meaningful constraints and context that the schema alone lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Convert a written policy document into DRAFT decision rules (LLM-assisted).' It identifies the specific resource (policy document), the outcome (draft rules), and the key distinction that these are drafts, not persisted rules. This differentiates it from sibling tools like 'put_rules' (which saves rules) and 'list_rules' (which lists existing rules).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear workflow guidance: it explicitly instructs to review drafts and then 'persist explicitly with put_rules — validate first with dry_run=true.' This reveals when to use this tool (for drafting) and what to do next (use a different tool for saving). It doesn't explicitly state alternatives to avoid, but the mention of put_rules as the persistence step gives a strong contextual framework.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ingest_textIngest policy textAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
domainYes
sourceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses several important behaviors beyond the annotations: text is chunked and embedded and will be cited in future decisions, creating a new domain claims it with plan limits, demo domains are read-only, and team plans have admin-only ingestion. The readOnlyHint=false and destructiveHint=false are consistent with the description, and there's no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and suitably sized: a clear first sentence, followed by essential behavioral context, then a compact Args section. Every sentence earns its place without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers side effects, permissions, parameter semantics, and usage constraints. Since an output schema exists, return-value details are not required. It is complete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the Args section fully explains each parameter: domain (existing or new), text (policy/reference text), and source (optional name shown in document list). This adds meaning beyond the schema's bare titles and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific verb and resource: 'Add policy/reference text to a domain's knowledge base.' This distinguishes it from sibling tools like import_policy_rules, which likely handle structured rules rather than free text. The rest of the description reinforces the purpose by explaining how the text is processed and used.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context: demo domains are read-only and users should ingest into their own domain, and team plans require admin permissions. However, it does not explicitly mention alternative tools or when to choose this over import_policy_rules, so it stops short of the full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsList documentsB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already include readOnlyHint: true, and the description adds no additional behavioral context such as pagination, ordering, result limits, or specifics about which documents are returned. It merely restates the read-only nature without going beyond what the annotation provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the action and object, with no unnecessary words. It is properly front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (covering return values) and readOnlyHint annotations, the description is adequate for a simple listing tool. It does not include usage guidance, but for such a straightforward operation, the minimal context is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter, 'domain', with no description (0% coverage). The tool description leverages 'domain's knowledge base' to give context that the domain parameter identifies the knowledge base, but does not clarify the format or expected values. This partially compensates for the missing schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List'), the resource ('documents'), and the scope ('into a domain's knowledge base'), which differentiates it from sibling tools like ingest_text (ingesting documents) and list_rules (listing rules).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description simply states what it does without helping the agent choose it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_rulesList rulesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the readOnlyHint annotation: it explains the return structure (flat AND list or when tree), verdict, salience, asserted facts, rule→rule dependencies, citations, and overlap warnings. This gives the agent a realistic expectation of what the tool returns and its analytical value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and then provides dense, relevant detail in a structured way. Every clause adds information about returned data or usage context. Length is justified by the complexity of the output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and the tool has one optional parameter, the description is complete enough. It covers purpose, parameter meaning, return-value highlights, and the intended usage before decide. No critical gaps are apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero schema description coverage, the description compensates by clarifying the only parameter: 'one domain (or all domains)' maps to the optional domain field and its null default. It also ties domain to the decide workflow. This is sufficient for a single free-form string parameter, though it does not enumerate possible domain values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List the decision rules for one domain (or all domains).' It clearly identifies the scope and differentiates from sibling tools like put_rules (write/update) and decide (rule execution).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'Use this to learn which fact fields a domain expects before calling decide.' This gives a clear usage context and points to a related sibling. It does not explicitly mention when not to use alternatives, but the primary workflow guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

put_rulesSave rulesA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
dry_runNo
rules_yamlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though annotations already mark destructiveHint=true, the description adds rich context: first save claims a domain, plan limits apply, demo domains are read-only, validation occurs before saving, overlap warnings are returned, and produce/consume cycles are rejected. It also discloses the silent citation-drop risk. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Though long, the description is well-structured and front-loaded with the core purpose immediately. The YAML examples, caveats, and Args section all earn their place given the complexity of rule authoring; there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a simple schema but complex YAML payload, the description is exceptionally complete. It covers ownership, validation, dry-run behavior, response contents, YAML forms (flat/tree), assertions, forward chaining, retrieval_scope, citation, and a critical data-loss warning. The output schema exists but the description still usefully summarizes response fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the 'Args:' section fully documents each parameter: domain as owned/new domain, rules_yaml as YAML text, dry_run as validate-only. This compensates completely for the empty schema descriptions and adds practical meaning beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Create or replace a domain's rule set from YAML (self-serve rule authoring)', which is a specific verb + resource + scope statement. It clearly distinguishes itself from alternatives like import_policy_rules by explicitly referencing that tool's drafts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use context: new domain claims, demo domain read-only restriction, dry-run alternative, and the relationship to import_policy_rules for persisting drafts. It gives clear directives like 'set dry_run=true to validate without persisting' and warns to copy citation fields when persisting drafts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.