Skip to main content
Glama

Server Details

AI agent infrastructure: dedup, cost prediction, validation, governance, failure intelligence.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A4.3/5.0

Scored across 15 tools

Disambiguation5/5

Each tool has a clearly distinct purpose within its domain prefix (burnrate, dedupq, guardrail, pitfalldb, qualitygate, rigor), and the descriptions clearly delineate when each should be used. Even similar pre-execution checks like dedupq_check and pitfalldb_query are differentiated by their intent (cache lookup vs. failure-pattern lookup). No two tools appear to do the same thing.

Naming Consistency5/5

All tool names follow a consistent lowercase snake_case pattern with a domain prefix followed by an action or resource, such as burnrate_estimate, guardrail_create_policy, and rigor_execute. The naming convention is uniform across all 15 tools, making the set predictable and scannable.

Tool Count5/5

With 15 tools, this server sits at the upper boundary of the well-scoped range, and each tool addresses a specific need in the broader AI agent cost/governance/quality workflow. The count is justified by the breadth of the domain, which spans budget tracking, deduplication, guardrails, pitfall knowledge, quality validation, and structured execution.

Completeness3/5

The tool set covers the core lifecycle for each subdomain, but notable operations are missing: guardrail_create_policy has no corresponding delete/update/list tool despite claiming policies persist until explicitly deleted, and qualitygate_validate references qualitygate_trends which is not present. Additionally, there is no budget configuration tool, relying on external setup. These gaps create minor dead ends but major workflows remain viable.

Available Tools

15 tools
burnrate_budgetA
Read-onlyIdempotent
Inspect

Get today's tracked LLM spend, per-model breakdown, projection, and budget alerts. Free — no credits charged.

ParametersJSON Schema
NameRequiredDescriptionDefault
daily_limitNoOptional. Daily budget in USD (e.g., 10.0 for a $10/day cap). Enables budget alerts and remaining-balance calculation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
spendNo
alertsNo
projectionNo
request_idNo
credits_usedNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context: 'Free — no credits charged' clarifies cost implications, and 'today's' scopes the operation. It does not contradict 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?

Two short sentences deliver all core information without filler. The first sentence leads with the primary action and output, and the second adds cost context. Every word earns its place.

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 tool is simple (1 optional param, output schema exists), and the description covers its purpose and scope. However, it does not clarify why one would choose this over the closely related burnrate_track, leaving a minor completeness gap.

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?

Schema description coverage is 100% for the single optional daily_limit parameter, which fully explains the parameter's meaning. The description itself does not add parameter details, but the schema carries the burden, so baseline 3 is appropriate.

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 retrieves today's tracked LLM spend, per-model breakdown, projection, and budget alerts. The verb 'get' plus the resource (budget info) is specific and differentiates it from siblings like burnrate_track or burnrate_estimate.

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 usage by mentioning budget alerts and spend tracking, but it does not explicitly state when to use this tool versus alternatives like burnrate_track or burnrate_optimize. No exclusion criteria or alternative references are provided.

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

burnrate_estimateA
Idempotent
Inspect

Before executing a multi-step agent plan, estimate the total LLM cost. Returns per-step breakdown and optimization suggestions. If the estimate exceeds your budget, pipe the same plan into burnrate_optimize. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYesArray of plan steps with provider, model, and token estimates.

Output Schema

ParametersJSON Schema
NameRequiredDescription
estimateNo
request_idNo
credits_usedNo
credits_remainingNo
fallback_behaviorNo
optimization_suggestionsNo

TDQS

A4.4/5.0
Behavior4/5

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

Adds a non-annotation behavioral trait: 'Costs 1 credit', which is not in the annotations. Also describes the output ('per-step breakdown and optimization suggestions'), adding context beyond the idempotentHint and destructiveHint annotations. 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?

Three sentences, front-loaded with the primary purpose. Each sentence adds distinct value: purpose, return value, and conditional alternative with cost. No fluff or redundancy.

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 tool's moderate complexity, the description adequately covers the use case, output, and costs. The schema and output schema handle parameter and result details, so the description is sufficient. Could be more complete with e.g. explanation of 'credit', but not necessary.

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 input schema covers 100% of parameters with descriptions, so the description does not need to add parameter-level detail. The description only refers to the 'multi-step agent plan' conceptually, without explaining parameter syntax or semantics beyond what the schema already provides.

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: 'estimate the total LLM cost' for a 'multi-step agent plan' before execution. It also mentions the return of a per-step breakdown and optimization suggestions, distinguishing it from a generic estimation tool.

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?

Explicitly states when to use: 'Before executing a multi-step agent plan'. Provides an explicit alternative: 'If the estimate exceeds your budget, pipe the same plan into burnrate_optimize'. This gives clear context and a condition for switching to a sibling tool.

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

burnrate_optimizeA
Idempotent
Inspect

Get a cheaper equivalent plan by substituting models with lower-cost alternatives. Call after burnrate_estimate if the estimated cost exceeds your budget. Returns the optimized plan with substituted models, new per-step costs, total savings, and whether the target_budget is met. Optionally set target_budget to constrain the optimization. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYesArray of plan steps. Same schema as burnrate_estimate: each step needs step, provider, model, estimated_input_tokens, estimated_output_tokens.
target_budgetNoOptional. Target total cost in USD.

Output Schema

ParametersJSON Schema
NameRequiredDescription
stepsNo
originalNo
optimizedNo
request_idNo
suggestionsNo
credits_usedNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4.7/5.0
Behavior4/5

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

Beyond annotations (idempotentHint=true, destructiveHint=false), the description discloses that the tool costs 1 credit, returns an optimized plan with specific components, and implies a non-mutating operation ('Returns the optimized plan'). This adds useful context without contradicting 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?

The description is compact and front-loaded with purpose. Each sentence adds essential information: what, when, return value, optional parameter, and cost. No filler.

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?

Covers the tool's function, usage context, inputs, outputs, and side effects (credit cost). The description is especially complete given the schema annotations and output schema presence, leaving minimal ambiguity for an agent.

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?

Schema already has 100% coverage, but description enhances meaning by stating the plan parameter uses 'Same schema as burnrate_estimate' and explains target_budget's role ('constrain the optimization'). This goes beyond simple field definitions.

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 action and result: 'Get a cheaper equivalent plan by substituting models with lower-cost alternatives.' This clearly distinguishes the tool from siblings like burnrate_estimate and burnrate_track.

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?

Provides explicit usage condition: 'Call after burnrate_estimate if the estimated cost exceeds your budget.' Also gives optional parameter guidance ('Optionally set target_budget to constrain the optimization') and references the predecessor tool.

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

burnrate_trackA
Idempotent
Inspect

Log the actual cost of an LLM call after execution. Call this after every LLM request to build calibration data that improves burnrate_estimate accuracy over time. Free — no credits charged. Returns the recorded cost entry with computed margin versus the prior estimate when one exists for this model and token range.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesModel identifier as returned by the provider. Examples: claude-sonnet-4-6, gpt-4o, gemini-2.0-flash, mistral-large-latest. Unknown models are accepted but cost may show as $0.
task_idNoOptional task ID for cross-referencing spend with DedupQ deduplication results. Use the same task_id passed to dedupq_check to link cost tracking with deduplication.
providerYesLLM provider identifier. Supported: anthropic, openai, google, mistral, cohere, deepseek, together, fireworks, groq. Must match the provider of the model used.
input_tokensYesActual prompt tokens used. Must be >= 0.
output_tokensYesActual completion tokens used. Must be >= 0.
cache_read_tokensNoOptional. Cache-read tokens.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modelNo
trackedNo
providerNo
record_idNo
request_idNo
credits_usedNo
input_tokensNo
output_tokensNo
pricing_foundNo
actual_cost_usdNo
credits_remainingNo
fallback_behaviorNo
actual_cost_usd_formattedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false. The description adds valuable context beyond these: 'Free — no credits charged' and 'Returns the recorded cost entry with computed margin versus the prior estimate,' disclosing both cost implications and return behavior. This is a good supplement to 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?

Three sentences, each serving a distinct purpose: action, usage guidance, and return behavior. Information is front-loaded, concise, and free of fluff or repetition.

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, the description covers the essential aspects: what it does, when to use it, return value, and cost. The output schema exists, so return details are further specified. No significant gaps remain for an agent to select and invoke the tool correctly.

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?

Schema coverage is 100% with detailed descriptions for all parameters. The description adds meaning by mentioning 'this model and token range' when computing margins, linking the parameters (model, input_tokens, output_tokens) to the tool's estimation logic. This provides extra context beyond the 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 clearly states the action with a specific verb and resource: 'Log the actual cost of an LLM call after execution.' It distinguishes from sibling tools like burnrate_estimate by positioning this as recording actuals for calibration, and the title 'Record actual LLM spend' reinforces the purpose.

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 explicit usage timing: 'Call this after every LLM request to build calibration data.' It references burnrate_estimate as the beneficiary of the data, implying an alternative use case (estimating vs. recording). However, it does not explicitly state when NOT to use the tool or name alternatives directly.

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

dedupq_checkA
Idempotent
Inspect

Before executing any LLM task, check if an identical or semantically similar task has already been completed. Returns cached result on hit, saving one LLM call. On a miss, execute your task and call dedupq_complete to cache the result for future hits. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe task content to check for duplicates. This is hashed and embedded for matching.
task_idNoOptional caller task ID for tracing and cross-referencing with BurnRate.
hash_onlyNoIf true, skip vector similarity search and use exact hash matching only. Default: false.
similarity_thresholdNoCosine similarity threshold for semantic matching, 0.0 to 1.0. Default: 0.80.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchNo
statusNohit | miss | in_progress
cache_hitNo
request_idNo
content_hashNo
credits_usedNo
cache_age_secondsNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses the hit/miss behavior, the cost of 1 credit, and the complementary dedupq_complete flow, adding value beyond the annotations (readOnlyHint=false, idempotentHint=true). It does not mention potential side effects on the cache or error conditions, but those are not critical given the simple check purpose.

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?

Three sentences, each conveying distinct information: purpose, hit/miss behavior, and cost. No unnecessary words or repetition.

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 core workflow (check, execute, complete), mentions cost, and relies on the output schema for return values. It is adequate for a tool with 4 parameters and 100% schema coverage, though it could mention edge cases like cache misses on similar content or stale results.

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?

Schema description coverage is 100%, so the baseline is 3. The description does not add significant parameter semantics beyond what the schema already provides, such as the hashing behavior for content, which is already in the 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 that the tool checks for identical or semantically similar tasks before executing LLM tasks, and differentiates from dedupq_complete by explaining that on a miss, the user should execute the task and call dedupq_complete to cache the result.

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 says 'Before executing any LLM task, check...' providing clear when-to-use. It also gives an alternative—calling dedupq_complete after a miss—but does not mention explicit conditions when not to use the tool, so it falls short of fully explicit when-not guidance.

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

dedupq_completeA
Idempotent
Inspect

After executing a task, store the result so future identical or similar tasks return a cache hit via dedupq_check. Costs 2 credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultYesThe task result to cache. Can be any JSON value.
contentYesOriginal task content. Used to compute hash and embedding for future matching.
task_idNoOptional task ID. Used as the database row ID if provided.
hash_onlyNoIf true, skip embedding generation. Default: false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
storedNo
task_idNo
request_idNo
content_hashNo
credits_usedNo
has_embeddingNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false (write operation), idempotentHint=true, and destructiveHint=false. The description adds the credit cost (2 credits) and explains the cache mechanism, providing useful behavioral context beyond annotations. 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?

The description is a single, front-loaded sentence that conveys purpose, mechanism, and cost without wasted words. Every clause earns its place, making it concise and well-structured.

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 cache store tool with full schema and an output schema, the description covers the essential purpose, cost, and relationship to dedupq_check. However, the workflow order (e.g., calling after a cache miss) is only implied, not explicitly stated, which is a minor gap.

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 description coverage is 100%, with each parameter (content, result, task_id, hash_only) already well-described. The description does not add significant meaning beyond mapping 'content' to original task content and 'result' to the stored result. Baseline 3 is appropriate because the schema handles parameter semantics.

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: store the task result after execution, with a specific purpose (future cache hits via dedupq_check). It distinguishes this tool from siblings by naming the complementary dedupq_check tool. The verb 'store' combined with the resource 'result' gives unambiguous intent.

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: after executing a task, to enable future cache hits. It references dedupq_check as the corresponding lookup tool, implying a usage workflow. However, it does not explicitly state when not to use the tool or compare it to alternatives beyond the companion tool.

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

guardrail_checkA
Idempotent
Inspect

Evaluate a proposed agent action against your governance policies. Returns allow or deny with the matched policy reason. Requires at least one active policy created via guardrail_create_policy. Deterministic rule evaluation — no LLM. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent identifier.
proposed_actionYesAction to evaluate. Must contain a 'type' field. Example: {"type": "http_request", "url": "https://external.example.com"} or {"type": "file_write", "path": "/etc/config"}.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
audit_idNo
decisionNo
policy_idNo
request_idNo
credits_usedNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4.3/5.0
Behavior4/5

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

The description adds valuable behavioral details beyond annotations: it is deterministic, uses no LLM, and costs 1 credit. It also states the return type (allow/deny with reason). The annotation idempotentHint and destructiveHint are consistent, and no contradiction exists.

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 concise—four sentences, each adding information: purpose, return value, prerequisite, and behavioral traits. It is front-loaded with the core function and avoids fluff.

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 annotations are present, the description covers necessary context: what the tool does, what it requires, and its cost/determinism. It is complete enough for an agent to decide whether and how to invoke it.

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?

Schema description coverage is 100% with detailed descriptions and an example for proposed_action, so the description need not repeat parameter semantics. The only param-related addition is the prerequisite mention, which applies to the overall call rather than to a specific parameter.

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 evaluates a proposed agent action against governance policies, using a specific verb ('Evaluate') and resource ('your governance policies'). It distinguishes itself from siblings by focusing on policy-based allow/deny, unlike dedupq_check or qualitygate_validate.

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?

It provides an essential prerequisite: at least one active policy created via guardrail_create_policy, which tells the agent when the tool is usable. It does not explicitly name alternatives or exclusion cases, but the context implies this is the policy-checking tool.

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

guardrail_create_policyAInspect

Create a persistent governance policy that guardrail_check evaluates on every subsequent call. Define rules using and/or/not operators over action types, resource patterns, and budget thresholds. Call this before using guardrail_check — checks require at least one active policy. Policies persist until explicitly deleted. Duplicate policy names return an error. Returns the created policy with its ID and active status.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesUnique policy name per org. Examples: 'no-delete-in-prod', 'budget-cap-50', 'pii-block'.
rulesYesArray of rule objects evaluated against the proposed_action in guardrail_check. Leaf operators: eq, starts_with, contains, gt, lt (compare field to value). Compound operators: and, or, not (nest sub-rules in a rules array). Example: [{operator:'eq', field:'type', value:'file_write'}] blocks all file writes. Nested example: [{operator:'and', rules:[{operator:'eq',field:'type',value:'api_call'},{operator:'contains',field:'url',value:'prod'}]}] blocks prod API calls.
priorityNoOptional. Evaluation order. Default: 0.
descriptionNoOptional human-readable summary of what this policy enforces. Returned in guardrail_check responses and guardrail_list_policies output for auditability.
action_typesNoOptional. Restrict this policy to only evaluate when proposed_action.type matches one of these values. Examples: ['file_write', 'api_call', 'db_delete']. Omit to apply the policy to all action types regardless of type field.

Output Schema

ParametersJSON Schema
NameRequiredDescription
policyNo
request_idNo
credits_usedNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4.4/5.0
Behavior4/5

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

The description goes beyond the minimal annotations by disclosing persistence ('Policies persist until explicitly deleted'), error behavior ('Duplicate policy names return an error'), and return value ('Returns the created policy with its ID and active status'). These details add significant context beyond the annotations, which only provide basic hints. However, it doesn't mention potential authorization requirements or the interaction of multiple policies, so it's not fully comprehensive.

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 uses six short, informative sentences with no redundancy. It is front-loaded with the primary purpose, followed by usage, persistence, error handling, and return value. Every sentence earns its place, and there is no padding or unnecessary detail.

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 tool has an output schema, so return value details are covered separately. The description explains prerequisite ('Call this before using guardrail_check'), persistence, error condition, and return behavior. It lacks specifics on how multiple policies are evaluated together, but given the priority parameter in the schema and the companion guardrail_check tool, this is a minor gap. Overall, the description provides enough context for correct usage.

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?

Schema coverage is 100%, meaning all parameters have descriptions. The description adds a high-level summary of rule syntax ('Define rules using and/or/not operators over action types, resource patterns, and budget thresholds'), but the schema already provides detailed examples for each parameter. Thus the description adds marginal value beyond the schema, warranting the baseline score of 3.

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 'Create a persistent governance policy' with a specific verb and resource. It explicitly explains that guardrail_check evaluates the policy on subsequent calls, distinguishing it from sibling tools like guardrail_check itself, which presumably evaluates policies. The tool's role as a policy creator is unambiguous.

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 usage guidance: 'Call this before using guardrail_check — checks require at least one active policy.' This directly tells the agent when to use this tool relative to its sibling, and the note about duplicate policy names returning an error also informs the agent to avoid name collisions. This is clear and actionable.

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

pitfalldb_queryA
Idempotent
Inspect

Check for known failure patterns before executing a task type. Returns pitfalls with severity, fix suggestions, and confidence scores. After your agent runs, submit failures via pitfalldb_report so others benefit. Costs 2 credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoOptional filters.
task_typeYesTask category: code_generation, web_search, data_analysis, etc.
task_descriptionNoOptional. Natural-language task description for semantic search.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pitfallsNo
request_idNo
credits_usedNo
total_matchingNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses the credit cost ('Costs 2 credits'), a behavioral trait not present in annotations. It also summarizes the return contents (severity, fix suggestions, confidence scores). This adds meaningful context beyond the annotations, which already indicate read-only and idempotent behavior, but the cost is an important non-obvious effect.

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, front-loaded with the primary purpose, and includes the return format, cost, and a pointer to the sibling reporting tool. Every sentence contributes novel information with no 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?

With a rich input schema, an output schema, and annotations, the description sufficiently covers the tool's behavior. It specifies when to use it, what it returns, and the associated cost, leaving no critical gaps for an agent to invoke it correctly.

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?

Schema description coverage is 100% for parameters, so the baseline is 3. The description does not elaborate on parameter usage beyond what the schema already provides; the only hint is the notion of 'task type' which is a schema field. No additional semantic clarification is offered.

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 purpose: 'Check for known failure patterns before executing a task type.' It also specifies the output ('pitfalls with severity, fix suggestions, and confidence scores'), which distinguishes it from sibling tools like pitfalldb_report. This is a specific verb-resource pair with clear scope.

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 advises using the tool 'before executing a task type,' providing clear usage context. It also suggests the complement: 'After your agent runs, submit failures via pitfalldb_report.' While it does not mention all alternative tools, it gives a concrete usage pattern and a related action.

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

pitfalldb_reportA
Idempotent
Inspect

Report an agent failure. PII-scrubbed before storage. Linked to existing pitfalls if similar. Free — no credits charged.

ParametersJSON Schema
NameRequiredDescriptionDefault
failureYesFailure details.
task_typeYesTask category.
task_descriptionYesDescription of the failed task.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
verifiedNo
report_idNo
request_idNo
credits_usedNo
credits_remainingNo
fallback_behaviorNo
linked_pitfall_idNo

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations, the description adds valuable behavioral context: PII scrubbing before storage, linking to existing pitfalls, and the fact that it's free. These disclose important privacy and deduplication behaviors that are not stated in annotations, enriching the agent's understanding of side effects.

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 exceptionally concise: four short sentences, each adding distinct information (action, privacy, deduplication, cost). No fluff or redundancy exists; every sentence earns its place.

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 tool's moderate complexity (3 params, nested object) and the presence of output schema and annotations, the description covers the essential behavioral points: purpose, PII handling, linking, and cost. It could mention explicit usage scenarios relative to sibling tools, but the current description is sufficiently complete for an agent to invoke it correctly.

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 input schema has 100% coverage with meaningful descriptions for every parameter, including nested fields. The tool description does not add any parameter-specific details beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 the specific verb-resource pair 'Report an agent failure,' which clearly states the tool's purpose. This distinguishes it from sibling tools like pitfalldb_query, which is for querying, not reporting. The additional context about PII scrubbing and linking further clarifies the tool's function.

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 clearly indicates this tool is for reporting agent failures, which is a distinct usage context from sibling tools. It does not explicitly mention alternatives or exclusions, but the differentiation from pitfalldb_query is implicit and clear, qualifying it as 'clear context, no exclusions'.

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

qualitygate_validateA
Idempotent
Inspect

After your agent generates output, validate it against your rules before shipping. Runs deterministic checks (regex, JSON schema, syntax) plus optional LLM-powered tone and factual analysis. Returns a structured verdict (pass, warn, or fail) with a 0-100 score and per-check issue details. Use qualitygate_trends to spot recurring failure patterns over time. Variable cost: 1 credit per deterministic check, 8 credits per LLM check.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputYesThe agent output text to validate.
schemaNoJSON Schema to validate output against.
languageNoCode language for syntax check: json, python, javascript, typescript.
overrideNoForce pass. Requires override_reason.
directivesNoDirective objects. Types: must_include, must_not_include, must_match, must_not_match, must_contain, must_not_contain, min_length, max_length.
check_typesNoChecks to run. Auto-inferred if omitted.
override_reasonNoRequired when override is true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
summaryNo
verdictNo
checks_runNo
request_idNo
credits_usedNo
credits_remainingNo
fallback_behaviorNo

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations, the description discloses the return structure (verdict with pass/warn/fail, 0-100 score, per-check issue details) and variable costs per check type. It also highlights optional LLM-powered tone and factual analysis, giving the agent useful behavioral context. The description does not contradict any 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?

The description is three sentences, each packed with essential information: when to use, what it does, what it returns, a pointer to a related tool, and cost structure. It is front-loaded and contains no filler or redundant phrasing.

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 tool's moderate complexity, the description covers the core purpose, usage window, return format, and cost, while the output schema handles verdict/score details. It omits discussion of the 'override' parameter and filter directives, but the schema covers those. The presence of output schema and annotations reduces the burden on the description, making it reasonably complete.

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 input schema has 100% description coverage, so the baseline is 3. The description adds some context by grouping checks into deterministic vs LLM-powered and mentioning cost implications, but it does not elaborate on specific parameters like 'override' or 'directives'. The schema itself carries the semantic weight.

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 validates agent output against user-defined rules, using deterministic checks and optional LLM analysis. It explicitly distinguishes itself from related tools like qualitygate_trends, which is for spotting recurring failure patterns. The verb 'validate' plus the resource 'agent output' makes the purpose unmistakable.

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 timing guidance ('After your agent generates output, validate it ... before shipping') and an explicit alternative for trend analysis. However, it does not mention when *not* to use this tool or compare it with other validation-like sibling tools, so it lacks exclusionary guidance.

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

