Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Answer configuration questions about Kconfig trees (Linux kernel, Zephyr, U-Boot, Buildroot, ...). Start with kconfig_load (Linux needs env={"SRCARCH": "x86", "ARCH": "x86"}; pass shell="dry" if the compiler isn't installed or on Windows). Then: kconfig_why_not explains every unmet dependency behind a symbol and proposes a VERIFIED minimal set of changes; kconfig_symbol shows one symbol; kconfig_set applies a change and reports what else changed; kconfig_save writes the .config. Symbol names work with or without the CONFIG_ prefix.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
kconfig_loadA

Parse a Kconfig tree (and optionally a .config) into a session named name.

kconfig_path is the top-level Kconfig file; its directory becomes srctree. env supplies the variables the tree expands - Linux needs SRCARCH and ARCH (e.g. {"SRCARCH": "x86", "ARCH": "x86_64"}); Zephyr needs ZEPHYR_BASE and friends. Missing ones are named in the error. shell: "run" executes the tree's $(shell,...) compiler probes with a POSIX sh, as make menuconfig would. "dry" runs nothing (no compiler needed, works on Windows); compiler-feature symbols then read as absent. A Linux tree takes 10-40 s to parse; the session stays loaded.

kconfig_unloadC

Forget a loaded session.

kconfig_sessionsB

List loaded sessions.

kconfig_symbolB

Everything about one symbol: type, prompt, current value and why, help text, where it's defined, its dependencies, and what selects/implies it.

kconfig_why_notA

Explain why a symbol isn't (or can't be) at value, and how to fix it.

Walks every unmet depends on, visible if, if block, choice and select/default condition with file:line, recursing into the symbols they name. Then searches for a minimal set of assignments and VERIFIES it by applying it to the tree - a fix is only shown if Kconfig agrees it works, along with its side effects. value: "y", "m", or "n" (why can't I turn it off?).

kconfig_what_selectsB

Who forces this symbol on (select), who suggests it (imply), and what it selects/implies itself - with current values and locations.

kconfig_searchB

Find symbols whose name, prompt or help text matches query (case-insensitive; a regex is accepted). Name matches rank first.

kconfig_setA

Assign a value (y/m/n for bool/tristate; a number or string otherwise) as if in menuconfig, then report everything else that changed as a result. If the value doesn't stick (hidden prompt, unmet dependency, choice rules) it says so - use kconfig_why_not to see why.

kconfig_diffA

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.

kconfig_saveC

Write the current configuration. minimal=True writes a defconfig-style file with only the values that differ from defaults.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a distinct role: load/unload/list sessions, search symbols, inspect one symbol, set a value, diagnose why a value cannot be set, inspect select/imply relationships, save, and diff. kconfig_set and kconfig_why_not are complementary rather than overlapping: set attempts an assignment and why_not explains failures and verified fixes.

Naming Consistency4/5

All tools use a consistent kconfig_ prefix and snake_case, making the namespace predictable. Most names are action-oriented, though kconfig_sessions and kconfig_symbol are noun-based rather than verb-based, a minor deviation from the otherwise consistent convention.

Tool Count5/5

Ten tools is well-scoped for a Kconfig exploration and configuration server. Each tool covers a meaningful part of the workflow without obvious redundancy or excessive granularity.

Completeness4/5

The surface covers the core lifecycle: loading a tree/session, searching and inspecting symbols, setting values, diagnosing failures, examining select/imply relationships, saving, and diffing configs. A minor gap is the lack of an explicit menu-structure or full-symbol-listing tool, though search and symbol inspection can work around this.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues