Skip to main content
Glama

configure_disabled

Idempotent

Disable or re-enable AI oracle and provider backends at runtime, persisting to config without restart. Manage the denylist to control which models participate.

Instructions

Turn oracles/providers OFF (or back on) at runtime — persisted to the config file, no restart. A disabled backend is dropped from every council/tier and its dedicated tool returns kind='disabled' (distinct from 'not configured'). Name an oracle key/alias ('grok', 'm3', 'opus48') or a whole provider ('atlas', 'openrouter', 'ollama', 'lmstudio'). Call with no args to see the current denylist. Config wins over the ASK_FABLE_DISABLED env var.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
setNoREPLACE the whole denylist with exactly these tokens (wins over `disable`/`enable`). Pass [] to remove the config override; if an ASK_FABLE_DISABLED env var is set it then applies again (the result's `disabled` shows the effective list either way).
enableNoTokens to REMOVE from the denylist (re-enable).
disableNoTokens to ADD to the denylist. An oracle key or alias ('grok', 'codex', 'm3', 'opus48') disables that one; a provider name ('atlas', 'openrouter', 'ollama', 'lmstudio') disables all of its models at once. Disabled backends are dropped from every council and their dedicated tool returns kind='disabled'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.18.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate this is a non-read-only, idempotent operation, and the description adds substantial behavioral detail: changes persist to the config file, no restart is needed, disabled backends disappear from every council/tier, and their tools return kind='disabled' versus 'not configured'. It also explains env var precedence and the effect of set=[], which goes well beyond the 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, dense, and well ordered: core action first, followed by behavioral consequences, token syntax, no-args usage, and precedence rule. Every sentence contributes useful information; there is no filler or redundancy.

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

Completeness5/5

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

Despite having no output schema, the description covers the essential return-related behavior: disabled backends return kind='disabled', and calling with no arguments shows the current denylist. It also covers persistence, env var interaction, and how providers vs individual keys are handled. No critical operational detail is missing for an agent to invoke this 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 the baseline is 3, but the description adds practical meaning: examples of oracle keys/aliases and provider names, provider-level disable semantics, and the runtime persistence context. The schema already documents replace/add/remove semantics well; the description enriches it with concrete usage guidance without repeating the schema verbatim.

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: 'Turn oracles/providers OFF (or back on) at runtime.' It clearly distinguishes the tool's purpose from sibling tools by explaining the persisted denylist effect and the kind='disabled' behavior. It also covers the no-argument invocation for viewing the denylist, leaving no ambiguity about what the tool does.

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 operational context: runtime persistence, no restart required, and precedence of config over the ASK_FABLE_DISABLED env var. It implies when to use this tool (managing disabled backends) but does not explicitly contrast it with alternatives like configure_council or unload_lms_model. That omission prevents a 5, but the context is strong.

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