rigor_executeAInspect

Execute a structured workflow end-to-end. Call rigor_plan first (free) to preview the step sequence and cost estimate before committing credits. Classifies the task, selects the optimal tool sequence, and executes each step with the right LLM model. Returns a complete deliverable — solution designs, competitive analyses, governance documents, and more. Supports SSE streaming for real-time progress, webhook callback, or polling. For atomic work — classification, scoring, ranking, entity extraction, query parsing — set preferences.execution to 'direct' and declare preferences.output_contract to get validated JSON records from a single call, routed to the cheapest model that holds the schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoAdditional context for the workflow.
deliveryNoDelivery method. Default: polling (MCP clients typically can't handle SSE).
task_typeNoOptional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, compose, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape.
preferencesNoOptional workflow preferences.
task_descriptionYesNatural language description of the task. Be specific — include what you want produced, constraints, and context. Example: 'Design a caching layer for our API gateway with Redis integration.'

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
statusNo
poll_urlNo
executionNoPresent with value 'direct' when direct execution ran. Absent for standard multi-call execution.
task_typeNo
value_classNo
workflow_idNo
delivery_modeNo
available_modesNo
estimated_creditsNo
execution_fallbackNoTrue when you explicitly requested direct execution and it could not be honoured — the workflow ran as standard multi-call instead. Never set for an auto-selected attempt, since you did not ask.

TDQS

A5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that execution commits credits, classifies and routes work to models, supports three delivery mechanisms, and can return validated JSON. The nested preferences.execution description adds fallback and exclusion behavior (require_approval, attachments, prior_workflow_id), which is valuable side-effect information.

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?

Every sentence earns its place: the first sentence is the core action, the second sequences the plan step, the third clarifies internal routing/deliverable, and the fourth gives the atomic-task fast path. It is dense but not padded.

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 complex, stateful tool, the definition covers prerequisites, cost, delivery methods, output shape options, and the task-type vocabulary. Because the output schema exists and schema descriptions are complete, an agent has enough to invoke both the standard and direct paths correctly.

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?

Even with 100% schema coverage, the description adds real decision value: it explains what preferences.execution='direct' and preferences.output_contract actually do (single-call validation, cheapest-model routing, quality-review skip) and provides the task_type taxonomy with atomic vs multi-step categories. This is more than restating the 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?

Begins with a specific verb and object—'Execute a structured workflow end-to-end'—and immediately distinguishes itself from rigor_plan by instructing the agent to call rigor_plan first for preview/cost. The deliverable classes (solution designs, competitive analyses, governance documents) make the tool's scope concrete.

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?

States exactly when to use it: after rigor_plan, before committing credits. It also gives decision rules for mode selection—use direct execution + output_contract for atomic work such as classification, scoring, and extraction, with the default/standard path otherwise.

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

rigor_planA
Read-onlyIdempotent
Inspect

Before executing a complex task, get a structured workflow plan with per-step cost estimates. Classifies your task, selects the optimal framework sequence, and returns the full plan without executing anything. The response's allowed_modes tells you whether this plan is eligible for direct execution. Free — no credits charged.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_typeNoOptional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, compose, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape.
preferencesNoOptional workflow preferences.
task_descriptionYesNatural language description of the task. Be specific — include what you want produced, constraints, and context. Example: 'Design a caching layer for our API gateway with Redis integration.'

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
planNo
generated_titleNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral traits beyond those: it does not execute the task, it classifies and selects the framework sequence, the response includes allowed_modes, and it is free ('no credits charged'). These are useful, non-obvious disclosures.

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?

Four sentences, front-loaded with the core action, then classification, no-execution behavior, response hint (allowed_modes), and pricing. Every sentence earns its place and no filler is present.

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 tool is complex, but the input schema is extremely rich (100% coverage), annotations cover the safety profile, and an output schema exists. The description covers the remaining essentials: what it returns (plan with cost estimates), side-effect-free execution, free pricing, and the allowed_modes hint. Nothing critical is missing.

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?

Schema description coverage is 100%, with very rich per-parameter documentation (task_type vocabulary, execution preferences, output_contract structure). The description itself adds no parameter-level semantics, so the baseline of 3 applies per the rubric.

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: 'get a structured workflow plan with per-step cost estimates.' It names the behavior (classifies task, selects framework sequence) and explicitly states it returns a plan 'without executing anything,' which clearly differentiates it from the sibling rigor_execute. This is unambiguous and actionable.

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 clear context: use this 'before executing a complex task,' and mentions allowed_modes to determine execution eligibility, implying the next step is rigor_execute. However, it does not explicitly name alternatives or exclusions, such as 'use rigor_execute directly for atomic tasks' — that nuance lives only in the schema.

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

rigor_statusA
Read-onlyIdempotent
Inspect

Check the status of a running or completed Rigor workflow. Returns progress, step results, and the full deliverable when complete. Use after rigor_execute with polling delivery to retrieve results.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYesThe workflow ID returned by rigor_execute (format: wr_xxx).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
workflowNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds meaningful behavior beyond that by explaining the return payload: progress, step results, and the full deliverable when complete. This helps the agent understand what the response will look like over the lifecycle of the workflow.

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, front-loaded with the primary action and followed by the key usage instruction. Every word adds value, and it is appropriately sized for a single-parameter status tool.

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 simple one-parameter schema, existing read-only/idempotent annotations, and an output schema, the description covers the essential points: purpose, return content, and timing relative to rigor_execute. It does not mention failing workflows or error handling, but the output schema likely covers those states, so it is nearly complete.

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 already documents the only parameter (workflow_id) with format and source ('returned by rigor_execute (format: wr_xxx)'), so schema coverage is 100%. The description adds no new parameter-level insights but also does not contradict the schema, so the baseline score of 3 applies.

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 a specific verb+resource ('Check the status of a running or completed Rigor workflow') and clearly distinguishes it from siblings like rigor_execute and rigor_plan by emphasizing it is the status retrieval tool. It also mentions the key output (progress, step results, full deliverable), making the purpose unambiguous.

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 the tool: 'Use after rigor_execute with polling delivery to retrieve results.' This gives clear invocation timing relative to a sibling tool. It does not mention exclusions or alternative use cases for the other workflow tools, but the primary integration context is well-defined.

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

rigor_workflowsA
Read-onlyIdempotent
Inspect

List and search Rigor workflows for your organization, with filtering and pagination. Returns status, progress, capacity usage, and available actions per workflow. Use to monitor workflow state, understand concurrent limit usage, identify stuck or completed workflows, and — via q — find prior work on a subject before commissioning it again. Pair a q hit with rigor_status to read that workflow's deliverable.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch the workflow title and task description. Every whitespace-separated term must appear in one or the other, as a case-insensitive substring — so "vector search postgres" matches a task described as "add vector search to an existing Postgres-backed SaaS app". Substring matching, not full-text: there is no stemming and no ranking, so "migrating" does not match "migration". Max 200 characters and 8 terms; punctuation is treated as a separator and wildcards are not supported.
limitNoPage size (default 20, max 100)
cursorNoPagination cursor (created_at timestamp from previous page)
statusNoFilter by status (comma-separated). Valid values: executing, step_executing, completed, failed, halted, pending_approval, cancelled. E.g. "halted,failed,pending_approval"
folder_idNoFilter by folder ID. Pass "unassigned" for workflows in no folder
task_typeNoFilter by classified task type
created_afterNoISO timestamp — only workflows created after this time
created_beforeNoISO timestamp — only workflows created before this time
counts_toward_limitNoFilter to workflows counting toward the concurrent limit

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
workflowsNo
paginationNo
credits_remainingNo
concurrent_summaryNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description goes beyond annotations by disclosing that it lists and searches workflows, returns per-workflow status/progress/capacity usage/available actions, and supports filtering/pagination. It also reveals the tool surfaces data that could be used to infer concurrency limits and find prior work, which is useful context. It does not claim any side effects and does not contradict 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?

The description is a compact paragraph that front-loads the core function, then lists returned data, then gives use cases, then a sibling-routing tip. Every sentence contributes either scope, use-case, or navigation guidance. There is no repetition of schema details and no fluff.

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 tool is a read-only list/search operation with an output schema, full parameter docs, and strong annotations. The description covers why the tool exists, what it returns, and how to route to rigor_status. There is no missing information needed for an agent to select and invoke it safely and correctly.

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?

Schema coverage is 100%, so all nine parameters are already documented well, especially q which has a detailed substring-matching explanation. The description adds meaning by framing the q parameter's practical purpose (find prior work on a subject before commissioning it again) and framing the tool's overall filtering/pagination behavior. It also highlights status as a filter relevant to identifying stuck workflows, which complements the schema's parameter list.

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 names a specific verb (list/search), a specific resource (Rigor workflows), and enumerates the returned fields (status, progress, capacity usage, available actions) plus pagination and filtering. It clearly distinguishes itself from siblings like rigor_status by positioning itself as the workflow-level discovery tool and telling the agent to pair a q hit with rigor_status for deliverable reads, and differs from rigor_execute/rigor_plan which create/run workflows.

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?

It states explicit use cases: monitor workflow state, understand concurrent limit usage, identify stuck/completed workflows, and find prior work via q before commissioning it again. It gives a concrete routing rule: pair a q hit with rigor_status to read the deliverable. It does not explicitly say when not to use it, but the openWorldHint:false and the clear scope make the guidance strong and actionable.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedrigor_execute1 field changed
      • changedInput schema / properties / task_type / description
        Previous value: -"Optional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape."New value: +"Optional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, compose, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape."
    • Changedrigor_plan1 field changed
      • changedInput schema / properties / task_type / description
        Previous value: -"Optional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape."New value: +"Optional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, compose, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape."
  2. 1 tool update
    • Changedrigor_workflows6 fields changed
      • addedInput schema / properties / created_after
        Added value: +{
        +  "description": "ISO timestamp — only workflows created after this time",
        +  "type": "string"
        +}
      • addedInput schema / properties / created_before
        Added value: +{
        +  "description": "ISO timestamp — only workflows created before this time",
        +  "type": "string"
        +}
      • addedInput schema / properties / folder_id
        Added value: +{
        +  "description": "Filter by folder ID. Pass \"unassigned\" for workflows in no folder",
        +  "type": "string"
        +}
      • addedInput schema / properties / q
        Added value: +{
        +  "description": "Search the workflow title and task description. Every whitespace-separated term must appear in one or the other, as a case-insensitive substring — so \"vector search postgres\" matches a task described as \"add vector search to an existing Postgres-backed SaaS app\". Substring matching, not full-text: there is no stemming and no ranking, so \"migrating\" does not match \"migration\". Max 200 characters and 8 terms; punctuation is treated as a separator and wildcards are not supported.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / workflows / items / properties / history_locked
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / workflows / items / properties / task_excerpt
        Added value: +{
        +  "type": "string"
        +}
  3. 2 tool updates
    • Changedrigor_execute5 fields changed
      • addedInput schema / properties / preferences / properties / execution
        Added value: +{
        +  "description": "Set to 'direct' to compose the plan's content frameworks into a single LLM call and route cost-first, using a per-task-type model floor that moves when a cheaper model earns the work. Research steps, process steps (classification-verify, review protocol, synthesis) and the quality review each remain separate calls, so this is not a one-call-per-workflow guarantee: for atomic task types, which have a single content framework, the call count matches standard execution and the saving is the model. Supplying output_contract replaces the quality-review call with deterministic validation, which is one fewer call. No intermediate outputs. Available at every tier. Auto-selected for atomic task types when no execution preference is given. Falls back to standard execution when combined with require_approval or interactive mode, or when the plan exceeds the composition size limit. Attachments and prior_workflow_id chaining are NOT applied — use standard execution for those.",
        +  "enum": [
        +    "direct"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / preferences / properties / output_contract
        Added value: +{
        +  "description": "Only read when execution is \"direct\". Declares the JSON shape you want back, so the answer is generated against your schema and validated against it before return, instead of returned as prose you have to parse. A conforming run also skips the quality-review call, costing 1 LLM call rather than 2. The schema is closed: a record carrying an undeclared key is rejected exactly like one missing a required key.",
        +  "properties": {
        +    "count": {
        +      "description": "Bounds on the number of entries. Only read when shape is \"array\".",
        +      "properties": {
        +        "max": {
        +          "type": "number"
        +        },
        +        "min": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fields": {
        +      "description": "The schema for 1 record.",
        +      "items": {
        +        "properties": {
        +          "description": {
        +            "description": "Passed to the model as the field's description.",
        +            "type": "string"
        +          },
        +          "enum": {
        +            "description": "Restricts a string field to a fixed set of values.",
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "maximum": {
        +            "description": "Upper bound for a numeric field.",
        +            "type": "number"
        +          },
        +          "minimum": {
        +            "description": "Lower bound for a numeric field.",
        +            "type": "number"
        +          },
        +          "name": {
        +            "description": "The JSON key.",
        +            "type": "string"
        +          },
        +          "required": {
        +            "description": "Defaults to true. Set false for a field that may be absent.",
        +            "type": "boolean"
        +          },
        +          "type": {
        +            "description": "The value's type.",
        +            "enum": [
        +              "string",
        +              "number",
        +              "integer",
        +              "boolean",
        +              "array",
        +              "object"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "selection": {
        +      "description": "Use when you want the model to over-generate candidates and Rigor to sort, threshold, and cap them before the count bounds are checked.",
        +      "properties": {
        +        "maxCount": {
        +          "type": "number"
        +        },
        +        "minCount": {
        +          "type": "number"
        +        },
        +        "minScore": {
        +          "type": "number"
        +        },
        +        "scoreField": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "shape": {
        +      "description": "\"object\" for 1 record, \"array\" for 1 entry per input item.",
        +      "enum": [
        +        "object",
        +        "array"
        +      ],
        +      "type": "string"
        +    },
        +    "task_type": {
        +      "description": "Your own label for the work. Echoed into telemetry. Not read as a framework name and does not change routing.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "task_type",
        +    "shape",
        +    "fields"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / task_type / description
        Previous value: -"Optional hint to bypass automatic classification. Values: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation."New value: +"Optional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape."
      • addedOutput schema / properties / execution
        Added value: +{
        +  "description": "Present with value 'direct' when direct execution ran. Absent for standard multi-call execution.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / execution_fallback
        Added value: +{
        +  "description": "True when you explicitly requested direct execution and it could not be honoured — the workflow ran as standard multi-call instead. Never set for an auto-selected attempt, since you did not ask.",
        +  "type": "boolean"
        +}
    • Changedrigor_plan4 fields changed
      • addedInput schema / properties / preferences / properties / execution
        Added value: +{
        +  "description": "Set to 'direct' to compose the plan's content frameworks into a single LLM call and route cost-first, using a per-task-type model floor that moves when a cheaper model earns the work. Research steps, process steps (classification-verify, review protocol, synthesis) and the quality review each remain separate calls, so this is not a one-call-per-workflow guarantee: for atomic task types, which have a single content framework, the call count matches standard execution and the saving is the model. Supplying output_contract replaces the quality-review call with deterministic validation, which is one fewer call. No intermediate outputs. Available at every tier. Auto-selected for atomic task types when no execution preference is given. Falls back to standard execution when combined with require_approval or interactive mode, or when the plan exceeds the composition size limit. Attachments and prior_workflow_id chaining are NOT applied — use standard execution for those.",
        +  "enum": [
        +    "direct"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / preferences / properties / output_contract
        Added value: +{
        +  "description": "Only read when execution is \"direct\". Declares the JSON shape you want back, so the answer is generated against your schema and validated against it before return, instead of returned as prose you have to parse. A conforming run also skips the quality-review call, costing 1 LLM call rather than 2. The schema is closed: a record carrying an undeclared key is rejected exactly like one missing a required key.",
        +  "properties": {
        +    "count": {
        +      "description": "Bounds on the number of entries. Only read when shape is \"array\".",
        +      "properties": {
        +        "max": {
        +          "type": "number"
        +        },
        +        "min": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fields": {
        +      "description": "The schema for 1 record.",
        +      "items": {
        +        "properties": {
        +          "description": {
        +            "description": "Passed to the model as the field's description.",
        +            "type": "string"
        +          },
        +          "enum": {
        +            "description": "Restricts a string field to a fixed set of values.",
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "maximum": {
        +            "description": "Upper bound for a numeric field.",
        +            "type": "number"
        +          },
        +          "minimum": {
        +            "description": "Lower bound for a numeric field.",
        +            "type": "number"
        +          },
        +          "name": {
        +            "description": "The JSON key.",
        +            "type": "string"
        +          },
        +          "required": {
        +            "description": "Defaults to true. Set false for a field that may be absent.",
        +            "type": "boolean"
        +          },
        +          "type": {
        +            "description": "The value's type.",
        +            "enum": [
        +              "string",
        +              "number",
        +              "integer",
        +              "boolean",
        +              "array",
        +              "object"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "selection": {
        +      "description": "Use when you want the model to over-generate candidates and Rigor to sort, threshold, and cap them before the count bounds are checked.",
        +      "properties": {
        +        "maxCount": {
        +          "type": "number"
        +        },
        +        "minCount": {
        +          "type": "number"
        +        },
        +        "minScore": {
        +          "type": "number"
        +        },
        +        "scoreField": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "shape": {
        +      "description": "\"object\" for 1 record, \"array\" for 1 entry per input item.",
        +      "enum": [
        +        "object",
        +        "array"
        +      ],
        +      "type": "string"
        +    },
        +    "task_type": {
        +      "description": "Your own label for the work. Echoed into telemetry. Not read as a framework name and does not change routing.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "task_type",
        +    "shape",
        +    "fields"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / task_type / description
        Previous value: -"Optional hint to bypass automatic classification. Values: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation."New value: +"Optional hint to bypass automatic classification. Passing it also removes the slowest classification tiers from the critical path, so send it whenever you know the shape. Multi-step deliverable types: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation. Atomic single-call types, which auto-select direct execution: tag, score, rerank, extract_entities, parse_query, quick_research, quick_classification, quick_extraction, quick_scoring. Call GET /api/rigor/task-types for the full vocabulary with each type's shape."
      • addedOutput schema / properties / plan / properties / allowed_modes
        Added value: +{
        +  "description": "Execution modes available for this plan beyond the standard multi-call default. Contains 'direct' when the plan is eligible for direct execution; empty array when it is not.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
  4. 1 tool update
    • Changedrigor_status1 field changed
      • addedOutput schema / properties / workflow / properties / completed_step_summaries / items / properties / framework
        Added value: +{
        +  "type": "string"
        +}
  5. 15 tool updates
    • Changedburnrate_budget1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "alerts": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "date": {
        +      "type": "string"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "projection": {
        +      "properties": {
        +        "hourly_rate_usd": {
        +          "type": "number"
        +        },
        +        "hours_remaining": {
        +          "type": "number"
        +        },
        +        "projected_day_total_usd": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "spend": {
        +      "properties": {
        +        "by_model": {
        +          "items": {
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "total_calls": {
        +          "type": "number"
        +        },
        +        "total_usd": {
        +          "type": "number"
        +        },
        +        "total_usd_formatted": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedburnrate_estimate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "estimate": {
        +      "properties": {
        +        "estimate_complete": {
        +          "type": "boolean"
        +        },
        +        "pricing_as_of": {
        +          "type": "string"
        +        },
        +        "pricing_source": {
        +          "type": "string"
        +        },
        +        "recognized_step_count": {
        +          "type": "number"
        +        },
        +        "step_count": {
        +          "type": "number"
        +        },
        +        "steps": {
        +          "items": {
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "total_cost_usd": {
        +          "type": "number"
        +        },
        +        "total_cost_usd_formatted": {
        +          "type": "string"
        +        },
        +        "unrecognized_models": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "optimization_suggestions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedburnrate_optimize1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "optimized": {
        +      "properties": {
        +        "total_cost_usd": {
        +          "type": "number"
        +        },
        +        "total_cost_usd_formatted": {
        +          "type": "string"
        +        },
        +        "total_savings_pct": {
        +          "type": "number"
        +        },
        +        "total_savings_usd": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "original": {
        +      "properties": {
        +        "total_cost_usd": {
        +          "type": "number"
        +        },
        +        "total_cost_usd_formatted": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "steps": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "suggestions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedburnrate_track1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "actual_cost_usd": {
        +      "type": "number"
        +    },
        +    "actual_cost_usd_formatted": {
        +      "type": "string"
        +    },
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "input_tokens": {
        +      "type": "number"
        +    },
        +    "model": {
        +      "type": "string"
        +    },
        +    "output_tokens": {
        +      "type": "number"
        +    },
        +    "pricing_found": {
        +      "type": "boolean"
        +    },
        +    "provider": {
        +      "type": "string"
        +    },
        +    "record_id": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "tracked": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddedupq_check1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cache_age_seconds": {
        +      "type": "number"
        +    },
        +    "cache_hit": {
        +      "type": "string"
        +    },
        +    "content_hash": {
        +      "type": "string"
        +    },
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "match": {
        +      "properties": {
        +        "cached_at": {
        +          "type": "string"
        +        },
        +        "match_type": {
        +          "type": "string"
        +        },
        +        "similarity": {
        +          "type": "number"
        +        },
        +        "task_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "hit | miss | in_progress",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddedupq_complete1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "content_hash": {
        +      "type": "string"
        +    },
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "has_embedding": {
        +      "type": "boolean"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "stored": {
        +      "type": "boolean"
        +    },
        +    "task_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedguardrail_check1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "audit_id": {
        +      "type": "string"
        +    },
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "decision": {
        +      "enum": [
        +        "allow",
        +        "deny",
        +        "stub"
        +      ],
        +      "type": "string"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "policy_id": {
        +      "type": "string"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedguardrail_create_policy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "policy": {
        +      "properties": {
        +        "action_types": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "created_at": {
        +          "type": "string"
        +        },
        +        "description": {
        +          "type": "string"
        +        },
        +        "enabled": {
        +          "type": "boolean"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "priority": {
        +          "type": "number"
        +        },
        +        "rules": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedpitfalldb_query1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "pitfalls": {
        +      "items": {
        +        "properties": {
        +          "description": {
        +            "type": "string"
        +          },
        +          "fix": {
        +            "type": "string"
        +          },
        +          "fix_confidence": {
        +            "type": "number"
        +          },
        +          "frequency": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "reports": {
        +            "type": "number"
        +          },
        +          "severity": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "total_matching": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedpitfalldb_report1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "linked_pitfall_id": {
        +      "type": "string"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "report_id": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "verified": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedqualitygate_validate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks_run": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "credits_used": {
        +      "type": "number"
        +    },
        +    "fallback_behavior": {
        +      "type": "string"
        +    },
        +    "issues": {
        +      "items": {
        +        "properties": {
        +          "message": {
        +            "type": "string"
        +          },
        +          "severity": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    },
        +    "summary": {
        +      "properties": {
        +        "errors": {
        +          "type": "number"
        +        },
        +        "total": {
        +          "type": "number"
        +        },
        +        "warnings": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "enum": [
        +        "pass",
        +        "warn",
        +        "fail"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrigor_execute1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "available_modes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "delivery_mode": {
        +      "type": "string"
        +    },
        +    "estimated_credits": {
        +      "type": "number"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "poll_url": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "task_type": {
        +      "type": "string"
        +    },
        +    "value_class": {
        +      "type": "string"
        +    },
        +    "workflow_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrigor_plan1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "generated_title": {
        +      "type": "string"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "plan": {
        +      "properties": {
        +        "alternatives": {
        +          "type": "object"
        +        },
        +        "classification": {
        +          "properties": {
        +            "task_type": {
        +              "type": "string"
        +            },
        +            "value_class": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "cost": {
        +          "properties": {
        +            "credits": {
        +              "type": "number"
        +            },
        +            "range": {
        +              "type": "object"
        +            },
        +            "usd": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "info": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "rigor_level": {
        +          "type": "string"
        +        },
        +        "sequence": {
        +          "items": {
        +            "properties": {
        +              "estimated_credits": {
        +                "type": "number"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "step": {
        +                "type": "number"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "warnings": {
        +          "items": {
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "suggestion": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "workflow_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrigor_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "workflow": {
        +      "properties": {
        +        "actual_steps_executed": {
        +          "type": "number"
        +        },
        +        "completed_at": {
        +          "type": "string"
        +        },
        +        "completed_step_summaries": {
        +          "items": {
        +            "properties": {
        +              "model": {
        +                "type": "string"
        +              },
        +              "step": {
        +                "type": "number"
        +              },
        +              "summary": {
        +                "type": "string"
        +              },
        +              "tool": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "created_at": {
        +          "type": "string"
        +        },
        +        "credits_used": {
        +          "type": "number"
        +        },
        +        "current_step": {
        +          "type": "number"
        +        },
        +        "deliverable": {
        +          "properties": {
        +            "sections": {
        +              "items": {
        +                "properties": {
        +                  "content": {
        +                    "type": "string"
        +                  },
        +                  "heading": {
        +                    "type": "string"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "title": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "error": {
        +          "type": "string"
        +        },
        +        "generated_title": {
        +          "type": "string"
        +        },
        +        "quality_review": {
        +          "properties": {
        +            "path_to_100": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "score": {
        +              "type": "number"
        +            },
        +            "summary": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "status": {
        +          "type": "string"
        +        },
        +        "task_type": {
        +          "type": "string"
        +        },
        +        "total_steps": {
        +          "type": "number"
        +        },
        +        "workflow_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrigor_workflows1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "concurrent_summary": {
        +      "properties": {
        +        "active": {
        +          "type": "number"
        +        },
        +        "limit": {
        +          "type": "number"
        +        },
        +        "remaining": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "credits_remaining": {
        +      "type": "number"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "pagination": {
        +      "properties": {
        +        "cursor": {
        +          "type": "string"
        +        },
        +        "has_more": {
        +          "type": "boolean"
        +        },
        +        "limit": {
        +          "type": "number"
        +        },
        +        "total_count": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "workflows": {
        +      "items": {
        +        "properties": {
        +          "available_actions": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "completed_at": {
        +            "type": "string"
        +          },
        +          "counts_toward_limit": {
        +            "type": "boolean"
        +          },
        +          "created_at": {
        +            "type": "string"
        +          },
        +          "credits_charged": {
        +            "type": "number"
        +          },
        +          "current_step": {
        +            "type": "number"
        +          },
        +          "generated_title": {
        +            "type": "string"
        +          },
        +          "started_at": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "task_type": {
        +            "type": "string"
        +          },
        +          "total_steps": {
        +            "type": "number"
        +          },
        +          "workflow_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
  6. 1 tool update
    • Changedrigor_plan8 fields changed
      • addedInput schema / properties / preferences / properties / add_frameworks
        Added value: +{
        +  "description": "Inject additional frameworks into the plan.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / preferences / properties / approval_before_step
        Added value: +{
        +  "description": "Zero-based step indices where approval gates are inserted.",
        +  "items": {
        +    "type": "number"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / preferences / properties / max_budget_usd / description
        Previous value: -"Maximum budget in USD. Plan will warn if estimated cost exceeds this."New value: +"Budget ceiling in USD. Triggers warning if plan exceeds this."
      • addedInput schema / properties / preferences / properties / only_frameworks
        Added value: +{
        +  "description": "Restrict plan to only these frameworks (mutex with skip_frameworks).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / preferences / properties / require_approval
        Added value: +{
        +  "description": "Pause at pending_approval before the final step.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / preferences / properties / rigor_level / description
        Previous value: -"Depth of analysis: quick (fast, lower cost), standard (default, balanced), thorough (deep review, higher cost)."New value: +"Review depth. Default auto-detected from task complexity."
      • addedInput schema / properties / preferences / properties / rigor_level / enum
        Added value: +[
        +  "quick",
        +  "standard",
        +  "thorough"
        +]
      • addedInput schema / properties / preferences / properties / skip_frameworks
        Added value: +{
        +  "description": "Framework names to exclude from the plan.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
  7. 2 tool updates
    • Changedburnrate_budget1 field changed
      • changedInput schema / properties / daily_limit / description
        Previous value: -"Optional. Daily budget in USD. Enables alerts."New value: +"Optional. Daily budget in USD (e.g., 10.0 for a $10/day cap). Enables budget alerts and remaining-balance calculation."
    • Changedguardrail_check1 field changed
      • changedInput schema / properties / proposed_action / description
        Previous value: -"Action to evaluate. Must contain a 'type' field."New value: +"Action to evaluate. Must contain a 'type' field. Example: {\"type\": \"http_request\", \"url\": \"https://external.example.com\"} or {\"type\": \"file_write\", \"path\": \"/etc/config\"}."
  8. 3 tool updates
    • Changedrigor_execute5 fields changed
      • removedInput schema / properties / preferences / properties / quality_level
        Removed value: -{
        -  "description": "minimum | standard | maximum.",
        -  "type": "string"
        -}
      • addedInput schema / properties / preferences / properties / rigor_level
        Added value: +{
        +  "description": "quick | standard (default) | thorough. Controls analysis depth and cost.",
        +  "type": "string"
        +}
      • removedInput schema / properties / preferences / properties / tool_scope
        Removed value: -{
        -  "description": "mandatory | recommended | all.",
        -  "type": "string"
        -}
      • changedInput schema / properties / task_description / description
        Previous value: -"Natural language description of the task. Be specific."New value: +"Natural language description of the task. Be specific — include what you want produced, constraints, and context. Example: 'Design a caching layer for our API gateway with Redis integration.'"
      • changedInput schema / properties / task_type / description
        Previous value: -"Optional classification hint."New value: +"Optional hint to bypass automatic classification. Values: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation."
    • Changedrigor_plan4 fields changed
      • removedInput schema / properties / preferences / properties / quality_level
        Removed value: -{
        -  "description": "minimum | standard | maximum. Default: standard.",
        -  "type": "string"
        -}
      • addedInput schema / properties / preferences / properties / rigor_level
        Added value: +{
        +  "description": "Depth of analysis: quick (fast, lower cost), standard (default, balanced), thorough (deep review, higher cost).",
        +  "type": "string"
        +}
      • removedInput schema / properties / preferences / properties / tool_scope
        Removed value: -{
        -  "description": "mandatory | recommended | all. Default: recommended.",
        -  "type": "string"
        -}
      • changedInput schema / properties / task_type / description
        Previous value: -"Optional hint to bypass automatic classification. Values: solution_design, governance_change, requirements_analysis, incident_response, code_implementation, competitive_scan, financial_analysis, deployment_execution."New value: +"Optional hint to bypass automatic classification. Values: solution_design, requirements_analysis, code_implementation, code_review, bug_fix, root_cause_analysis, incident_response, deployment_execution, competitive_scan, financial_analysis, research_task, documentation, governance_change, compliance_audit, data_security_assessment, performance_optimization, user_story_definition, implementation_prompt_generation."
    • Changedrigor_workflows1 field changed
      • changedInput schema / properties / status / description
        Previous value: -"Filter by status (comma-separated). E.g. \"halted,failed,pending_approval\""New value: +"Filter by status (comma-separated). Valid values: executing, step_executing, completed, failed, halted, pending_approval, cancelled. E.g. \"halted,failed,pending_approval\""
  9. 1 tool update
    • Addedrigor_workflows
  10. 5 tool updates
    • Removedguardrail_list_policies
    • Removedpitfalldb_stats
    • Removedqualitygate_trends
    • Removedrigor_approve
    • Removedrigor_resume
  11. 2 tool updates
    • Addedrigor_approve
    • Addedrigor_resume
  12. 3 tool updates
    • Addedrigor_execute
    • Addedrigor_plan
    • Addedrigor_status
  13. 4 tool updates
    • Changedburnrate_optimize1 field changed
      • changedInput schema / properties / plan / description
        Previous value: -"Array of plan steps. Same schema as burnrate.estimate."New value: +"Array of plan steps. Same schema as burnrate_estimate: each step needs step, provider, model, estimated_input_tokens, estimated_output_tokens."
    • Changedburnrate_track3 fields changed
      • changedInput schema / properties / model / description
        Previous value: -"Model name: claude-sonnet-4-6, gpt-4o, etc."New value: +"Model identifier as returned by the provider. Examples: claude-sonnet-4-6, gpt-4o, gemini-2.0-flash, mistral-large-latest. Unknown models are accepted but cost may show as $0."
      • changedInput schema / properties / provider / description
        Previous value: -"LLM provider: anthropic, openai, etc."New value: +"LLM provider identifier. Supported: anthropic, openai, google, mistral, cohere, deepseek, together, fireworks, groq. Must match the provider of the model used."
      • changedInput schema / properties / task_id / description
        Previous value: -"Optional task ID for cross-referencing with DedupQ."New value: +"Optional task ID for cross-referencing spend with DedupQ deduplication results. Use the same task_id passed to dedupq_check to link cost tracking with deduplication."
    • Changedguardrail_create_policy3 fields changed
      • changedInput schema / properties / action_types / description
        Previous value: -"Optional. Restrict policy to specific action types. Examples: ['file_write', 'api_call', 'db_delete']. Omit to apply to all action types."New value: +"Optional. Restrict this policy to only evaluate when proposed_action.type matches one of these values. Examples: ['file_write', 'api_call', 'db_delete']. Omit to apply the policy to all action types regardless of type field."
      • changedInput schema / properties / description / description
        Previous value: -"Optional human-readable description of what this policy enforces."New value: +"Optional human-readable summary of what this policy enforces. Returned in guardrail_check responses and guardrail_list_policies output for auditability."
      • changedInput schema / properties / rules / description
        Previous value: -"Rule objects evaluated against proposed_action. Leaf operators: eq, starts_with, contains, gt, lt. Compound operators: and, or, not (nest rules array). Example: {operator:'and', rules:[{operator:'eq',field:'action_type',value:'file_write'},{operator:'contains',field:'path',value:'/prod/'}]}."New value: +"Array of rule objects evaluated against the proposed_action in guardrail_check. Leaf operators: eq, starts_with, contains, gt, lt (compare field to value). Compound operators: and, or, not (nest sub-rules in a rules array). Example: [{operator:'eq', field:'type', value:'file_write'}] blocks all file writes. Nested example: [{operator:'and', rules:[{operator:'eq',field:'type',value:'api_call'},{operator:'contains',field:'url',value:'prod'}]}] blocks prod API calls."
    • Changedqualitygate_trends2 fields changed
      • changedInput schema / properties / check_type / description
        Previous value: -"Optional filter by check type."New value: +"Optional. Filter trends to a single check type: directive_compliance, schema_validation, code_syntax, tone, or factual_claims. Omit to see aggregate trends across all check types."
      • changedInput schema / properties / days / description
        Previous value: -"Lookback window, 1-90. Default: 30."New value: +"Number of days to look back. Range: 1-90. Default: 30. Use 7 for recent trends, 30 for monthly patterns, 90 for long-term quality tracking."
  14. 1 tool update
    • Changedguardrail_create_policy8 fields changed
      • changedInput schema / properties / action_types / description
        Previous value: -"Optional. Restrict to action types."New value: +"Optional. Restrict policy to specific action types. Examples: ['file_write', 'api_call', 'db_delete']. Omit to apply to all action types."
      • changedInput schema / properties / description / description
        Previous value: -"Optional policy description."New value: +"Optional human-readable description of what this policy enforces."
      • changedInput schema / properties / name / description
        Previous value: -"Unique policy name."New value: +"Unique policy name per org. Examples: 'no-delete-in-prod', 'budget-cap-50', 'pii-block'."
      • changedInput schema / properties / rules / description
        Previous value: -"Rule objects. Operators: eq, starts_with, contains, gt, lt, and, or, not."New value: +"Rule objects evaluated against proposed_action. Leaf operators: eq, starts_with, contains, gt, lt. Compound operators: and, or, not (nest rules array). Example: {operator:'and', rules:[{operator:'eq',field:'action_type',value:'file_write'},{operator:'contains',field:'path',value:'/prod/'}]}."
      • changedInput schema / properties / rules / items / properties / field / description
        Previous value: -"Field path on proposed_action."New value: +"Field path on proposed_action (e.g. 'action_type', 'path', 'amount')."
      • changedInput schema / properties / rules / items / properties / operator / description
        Previous value: -"Rule operator."New value: +"Rule operator: eq | starts_with | contains | gt | lt | and | or | not."
      • changedInput schema / properties / rules / items / properties / rules / description
        Previous value: -"Nested rules for compound operators."New value: +"Nested rules for compound operators (and/or/not)."
      • changedInput schema / properties / rules / items / properties / value / description
        Previous value: -"Comparison value for the rule operator. String, number, or boolean (as string)."New value: +"Comparison value for leaf operators. String, number, or boolean as string."
  15. 14 tool updates
    • First observedburnrate_budget
    • First observedburnrate_estimate
    • First observedburnrate_optimize
    • First observedburnrate_track
    • First observeddedupq_check
    • First observeddedupq_complete
    • First observedguardrail_check
    • First observedguardrail_create_policy
    • First observedguardrail_list_policies
    • First observedpitfalldb_query
    • First observedpitfalldb_report
    • First observedpitfalldb_stats
    • First observedqualitygate_trends
    • First observedqualitygate_validate

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources