Skip to main content
Glama
hlplanet

hlplanet-mcp

Official
by hlplanet

HLPlanet MCP: keyboard sizes, dimensions and desk fit

An MCP server that lets AI assistants answer keyboard size questions with real data:

  • Compare full-size, 98%, TKL, 75%, 65% and 60% layouts: size difference, missing keys, extra mouse room

  • Look up the measured dimensions of 30 keyboards reviewed on HLPlanet

  • Check whether a keyboard and mousepad fit on your desk, including a full 360° turn at your sensitivity

  • Find out which sizes have a key (Delete, F5, Insert, arrows, numpad...)

  • Search HLPlanet reviews of Hall effect, TMR and rapid trigger keyboards and gaming controllers

The data matches the interactive keyboard size comparison on HLPlanet, and every answer links to it so you can see the layouts to scale.

"Will a TKL and my 45 cm mousepad fit on a 120 cm desk?" "How much smaller is a 75% than a TKL, and what keys do I lose?" "How wide is the MCHOSE Jet 75 compared to the Wooting 80HE?" "Which keyboard sizes still have a Delete key?"

Install

No API key or account needed. Requires Node.js 18 or newer.

Claude Desktop: download hlplanet-mcp.mcpb from the latest release and double-click it. Or add this to claude_desktop_config.json:

{
  "mcpServers": {
    "hlplanet": {
      "command": "npx",
      "args": ["-y", "hlplanet-mcp"]
    }
  }
}

Claude Code

claude mcp add hlplanet -- npx -y hlplanet-mcp

Cursor: add the same mcpServers block as above to ~/.cursor/mcp.json.

VS Code

code --add-mcp "{\"name\":\"hlplanet\",\"command\":\"npx\",\"args\":[\"-y\",\"hlplanet-mcp\"]}"

Streamable HTTP: npx -y hlplanet-mcp --http serves the MCP endpoint at http://localhost:3000/mcp (set PORT to change it).

Related MCP server: yuanhe-renovation-mcp

Tools

Tool

What it does

list_keyboard_sizes

Every standard size with key count, typical dimensions, missing keys and who it suits

compare_keyboards

Compare 2–6 sizes or real keyboards: width, depth, keys lost or gained, mouse room

get_keyboard_dimensions

Measured case size of reviewed keyboards, searchable by name or size

check_desk_fit

Keyboard + mousepad on your desk: room left, pad overhang, distance from screen centre, 360° turn fit

which_sizes_have_key

Which sizes have a key or key group, and which need an Fn layer

search_hlplanet

Search HLPlanet.com reviews, comparisons and guides

list_testing_tools

Links to HLPlanet's free keyboard, gamepad and reaction time testers

All tools are read-only. search_hlplanet is the only one that uses the internet (the HLPlanet.com search API); everything else runs offline.

About the data

  • Standard sizes use the 19.05 mm key spacing plus an estimated 10 mm case border. Layouts follow the most common arrangement of each size; some brands move a few keys.

  • Real keyboards use the case dimensions measured in each HLPlanet review.

  • The desk check places the keyboard with its B key in front of the screen centre and leaves 3 cm between keyboard and mousepad, the same as the desk planner on the website.

More from HLPlanet

Development

npm install
npm test        # builds dist/index.js and runs the end-to-end tests over stdio and HTTP
npm run mcpb    # builds hlplanet-mcp.mcpb for Claude Desktop

License

MIT © HLPlanet

Available Tools

7 tools
check_desk_fitCheck desk and mousepad fitA
Read-onlyIdempotent

Check whether a keyboard and mousepad fit side by side on a desk. The keyboard is placed with its B key in front of the screen centre (move it with keyboard_offset_cm). Returns the mouse room left, whether the pad fits or how far it hangs off, how far the mouse sits from the screen centre, and whether a full 360-degree turn at the given sensitivity (cm/360) fits on the pad. Compare several keyboards at once to see which one leaves the most room.

ParametersJSON Schema
NameRequiredDescriptionDefault
mousepadNosmall 25x21, medium 36x30, large 45x40, xl 49x42, deskmat 90x40 (under keyboard and mouse), or customlarge
keyboardsYesSizes or keyboard names, e.g. ["TKL", "75%"]
cm_per_360NoMouse sensitivity as cm of movement for a full 360 turn
left_handedNoMouse on the left of the keyboard
desk_width_cmYesDesk width in cm
mousepad_width_cmNoMousepad width in cm, when mousepad is "custom"
keyboard_offset_cmNoMove the keyboard from centred; negative moves it left

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuine behavioral context by disclosing the geometry model (keyboard is positioned with its B key in front of the screen centre) and enumerating what is reported back, including the 360-degree turn feasibility test. It stops short of stating units or edge-case behavior, so not a full 5.

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?

Four sentences, front-loaded with the core purpose and then the mechanics, with no filler. The final compare-across-keyboards sentence is slightly redundant given the presence of a compare_keyboards sibling, but it is short and informative.

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?

With seven parameters, no output schema, and no nested objects, the description does the necessary work of explaining the returned values so the agent knows what comes back. It omits output units and the default/fallback behavior for optional inputs, which are minor remaining gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters are already documented, which sets the baseline at 3. The description re-explains keyboard_offset_cm and cm/360 in prose but adds no new syntax, format, or constraint information beyond the schema.

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?

States a specific verb and resource ('Check whether a keyboard and mousepad fit side by side on a desk') and goes further by naming the exact inputs that drive the computation (keyboard_offset_cm, cm/360). An agent can distinguish this geometric-fitting tool from dimension-lookup siblings like get_keyboard_dimensions without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence gives an implied use case ('compare several keyboards at once to see which one leaves the most room'), which is real context. However, it never names or excludes the obvious alternatives in the sibling list (compare_keyboards, get_keyboard_dimensions), and there is no when-not guidance, so the agent must infer the boundary itself.

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

compare_keyboardsCompare keyboardsA
Read-onlyIdempotent

Compare two to six keyboard sizes or real keyboards side by side: width, depth, key count, the keys each one is missing compared to the first, and how much desk / mouse room you gain. Accepts sizes ("TKL", "75%", "60") and keyboards reviewed on HLPlanet ("Wooting 60HE v2", "MCHOSE Jet 75"). Known keyboards: Redragon K761 Pro, Epomaker Galaxy100, NuPhy Air100 V3, ATK x QK Hex80, Wooting 80HE, GamaKay TK75 TMR, Yunzii RT75, NuPhy Kick75, Epomaker HE75 Mag, IQUNIX EZ75, Varmilo Minilo 75, Epomaker HE75 V2 TMR, DrunkDeer G75, MCHOSE Jet 75, XVX L75 Air, NuPhy Air75 V3, Keychron K3 HE, NuPhy Air75 HE, Keydous AJ68-CP, Epomaker HE65 V2 TMR, MCHOSE Ace 68 GT, Melgeek Made68 Ultra V2, Weikav NUT65, Varmilo Muse65 HE, Wooting 60HE v2, XVX Trooper63 HE, Epomaker Hack 59, Wooting 60HE+, IQUNIX EV63, DrunkDeer G60.

ParametersJSON Schema
NameRequiredDescriptionDefault
isoNoUse the ISO layout (UK/EU, tall Enter, extra key by left Shift). Default ANSI.
keyboardsYesSizes or keyboard names. The first one is the reference, e.g. ["TKL", "75%", "Wooting 80HE"]

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds genuine behavioral context: the first item is the reference baseline for the "missing keys" delta, and the result includes desk/mouse room gained, which the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and output summary are front-loaded and tight, but roughly half the text is a 31-item keyboard name dump. The list is functional as an enumeration aid, yet it bloats the description and would be better placed in schema examples.

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?

With no output schema, the description correctly carries the burden of describing return values (width, depth, key count, missing keys vs. first, desk/mouse room gained), which it does well. Input forms and the reference-baseline rule are covered; only explicit alternative-tool routing is absent.

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

Parameters4/5

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

Schema coverage is 100% (both params documented, including the "first is reference" note and ISO layout meaning). The description still adds value by enumerating the valid reviewed keyboard names an agent can pass, reducing guesswork for the open-ended string array, plus restating the two-to-six bound.

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?

Specific verb (compare) plus resource (keyboards) with explicit scope (two to six items, side-by-side dimensions). It clearly differentiates from siblings like get_keyboard_dimensions (single lookup) and check_desk_fit (fit check) by naming the exact output dimensions it produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies context by declaring accepted input forms (sizes such as "TKL"/"60", or reviewed keyboard names) and what the comparison returns, which helps an agent decide to use it. However, it never states when to prefer this over check_desk_fit or get_keyboard_dimensions, and gives no exclusions or prerequisites.

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

get_keyboard_dimensionsGet keyboard dimensionsA
Read-onlyIdempotent

Measured case dimensions (width x depth) of keyboards reviewed on HLPlanet, with a link to each review. Search by name ("NuPhy Air75"), list every keyboard of one size ("75%"), or leave both empty to list all of them.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoOnly keyboards of this size: 100%, 98%, TKL, 75%, 65% or 60%
queryNoKeyboard name or part of it, e.g. "Wooting" or "Jet 75"

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, and non-destructive behavior, so the description adds that results include case dimensions and a review link. It doesn't mention pagination, rate limits, or ordering, but with strong annotations and a simple read operation, this is sufficient context beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first states the return payload, the second gives the three invocation modes. No filler; the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only lookup tool with no output schema, the description covers what is returned (dimensions plus review link), how to call it (three modes), and its scope. Nothing essential for correct invocation is missing.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are fully documented in the schema. The description gives examples that mirror the schema descriptions but adds no new syntax or constraints beyond what is already provided.

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 states a specific verb (return measured case dimensions width x depth) and resource (keyboards reviewed on HLPlanet), with a link to each review. It distinguishes itself from siblings by focusing on dimension data rather than sizes, comparisons, or desk fit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage modes: search by name, list every keyboard of one size, or leave both empty to list all. This tells the agent exactly how to invoke it for different needs, implicitly contrasting with siblings like list_keyboard_sizes or compare_keyboards.

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

list_keyboard_sizesList keyboard sizesA
Read-onlyIdempotent

List the standard keyboard sizes (full-size 100%, 98%/1800, TKL 80%, 75%, 65%, 60%) with key count, typical dimensions, the keys each one drops compared to full-size, and who it suits. Use it for general questions like "what keyboard sizes are there" or "which size should I get".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds that the response includes key count, dimensions, keys dropped, and suitability, which is useful return-content context beyond annotations.

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?

Two sentences, front-loaded with the resource and its contents, followed by usage examples. Slightly dense enumeration of sizes but every clause adds selection 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?

For a zero-param, annotation-covered, closed-world list tool with no output schema, the description fully specifies the resource, its returned fields, and when to call it. Nothing essential is absent.

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

Parameters4/5

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

Zero parameters, so the baseline is 4; no parameter meaning is needed and none is missing.

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 names a specific verb (list) and resource (standard keyboard sizes), enumerates the exact categories returned, and differentiates from siblings like get_keyboard_dimensions and compare_keyboards by scoping to a canonical size reference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use it with quoted example questions ('what keyboard sizes are there', 'which size should I get'), which routes the agent away from comparison or dimension-specific siblings.

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

list_testing_toolsList free testing toolsA
Read-onlyIdempotent

List free browser tools from HLPlanet for testing keyboards and controllers: keyboard tester (every key, rollover, chatter, rapid trigger, SOCD / Snap Tap), gamepad and stick drift tester, controller reaction time test and keyboard size comparison. These need a person at the device, so share the links rather than running them.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false). The description adds genuinely new context beyond them: these are external browser tools that cannot be executed by the agent and must be shared with a human at the device. That is a meaningful behavioral constraint not derivable from the annotations.

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?

Front-loads the purpose and follows with the actionable constraint; every sentence earns its place. The parenthetical enumeration of tool features is somewhat dense but serves to tell the agent what links it will receive, so it is not wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description fully specifies what will be returned (the set of testing tools) and how to use the result (share links, do not run). Nothing an agent needs to invoke or act on it is missing.

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

Parameters4/5

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

The tool takes zero parameters, so per the baseline there is no parameter semantics to document and the description need not compensate. It appropriately describes only the returned content instead of inventing parameter details.

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?

States a specific verb and resource ('List free browser tools from HLPlanet for testing keyboards and controllers') and then enumerates the exact contents (keyboard tester, gamepad/stick drift, reaction time, size comparison). This clearly separates it from siblings like compare_keyboards or list_keyboard_sizes, which serve different purposes.

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?

Gives a concrete usage directive: these tools require a person at the device, so 'share the links rather than running them' — telling the agent how to act on the result. It stops short of naming alternative tools or exclusion conditions, but the operative guidance is clear and non-obvious.

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

search_hlplanetSearch HLPlanet reviewsA
Read-onlyIdempotent

Search HLPlanet.com, a review site for Hall effect, TMR and rapid trigger keyboards, gaming controllers and gaming gear. Returns matching reviews, comparisons and guides with links. Use it to find a review of a specific keyboard or controller, or articles on a topic like "TMR 75%" or "stick drift".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (1-10)
queryYesWhat to search for, e.g. "Wooting 80HE" or "low profile hall effect"

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: the result types returned (reviews, comparisons, guides with links) and the topical domain covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with zero redundancy: what it is, what it returns, and when to use it, in that order. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only search with no output schema, the description supplies the domain, the result types, and usage examples, which is everything an agent needs to call it correctly.

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

Parameters3/5

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

Schema coverage is 100% with both parameters documented, including the limit range and query examples, so the baseline is 3. The description's example topics ('TMR 75%', 'stick drift') reinforce the query parameter's intent but add little beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and clearly identifies the resource (HLPlanet.com, a review site for Hall effect/TMR/rapid trigger keyboards, controllers, gear). It is easily separable from most siblings, but it does not resolve the potential overlap with compare_keyboards, since it advertises returning 'comparisons'.

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?

Gives concrete usage context: 'Use it to find a review of a specific keyboard or controller, or articles on a topic like "TMR 75%" or "stick drift"'. It does not name alternatives or state when another sibling (e.g. compare_keyboards, get_keyboard_dimensions) would be the better choice.

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

which_sizes_have_keyWhich keyboard sizes have a keyA
Read-onlyIdempotent

Check which keyboard sizes have a key or key group, e.g. "Delete", "F5", "Insert", "Print Screen", "backtick", "arrow keys", "numpad", "function keys". Sizes without it usually reach it through an Fn layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
isoNoUse the ISO layout (UK/EU)
keyYesA key name or group: "Delete", "F12", "Home", "arrow keys", "numpad"...

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuine domain context beyond the annotations: that results can be negative and that absent keys are typically accessed via an Fn layer, which shapes how an agent should interpret the answer.

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?

Two sentences, front-loaded with the core question; the example list is somewhat long but functional and earns its place by clarifying valid key inputs. No wasted preamble.

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?

For a read-only query with no output schema, the description is nearly complete: it explains intent, input domain, and the Fn-layer nuance. It could say more about the return shape (a list of size names), but that is a minor gap against annotations that already carry the behavioral profile.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters (key, iso) are already documented in the schema. The description's example list enriches the 'key' semantic range but largely overlaps the schema's own examples, so it adds only marginal value above the baseline.

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?

States a specific verb ('Check which keyboard sizes have') and resource ('a key or key group'), with concrete examples of the key domain. An agent can distinguish this from list_keyboard_sizes or compare_keyboards without opening the schema.

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 gives clear context for when this tool applies (querying key/group availability across sizes) and adds a helpful caveat that missing sizes 'usually reach it through an Fn layer.' It does not, however, name a sibling or explicitly state when not to use it.

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. 7 tool updatesv1.0.0
    • First observedcheck_desk_fit
    • First observedcompare_keyboards
    • First observedget_keyboard_dimensions
    • First observedlist_keyboard_sizes
    • First observedlist_testing_tools
    • First observedsearch_hlplanet
    • First observedwhich_sizes_have_key

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation4/5

Tools mostly target distinct questions: size listing, comparison, dimension lookup, desk fit, key availability, and search are clearly separable. compare_keyboards and get_keyboard_dimensions overlap slightly since both surface dimensions, but the comparison framing is distinct enough that selection should be reliable.

Naming Consistency4/5

Six of seven tools follow a clean verb_noun or verb_noun_qualifier pattern (list_keyboard_sizes, compare_keyboards, get_keyboard_dimensions, check_desk_fit, search_hlplanet). which_sizes_have_key breaks the pattern with a question-style phrasing, a minor deviation.

Tool Count5/5

Seven tools is well-scoped for a keyboard review/analysis server, with each tool earning its place. No redundancy that bloats the surface and no thin coverage.

Completeness4/5

The surface covers size info, comparisons, dimensions, desk fit, key availability, testing tools, and site search, which is solid lifecycle coverage for the domain. Controller-specific analysis is thinner, but testing tools and search provide workable paths.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers