hlplanet-mcp
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hlplanet-mcpWill a TKL and my 45 cm mousepad fit on a 120 cm desk?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpCursor: 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 |
| Every standard size with key count, typical dimensions, missing keys and who it suits |
| Compare 2–6 sizes or real keyboards: width, depth, keys lost or gained, mouse room |
| Measured case size of reviewed keyboards, searchable by name or size |
| Keyboard + mousepad on your desk: room left, pad overhang, distance from screen centre, 360° turn fit |
| Which sizes have a key or key group, and which need an Fn layer |
| Search HLPlanet.com reviews, comparisons and guides |
| 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
Keyboard size comparison: all layouts drawn to scale, with a desk planner
Online keyboard tester: every key, rollover, chatter, rapid trigger and SOCD
Gamepad tester: buttons, triggers, stick drift and rumble
Rapid Trigger & SOCD Tester: browser extension and Windows app
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 DesktopLicense
MIT © HLPlanet
Available Tools
7 toolscheck_desk_fitCheck desk and mousepad fitARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| mousepad | No | small 25x21, medium 36x30, large 45x40, xl 49x42, deskmat 90x40 (under keyboard and mouse), or custom | large |
| keyboards | Yes | Sizes or keyboard names, e.g. ["TKL", "75%"] | |
| cm_per_360 | No | Mouse sensitivity as cm of movement for a full 360 turn | |
| left_handed | No | Mouse on the left of the keyboard | |
| desk_width_cm | Yes | Desk width in cm | |
| mousepad_width_cm | No | Mousepad width in cm, when mousepad is "custom" | |
| keyboard_offset_cm | No | Move the keyboard from centred; negative moves it left |
TDQS
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.
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.
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.
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.
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.
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 keyboardsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | Use the ISO layout (UK/EU, tall Enter, extra key by left Shift). Default ANSI. | |
| keyboards | Yes | Sizes or keyboard names. The first one is the reference, e.g. ["TKL", "75%", "Wooting 80HE"] |
TDQS
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.
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.
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.
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.
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.
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 dimensionsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Only keyboards of this size: 100%, 98%, TKL, 75%, 65% or 60% | |
| query | No | Keyboard name or part of it, e.g. "Wooting" or "Jet 75" |
TDQS
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.
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.
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.
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.
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.
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 sizesARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 toolsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 reviewsARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (1-10) | |
| query | Yes | What to search for, e.g. "Wooting 80HE" or "low profile hall effect" |
TDQS
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.
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.
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.
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.
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.
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 keyARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | Use the ISO layout (UK/EU) | |
| key | Yes | A key name or group: "Delete", "F12", "Home", "arrow keys", "numpad"... |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v1.0.0- First observed
check_desk_fit - First observed
compare_keyboards - First observed
get_keyboard_dimensions - First observed
list_keyboard_sizes - First observed
list_testing_tools - First observed
search_hlplanet - First observed
which_sizes_have_key
TDQS
Scored across 7 tools
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.
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.
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.
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
Related MCP Connectors
AI visibility checks, software recommendations and tool comparisons from measured AI answer data
AI-callable calculators and engineering models with real formulas. No hallucinated math.
Exactly 50 data transformation and live web verification tools for AI agents.
Live data gateway for AI — 3,300+ tools across 750+ sources, with citations
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceVerified unit conversion and dimensional analysis for AI agents. 190+ units, 31 domain formulas (clinical, physics, aerospace, SRE), physical constants with uncertainty propagation. Refuses invalid conversions structurally: the tool that won't convert mg to mL and knows the difference between torque and energy.AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to perform renovation tasks such as calculating tile quantities and listing common tile sizes.-
- FlicenseNot gradedqualityBmaintenanceEnables agents to ground and compare visual specifications by calculating physical dimensions and degrees of freedom from multimodal inputs.8-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to compare visual specifications and calculate physical dimensions and degrees of freedom from multimodal inputs.7-