Skip to main content
Glama

kconfig_diff

Compare current Kconfig values with another config file to identify differences; use fragment mode to check only symbols mentioned in a defconfig or fragment.

Instructions

Compare the session's current values with another config file.

A full .config lists every symbol that has a value, so a bool/tristate missing from it is n - that's the default. For a defconfig or a config fragment (only the interesting lines), pass fragment=True to compare just the symbols the file mentions.

Tool call template

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

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

Input Schema

NameRequiredDescriptionDefault
nameYes
limitNo
fragmentNo
other_configYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full burden. It does disclose genuinely useful comparison semantics — that a bool/tristate absent from a full .config means n, and that fragment mode only compares mentioned symbols. However, it says nothing about whether the operation mutates anything, what happens if other_config does not exist, or how the comparison result is capped.

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?

Three sentences with the core action front-loaded and the mode-switch guidance immediately after. The middle sentence about bool/tristate defaults is non-obvious domain context and earns its space, though the phrasing is slightly meandering.

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

Completeness3/5

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

An output schema exists, so return values need not be restated, and the fragment-mode semantics are well covered. For a four-parameter tool with zero schema descriptions and no annotations, however, the unexplained 'limit' and the loose binding of 'name' to a session leave real gaps for correct invocation.

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 0%, so the description must compensate, and it only partly does: 'fragment' is explained thoroughly with its default-mode implications, and 'other_config' is implied by 'another config file'. 'name' is never tied to the session concept and 'limit' (default 100) is never mentioned, leaving its truncation/pagination behavior opaque.

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 opens with a specific verb and two specific resources: 'Compare the session's current values with another config file.' That is unambiguous about what the tool does and is clearly distinct from load/save/set siblings. It does not explicitly name an alternative tool, which keeps it below a 5.

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 gives conditional usage guidance for the main mode switch: full .config vs defconfig/fragment, and tells the agent to pass fragment=True for the latter. What is missing is routing guidance against siblings such as kconfig_symbol or kconfig_search, which an agent might reasonably consider for inspecting values.

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