Skip to main content
Glama

update_config

Set Pi-hole settings by specifying an element and value, with a preview unless confirmed. Optionally defer FTL restarts; authentication settings are rejected.

Instructions

Set a Pi-hole setting, e.g. element='dns.upstreams', value=['9.9.9.9'].

Preview (current value) unless confirm=true. Some settings restart FTL; restart=false defers that. Authentication settings (webserver.api.*) are refused.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valueYes
confirmNo
elementYes
restartNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does notably well: it discloses a preview-by-default (dry-run) mode, the confirm gate for actual mutation, the side effect that some settings restart FTL, and a hard refusal for authentication settings. It omits any note on permissions/privilege requirements, but the destructive and side-effect profile is well covered.

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

Conciseness4/5

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

Four short sentences, front-loaded with purpose and a use-it-now example, then the gating and side-effect caveats. It is compact and every sentence adds information, though the run-on structure of the first sentence is slightly awkward.

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 explanation is unnecessary, and the description covers the mutation gate, side effects, and rejected inputs. An agent could call this correctly; only privilege requirements and value-format expectations for arbitrary elements are left unstated.

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 description coverage is 0%, so the description must compensate, and it explains all four parameters: element via the dns.upstreams example, value via the list example, confirm as the preview/apply gate, and restart as the FTL-restart deferral switch. Only the exact expected value type/format for arbitrary elements is left to inference.

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

Purpose4/5

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

The description states a specific verb and resource ("Set a Pi-hole setting") and anchors it with a concrete example (element='dns.upstreams', value=['9.9.9.9']), making the intent unambiguous. It does not explicitly contrast with name-siblings like add_config_item, remove_config_item, or get_config, so it falls short of full sibling differentiation.

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 communicates clear usage conditions: the call previews by default and only applies when confirm=true, restart=false defers the FTL restart, and webserver.api.* settings are refused outright. It never names an explicit alternative tool (e.g. get_config for reading), so it stops short of full when/when-not/alternatives guidance.

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