MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Other

Laptop Part Finder

Free, read-only OEM laptop part numbers, models they fit, and repair guides. No API key required.

Checks passed
13 / 22

1 failed · 8 not measured

Median response
706 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
10

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 706 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name laptop-part-finder.

  • Pass
    Lists tools

    tools/list returned 10 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 706 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 706 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    28 of 28 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-11T00:38:28.548603Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Laptop Part Finder

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http laptop-part-finder https://laptoppartfinder.com/mcp

Capabilities

Tools 10

check_part_fits

Yes/no: do these part numbers fit these specific models? Example: "does 01FR025 or 5B10W13905 fit my T490 and T495?". Use get_part_fits instead to list every model one part fits. Use get_model_parts instead for a model's parts. Give part_number, part_numbers, or both (merged, duplicates dropped). At most 100 part×model pairs, else an error result. Parts match as in get_part; models resolve like get_model_parts, once each. One part: results in model order; an unknown part is an error result. Several parts: side-by-side comparison (parts list plus flat results in part-then-model order); unknown or ambiguous parts are flagged in their entry and their rows have fits null. fits true includes constraints, source_url, confidence; fits false is fit_status no_documented_fit (no document, not incompatibility); fits null for an ambiguous or unknown model. Per-row field details are in the output schema.

Discovered
get_coverage

Check in one call whether LPF covers a brand, model, or part type at all, before you search. Use list_models instead to page through models. Use get_model_parts instead for a model's part numbers. Use resolve_request or search_parts instead to find a specific part. Default (summary omitted or false): totals, brands, part types, and every model with its part types and fit counts (~1 MB). summary true: the same without the models list (models_omitted gives the count; ~6 KB) — prefer for brand or part-type questions; use full mode only to look up a specific model. Snapshot at deploy time: generated is the build date; data_revision changes when data or server changes. Not listed means no documented fit, not incompatibility.

Discovered
get_model_parts

List documented OEM replacement parts for one known laptop model. Use once the model is known. Use resolve_request instead first for a vague request. Use get_part or get_part_fits instead when you start from a part number. Use list_models instead to browse models; use get_coverage only to see which part types exist. model accepts a slug or full name; an ambiguous name (e.g. "T14") returns status ambiguous with candidates and no parts — ask the user and call again with the slug; an unknown model is an error result. type keeps only parts of that type, case-insensitive. With neither limit nor cursor, every part is returned; with either, follow next_cursor until null. With 2+ documented screens, panel_options explains how they differ — tell the user to check their current panel's part number or connector. A type with no parts returns parts [] and fit_status no_documented_fit (no document, not incompatibility).

Discovered
get_part

Fetch the full record for one exact OEM part number: specs, description, verification, every source URL, and fitted models. Use get_part_fits instead when you only need the list of models it fits. Use check_part_fits instead for yes/no against specific models (or several part numbers at once). Use search_parts instead for keyword/fuzzy text. Use resolve_request instead for a vague repair need. Matching order: exact number, then ignoring case/dashes/spaces, then leading zeros, then retired numbers (returns the current record with a superseded note). Several matches return status ambiguous with candidates. Not found is an error result (LPF has no document, not incompatibility).

Discovered
get_part_fits

List every model one exact part number is documented to fit. Use check_part_fits instead for yes/no against specific named models, or to compare several part numbers at once. Use get_part instead for the full part record. Use get_model_parts instead for the reverse (model → parts). Use search_parts instead for keyword text. Part numbers match as in get_part (case, dashes, spaces, leading zeros, retired numbers); several matches return status ambiguous — ask which number is printed on the part. Not found is an error result; a part with no documented models returns fits [] and fit_status no_documented_fit. Neither means incompatible. Screen fits may include panel_options.

Discovered
get_repair_guide

Read one repair guide's full Markdown steps by exact slug. Use search_repair_guides instead to find slugs by model, component, or words. Returns steps with manual page citations, the official manual URL, service classification, and scope restrictions (typically 2 to 17 KB). Slug match ignores case and surrounding spaces; an unknown slug is an error result — call search_repair_guides. Not bench-tested; follow the scope restrictions and the OEM manual.

Discovered
list_models

Page through covered laptop and Chromebook models — browse or enumerate only. Use get_coverage instead to test whether a brand, model, or part type is covered at all. Use get_model_parts instead for one model's parts. Use resolve_request or search_parts instead to find a model from free text. Ordered by reliability tier (green = verified on the OEM site, then yellow, then red), then slug A to Z. brand and category combine with AND when both are given. Follow next_cursor (null on the last page); pages are stable for the same data_revision; total is the full filtered count.

Discovered
resolve_request

Entry point for a vague natural-language repair need you will answer, e.g. "my T490 battery is dying". Use search_parts instead for keyword/exploratory browsing without committing to one clarifying question. Use get_part instead for an exact OEM part number. Use get_model_parts instead when you already have a model slug. A part number in query returns status resolved with that part and next = get_part_fits (type ignored). Otherwise type, if given, overrides any type word in query; else the type word is used; the rest must name one model. resolved: the model, candidate_count, first 10 candidates (compact), and next = get_model_parts with model and type (asks which part if type is missing). needs_clarification: ONE clarifying_question to ask instead of guessing (5G vs Wi-Fi, Intel vs AMD, generation, touch), up to 40 candidate models, next = retry with the chosen slug. not_found has fit_status no_documented_fit (no document, not incompatibility); did_you_mean offers a spelling fix to retry, never auto-applied.

Discovered
search_parts

Keyword/fuzzy browse of parts and models (partial names, typos, model-plus-type words) when you do not have an exact part number or model slug. Use resolve_request instead for a vague repair need you will answer (it may ask one clarifying question). Use get_part instead for an exact OEM part number. Use get_model_parts instead when the model is already known. Matching order: a part number (case, dashes, spaces ignored) ranks first; "<model> <type word>" naming one model returns its documented parts (mode model_exact); an ambiguous model plus type word returns mode needs_clarification; a bare type word ("ram") lists parts of that type. Otherwise each word is a case-insensitive substring on model name/slug/board and part number/name/type/brand, sorted by words matched, with parts for the best-matching model first. Optional type keeps only that part type (case-insensitive), overrides a type word in query, and never filters models. A miss returns mode no_match or did_you_mean (never auto-applied) with fit_status no_documented_fit (no document, not incompatibility).

Discovered
search_repair_guides

Find step-by-step replacement guide summaries and their slugs (battery, SSD, RAM, keyboard, fan, and more). Use get_repair_guide instead with a slug to read the full steps. Use get_model_parts instead when you need part numbers, not procedures. Filters combine with AND: model resolves like get_model_parts (ambiguous name → candidates; unknown → error); component must appear in the guide's component or slug; every query word must appear in the title, slug, or model name (case-insensitive substrings). With no filters it lists all guides (large). not_covered lists topics with no published steps, filtered by model and component only. Guides are paraphrased from official service manuals, not bench-tested. Formerly find_repair_guides, which still works.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected706 ms10