Skip to main content

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.

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

Development

pip install -e ".[dev]"
pytest

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boot_doctor_mcp-0.1.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boot_doctor_mcp-0.1.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file boot_doctor_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: boot_doctor_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.9

File hashes

Hashes for boot_doctor_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0012f917908ca062f45a02aa85303eb0c078f208bf3977f48f1601f4d4e93319
MD5 0bc626b8697e18c57d52cb14fc863dec
BLAKE2b-256 03ee3a35e12c22e70f5e3a12ecc3fbafed12fdf4e24d50b6f13b07895d4b3014

See more details on using hashes here.

File details

Details for the file boot_doctor_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for boot_doctor_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4b6ab8cd0eb7221b8114bfa64545790dde8e42f9dfe42a6211abea9f2b90eec
MD5 ef2e55300ea7bb495a9c861861bb7adc
BLAKE2b-256 0080cb60239c3f7d5e3ca65b5d1aa03135e9ab47a2ccb0f56e3ac45ffbd9d8c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page