Skip to main content
Glama
pamela-0

boot-doctor-mcp

by pamela-0

boot-doctor-mcp

PyPI License: MIT

一个用于 PC 无法启动 / 无显示 / 无法通过 POST 故障排查的真正 MCP 服务器。不靠 LLM 猜测硬件原因——一个简单、确定性的规则引擎,外加真实、有来源的 BIOS 蜂鸣代码表。

为什么是确定性的,而不是 LLM

没有人希望语言模型在 GPU 并没有坏的时候产生“你的 GPU 坏了”这样的幻觉。硬件建议一旦出错就要付出真金白银和实实在在的时间,因此它值得一套固定、可审计的规则集,而不是一个听起来貌似合理的猜测。这个工具给出的每一个答案都能追溯到真实来源或固定、可测试的规则——绝不会是凭空编造的解释。

Related MCP server: Talk to Your PC MCP Server

工具

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)

根据已经尝试过的操作,给出真实、按优先级排序的下一步排查步骤——与真正的技术人员执行的流程相同:电源阶段 → CMOS 重置 → 最小配置测试 → 替换测试,按照成本最低者优先排除的顺序排列。这不是对具体损坏部件的诊断;真正的维修往往仍然需要用已知良好的部件进行替换测试,而这个工具会明确说明这一点,而不是假装仅凭症状匹配就能替代它。

lookup_beep_code(bios_type, pattern)

在真实、有来源的 BIOS 蜂鸣代码表中查找蜂鸣模式(例如 "10 short"、"1 long, 2 short"、"continuous")。

bios_type 是以下之一:

  • ami_legacy — 经典 AMIBIOS

  • ami_aptio — 现代 AMI Aptio(UEFI),有意分开:传统 AMIBIOS 和 Aptio 对相同的蜂鸣次数使用完全不同的代码,而初学者故障排查指南中常见的错误就是把它们合并到一张表里

  • award_phoenix — Award/Phoenix BIOS

当表中没有完全匹配的模式时,返回的是真实信息,而不是编造的猜测——现代主板越来越普遍地根本不带蜂鸣器,而是改用调试 LED,因此“无匹配”本身就是一个真实、诚实的结果。

来源

蜂鸣代码数据实时获取并交叉核对自 IONOS 和 Thomas-Krenn(而非来自训练数据的记忆)。一个真实且已明确说明的局限:OEM(HP、Dell、ASUS 等)有时会定制或扩展这些代码,而且现代主板越来越倾向于完全省去蜂鸣器、改用调试 LED——因此,某个有记录的蜂鸣模式在这里找不到匹配,并不一定意味着没有问题。

安装

pip install boot-doctor-mcp

将其添加到你的 MCP 客户端配置中(例如 Claude Code):

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

或者直接运行以进行本地测试:

python -m boot_doctor_mcp.server

开发

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

ActivitySlowing
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
    D
    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
    31 npm
    7
    Apache 2.0