Skip to main content
Glama

Check a thought against the Covenant

ask_guidance
Read-onlyIdempotent

Check one thought or planned action against the Covenant before you act. Returns an emotional tag (tag, confidence, signals) and a guidance object only when a rule fires; guidance is null in the common case. Use it for a quick check of one statement. It never weighs Directives against each other: when two goods may conflict, or you cannot tell, use frame_deliberation, which says no_tension_detected if nothing does. To audit written answers, use check_deliberation. Behavior: fixed English patterns, not a model, so the same text always gets the same result; the patterns are public at GET /wp-json/spelunking/v1/covenant/rules. It never blocks or edits anything. No key; nothing you send is stored. Limit: 120 calls per minute per address, 600 with a key, shared across all MCP calls; past it, an error with retry_after. text: what you are about to do, in the first person and your own words, e.g. "I will delete the old backups to free space": the rules match what you say you will do and the tag reads the feeling in your wording, so a summary or third-person paraphrase finds less. Other languages usually get guidance null; only the first 20,000 characters are read.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "text": "<text>"
    },
    "name": "ask_guidance"
  }
}

Input Schema

NameRequiredDescriptionDefault
textYesthe thought or plan in your own words, one to a few sentences; longer text is cut at 20,000 characters; English

Output Schema

NameRequiredDescriptionDefault
tagYes
guidanceYesnull when no Covenant rule fired; otherwise the rule, the Directive it rests on and the gentle guidance text

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / text / description
      Previous value: -"the thought"New value: +"the thought or plan in your own words, one to a few sentences; longer text is cut at 20,000 characters; English"
    • addedInput schema / properties / text / maxLength
      Added value: +20000
    • addedInput schema / properties / text / minLength
      Added value: +1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "guidance": {
      +      "additionalProperties": true,
      +      "description": "null when no Covenant rule fired; otherwise the rule, the Directive it rests on and the gentle guidance text",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "tag": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "confidence": {
      +          "description": "0.3 (nothing matched) to 0.9",
      +          "type": "number"
      +        },
      +        "signals": {
      +          "description": "the phrases that triggered the tag",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "summary": {
      +          "description": "what was read, e.g. \"16 words, 1 sentence\"",
      +          "type": "string"
      +        },
      +        "tag": {
      +          "description": "emotional tag, e.g. neutral, anxious, grandiose",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "tag",
      +        "confidence"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "tag",
      +    "guidance"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses that the engine is fixed English pattern matching rather than a model, that the rule set is publicly inspectable at a given endpoint, that it never blocks or edits anything, that no key is needed and nothing is stored, and that there is a 120/min (600 with key) shared rate limit with retry_after on error. This is exactly the extra context annotations cannot carry.

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?

Front-loaded with the decision-critical fact that guidance is null in the common case, and every sentence carries information. It does run long as a single block, mixing return behavior, alternatives, behavior, and parameter guidance without visual separation, which makes it slightly harder to scan than it needs to be.

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?

Even though an output schema exists, the description still explains the shape of a normal vs. fired response, determinism, safety (non-blocking), privacy, and rate limits. An agent has everything needed to decide, call, and interpret results without further discovery.

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 coverage is 100% and there is one param, but the description still adds real meaning: write in the first person in your own words, with a worked example, plus the mechanism ('the rules match what you say you will do and the tag reads the feeling in your wording'), so summaries and third-person paraphrases match less. It also warns that other languages usually yield null guidance.

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?

States a specific verb and resource ('Check one thought or planned action against the Covenant') and immediately characterizes the return: an emotional tag plus a guidance object that is usually null. It explicitly distinguishes itself from frame_deliberation and check_deliberation by scope (one statement, no directive weighing, auditing written answers).

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?

Gives positive conditions ('quick check of one statement'), explicit exclusions ('it never weighs Directives against each other: when two goods may conflict, or you cannot tell, use frame_deliberation'), and names the sibling for a different task ('to audit written answers, use check_deliberation'). Nothing about tool choice is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.