Kconfig MCP server
Why can't I enable CONFIG_X? Explains Kconfig dependencies and finds a verified fix.
0 stars118 downloads/wk
Reviews
Write oneNobody has reviewed Kconfig yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Kconfig tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it
- Code scan8 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Kconfig compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Downloads a week
- 118
- more than 66% of 12,191 servers with a package
Install Kconfig in Claude Code, Cursor or VS Code
claude mcp add kconfig-mcp -- uvx kconfig-mcp
What the publisher says
From the Kconfig repository's README, as published. We do not edit it. Read it on GitHub
kconfig-mcp
"Why can't I enable CONFIGX?", answered with file:line and a fix that's been checked.**
<!-- mcp-name: io.github.0xmortuex/kconfig-mcp -->
kconfig-mcp is an MCP server that lets an AI agent reason about Kconfig, the configuration system used by the Linux kernel, Zephyr, U-Boot, Buildroot and others.
Everyone who has configured a kernel has hit this: the option you want isn't in menuconfig, or it's there but greyed out, and the reason is five depends on hops away in a different directory. kconfig-mcp walks that chain for you. Then it searches for the smallest set of changes that would unlock the option, and applies them to the real tree to verify they work before it shows them to you.
What it looks like
This is real output on the current Linux tree (18,913 symbols) for x86:
> kconfig_why_not X86_X2APIC
X86_X2APIC = n (default), needs y - bool at arch/x86/Kconfig:463
its prompt (arch/x86/Kconfig:463) is visible only if
X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST), which is n:
needs any one of (2 options, all currently too low):
IRQ_REMAP = n (default), needs y - bool at drivers/iommu/Kconfig:201
its prompt is visible only if X86_64 && X86_IO_APIC && PCI_MSI && ACPI && IOMMU_SUPPORT:
PCI_MSI = n (default), needs y - bool at drivers/pci/Kconfig:44
its prompt is visible only if PCI, which is n:
PCI = n (default) - set PCI=y directly.
HYPERVISOR_GUEST = n (default), needs y - bool at arch/x86/Kconfig:787
its prompt is visible - set HYPERVISOR_GUEST=y directly.
Verified fix (2 change(s)): HYPERVISOR_GUEST=y, X86_X2APIC=y
HYPERVISOR_GUEST: arch/x86/Kconfig:787
X86_X2APIC: arch/x86/Kconfig:463
Unverified alternatives: PCI=y, PCI_MSI=y, IRQ_REMAP=y, X86_X2APIC=y
> kconfig_set HYPERVISOR_GUEST y
CONFIG_HYPERVISOR_GUEST: 'n' -> 'y'.
1 other symbol(s) changed as a consequence: X86_X2APIC n->yThe same question on a 32-bit build (ARCH=i386) ends somewhere no symbol change can reach, and the tool says so instead of inventing a fix:
64BIT = n (default), needs y - bool at arch/x86/Kconfig:3
requires "i386" = "x86", which compares two constants and is always false here.
One side was probably expanded from an environment variable (like $(ARCH)) when
the tree was loaded: no symbol change can fix this - reload with a different env.
No verified fix: every route ends in something no assignment can change.Why it's built this way
needs MODULES, bools promote m to y, choices deselect their other members, select overrides depends on, and default y turns things on silently. So every candidate plan is applied to the loaded tree and checked. Only plans that really reach the goal are shown as fixes, together with their side effects (what else select/imply/defaults switch on or off).
- Fixes are verified, not guessed. Kconfig is full of edge cases: tristate m
since 2020 and can't parse Linux's newer modules, transitional and depends on X if Y syntax. kconfig-mcp rewrites those lines as files are read, keeping every line number exact. depends on X if Y is lowered with a line-by-line port of exprtranscompare from scripts/kconfig/expr.c, so it behaves exactly as kconfig does, including how kconfig treats !S when S is m.
- It parses current Linux. It's built on Kconfiglib, which hasn't had a release
unset variable silently becomes "". kconfig-mcp tracks undefined variables and names them in the error (undefined variable(s): SRCARCH (the arch/ directory to use, ...)) instead of leaving you with arch//Kconfig not found.
- Environment problems are named. Linux sources arch/$(SRCARCH)/Kconfig, and an
Install
pip install kconfig-mcp
claude mcp add kconfig -- kconfig-mcpShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Kconfig: common questions
- Is Kconfig MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Kconfig safety report
- How do I install Kconfig?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Kconfig need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Kconfig maintained?
- The last commit was 24 days ago (2026-10-11). The latest release is v0.1.0.
- How does Kconfig compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); downloads a week 118 (more than 66% of 12,191 servers with a package). Full comparison.