Skip to main content
Glama
pamela-0

boot-doctor-mcp

by pamela-0

boot-doctor-mcp

PyPI License: MIT

A real MCP server for PC no-boot / no-display / no-POST troubleshooting. No LLM guessing at hardware causes — a plain, deterministic rule engine plus real, sourced BIOS beep-code tables.

Why deterministic, not an LLM

Nobody wants a language model hallucinating "your GPU is dead" when it isn't. Hardware advice where being wrong costs real money and real time deserves a fixed, auditable rule set, not a plausible-sounding guess. Every answer this tool gives traces back to a real source or a fixed, testable rule — never an invented explanation.

Related MCP server: Talk to Your PC MCP Server

Tools

diagnose_symptoms(powers_on, fans_spin=None, fans_stay_running=None, display_output=False, tried_cmos_reset=False, tried_minimal_config=False, tried_different_cable_or_monitor=False)

Real, ranked next troubleshooting steps, given what's already been tried — the same power-stage → CMOS reset → minimal-config-test → swap-test sequence a real technician runs, ordered by what's cheapest to rule out first. Not a diagnosis of the exact broken part; a real repair often still needs a swap test against known-good parts, and this tool says so explicitly rather than pretending symptom-matching alone can replace it.

lookup_beep_code(bios_type, pattern)

Looks up a beep pattern (e.g. "10 short", "1 long, 2 short", "continuous") against real, sourced BIOS beep-code tables.

bios_type is one of:

  • ami_legacy — classic AMIBIOS

  • ami_aptio — modern AMI Aptio (UEFI), kept separate on purpose: legacy AMIBIOS and Aptio use genuinely different codes for the same beep counts, a mistake common in beginner troubleshooting guides that merge them into one table

  • award_phoenix — Award/Phoenix BIOS

Returns real information, not a fabricated guess, when the exact pattern isn't in the table — modern boards increasingly have no speaker at all and use debug LEDs instead, so "no match" is itself a real, honest result.

Sources

Beep-code data fetched and cross-referenced live (not from training-data memory) from IONOS and Thomas-Krenn. Real, stated limitation: OEMs (HP, Dell, ASUS, etc.) sometimes customize or extend these codes, and modern boards increasingly skip the speaker entirely in favor of debug LEDs — a documented pattern not matching here doesn't necessarily mean nothing is wrong.

Install

pip install boot-doctor-mcp

Add to your MCP client config (e.g. Claude Code):

claude mcp add boot-doctor-mcp -- boot-doctor-mcp

Or run directly for local testing:

python -m boot_doctor_mcp.server

Skill

A SKILL.md ships inside this same package — not a separate download — and teaches Claude when and how to use these tools correctly (e.g. never guessing a BIOS type, never stating a broken component as fact from symptoms alone). Install it into your project:

boot-doctor-mcp-install-skill

Run it from the project root you want the skill active in — it writes to .claude/skills/boot-doctor-mcp/SKILL.md relative to your current directory.

Development

pip install -e ".[dev]"
pytest

Available Tools

2 tools
diagnose_symptomsA

Real, ranked next troubleshooting steps for a PC that won't boot or show any display, given what's already been tried. Not a diagnosis of the exact broken part — a real technician's standard sequence, ordered by what's cheapest/fastest to rule out first.

powers_on: does ANYTHING happen when you press the power button (any light, any fan movement, any sound) — false means dead/no-power, a completely different problem class than a POST failure. fans_spin: do the fans spin at all when powered on. fans_stay_running: do they keep spinning, or spin briefly then stop (the latter is a real, specific PSU/motherboard protection signal). display_output: is there ANY video signal reaching the monitor. tried_cmos_reset: already removed the CMOS battery / used the CLR_CMOS jumper. tried_minimal_config: already stripped to CPU + 1 RAM stick + no discrete GPU (or GPU alone) to isolate the cause. tried_different_cable_or_monitor: already confirmed the monitor and cable work on a different, known-good computer.

ParametersJSON Schema
NameRequiredDescriptionDefault
fans_spinNo
powers_onYes
display_outputNo
tried_cmos_resetNo
fans_stay_runningNo
tried_minimal_configNo
tried_different_cable_or_monitorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool outputs a ranked sequence based on cost/speed, not a definitive diagnosis. It also explains the semantic difference between 'fans spin briefly then stop' as a PSU/motherboard signal, adding useful behavioral context. It does not mention side effects, but the tool is likely read-only and non-destructive, which is not stated but also not contradicted.

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 front-loaded with the main purpose in the first sentence, then provides parameter details in a readable, line-separated format. It is longer than ideal, but the length is justified by the need to explain 7 parameters. No redundant sentences; each piece adds value.

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 (not shown) so it needn't describe return values. Given the complexity (7 params, 1 required), the description covers the input semantics and the overall behavior (ranked steps by cost). It lacks an explicit note about when to use the sibling beep-code tool, but that is a minor gap. Overall, the description is sufficient for an agent to effectively invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 fully explain parameters. It does exactly that: each of the 7 parameters (powers_on, fans_spin, fans_stay_running, display_output, tried_cmos_reset, tried_minimal_config, tried_different_cable_or_monitor) is given a clear, meaningful explanation that goes beyond the schema titles. For example, it explains the difference between fans spinning and staying running, and what 'tried minimal config' means. This is exemplary compensation for missing schema descriptions.

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's purpose: providing 'ranked next troubleshooting steps' for a PC that won't boot. It distinguishes itself from a diagnosis and from the sibling tool (lookup_beep_code) by focusing on a general sequence rather than beep codes. The verb 'diagnose' is accurate, and the resource (PC boot/display issues) is explicit.

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 when to use it: when a PC won't boot or show display, and what input is needed (what's been tried). It notes it's not a diagnosis, setting expectations, but does not explicitly state when to use the sibling tool (e.g., when beep codes are present). The context is clear enough for an agent to infer the appropriate scenario.

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

lookup_beep_codeA

Looks up a beep pattern against real, sourced BIOS beep-code tables. bios_type must be one of: ami_legacy, ami_aptio, award_phoenix — ami_legacy and ami_aptio are genuinely different tables (legacy AMIBIOS vs. modern AMI Aptio/UEFI use different codes for the same beep counts), pick the wrong one and you'll get the wrong answer, so check which BIOS the actual board uses before trusting the result.

pattern: free text describing what you heard, e.g. "10 short", "1 long, 2 short", "continuous", "3 short, 3 long, 3 short".

Returns None-equivalent text (not a fabricated guess) when the exact pattern isn't in the real table this tool has data for — modern boards increasingly have no speaker at all and use debug LEDs instead, so no match is real information, not a tool failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYes
bios_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Discloses that it returns None when no match is found, explains the difference between BIOS types, and notes that modern boards may not have a speaker. Since no annotations are provided, the description carries the transparency burden and does so effectively.

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 detailed yet efficient, with a clear structure: purpose, parameter constraints, pattern examples, and return behavior. It avoids unnecessary fluff while covering all essential information.

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?

Given that an output schema exists (though not shown), the description does not need to detail return values, but it still mentions the None case, which is useful. It also covers edge cases like modern boards without speakers, making the context complete enough for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% coverage for parameter descriptions, but the description fully explains both parameters: pattern is free text with examples, and bios_type is constrained to three valid values. This fully compensates for the lack of schema descriptions.

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?

Clearly states the tool looks up beep patterns against real BIOS beep-code tables. It specifies the resource (beep-code tables) and the action (lookup), and distinguishes itself from the sibling tool diagnose_symptoms by focusing on beep-code lookup.

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?

Provides explicit guidance on required inputs (bios_type must be one of the listed values, pattern format with examples) and warns about potential pitfalls (different tables for different BIOS types). It does not explicitly contrast with the sibling tool, but the usage is clear enough.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observeddiagnose_symptoms
    • First observedlookup_beep_code

TDQS

A4.3/5.0

Scored across 2 tools

Disambiguation5/5

The two tools serve completely different purposes: diagnose_symptoms walks through a troubleshooting decision tree, while lookup_beep_code is a reference lookup. There's zero overlap or ambiguity about which to call in any scenario.

Naming Consistency5/5

Both tools follow the identical imperative verb_noun snake_case convention (diagnose_symptoms, lookup_beep_code). Perfect consistency, even if the sample size is small.

Tool Count3/5

Two tools is on the thin side for a general-purpose troubleshooting server, but the scope here is deliberately narrow (diagnosis guidance + beep-code reference). It works, but feels minimal.

Completeness3/5

The core workflows (symptom-based guidance and beep-code lookup) are covered, but natural additions like a debug-LED/literal code reference, or a POST-code table, would round out the domain. Notable but not critical gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Provides comprehensive system diagnostics and hardware analysis through 10 specialized tools for troubleshooting and environment monitoring. Offers targeted information gathering for CPU, memory, network, storage, processes, and security analysis across Windows, macOS, and Linux platforms.
    10
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables LLM-driven agents to autonomously detect, diagnose, repair, verify, and prevent software and hardware failures on local and remote systems. Includes built-in safety checks and automatic rollbacks.
    15
    -
  • A
    license
    A
    quality
    D
    maintenance
    Expert system hardware probe and performance diagnostic engine for AI, Gaming, and High-Performance workflows. Provides deep system insights such as real-time monitoring, thermal diagnostics, and LLM optimization.
    11
    28 npm
    7
    Apache 2.0