Skip to main content
Glama
Pappa

mcp-oidc-proxy

by Pappa

validate_config

Validate OIDC proxy config files: detect unknown keys, type errors, and invalid values in settings.yaml, users.yaml, and bootstrap.yaml before they cause startup or reload failures. Read-only operation.

Instructions

Validate the running configuration directory (settings.yaml, users.yaml, bootstrap.yaml): unknown keys as warnings, wrong types and refused values as errors. settings.yaml and users.yaml findings are what a startup or the next reload would hit; bootstrap.yaml findings are what would stop the NEXT startup (the bootstrap surface loads at startup only). Read-only and inert: it re-reads the files through the same loaders, runs no hook and loads no plugin. 'valid' is false on any error, and on a warning too under strict mode, which is when a start would refuse. 'strict' defaults to this server's effective validation mode; pass it explicitly to override.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
strictNoTreat warnings as failures, like the server's --strict-config. A directory declaring config_validation: strict is strict regardless.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries full behavioral burden. It explicitly states read-only, inert, runs no hook, loads no plugin, and explains the strict mode behavior and the impact of bootstrap findings on next startup. This fully discloses the tool's effects and semantics.

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

Conciseness4/5

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

The description is moderately long but every sentence contributes: purpose, file-specific behaviors, read-only/inert nature, and strict mode semantics. It is front-loaded with the core purpose and then explains nuances, making it efficient without being verbose.

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 there is no output schema, the description explains what 'valid' means and how strict mode affects the result. It covers the single optional parameter and its default behavior. The tool is fully specified for an agent to call correctly, including edge cases like bootstrap.yaml affecting next startup.

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% and the parameter description in the schema already explains strict behavior. The tool description adds value by stating that strict defaults to the server's effective mode and can be overridden, providing context beyond the schema. This is a meaningful addition.

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 configuration files (settings.yaml, users.yaml, bootstrap.yaml) and specifies the action (validate). It distinguishes itself from siblings like get_settings and reload_config by focusing on validation rather than retrieval or mutation. The phrase 'running configuration directory' specifies the resource 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 implies usage for pre-flight checks before reload or startup, but doesn't explicitly say when to use it versus alternatives. It does provide clear context that it's read-only and inert, which tells the agent it's safe and non-mutating, but lacks an explicit 'use this instead of X' statement.

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