Skip to main content
Glama
yumaheymans

BestRobotMower MCP Server

by yumaheymans

BestRobotMower MCP Server

A Model Context Protocol server that gives any MCP client (Claude, ChatGPT, Cursor, VS Code, Ollama, and others) direct access to robot lawn mower specs, prices, transparent 0-5 scores and buying recommendations, so your assistant answers from a curated, cited dataset instead of guessing from stale training data.

It is powered by the open BestRobotMower.co dataset (23 wire-free and RTK robot mowers across 9 brands, 19 fields per model, dated prices and a documented scoring methodology, published under CC BY 4.0). The server queries the live dataset API on start and falls back to a bundled snapshot when offline.

Tools

Tool

What it does

list_robot_mowers

List and filter mowers by brand, navigation type, price, coverage, slope and minimum score; sort by score, price, coverage or value.

get_robot_mower

Full spec sheet, sub-scores and cited sources for one mower by name or slug.

compare_robot_mowers

Side-by-side comparison of 2 to 4 mowers on price, navigation, coverage, slope, cutting specs and scores.

recommend_robot_mower

Best-fit picks for a specific yard: give the lawn size (m2) and optionally slope, budget and whether obstacle avoidance is required.

Example questions your assistant can now answer: "What is the best robot mower under $1500 for a 700 m2 lawn?", "Compare the Husqvarna Automower 450X and the Segway Navimow i105E", "Which RTK mowers handle a 40% slope?"

Related MCP server: ai-orders-agent

Install

No API key required. Requires Node.js 18+.

Run directly from GitHub:

npx -y github:yumaheymans/bestrobotmower-mcp

Or clone and run:

git clone https://github.com/yumaheymans/bestrobotmower-mcp.git
cd bestrobotmower-mcp
npm install
node index.js

Client configuration

Add to your MCP client config (for example Claude Desktop's claude_desktop_config.json):

{
  "mcpServers": {
    "bestrobotmower": {
      "command": "npx",
      "args": ["-y", "github:yumaheymans/bestrobotmower-mcp"]
    }
  }
}

Data, license and attribution

Built and maintained by BestRobotMower.co.

Available Tools

4 tools
compare_robot_mowersA

Compare 2 to 4 robot lawn mowers side by side on price, navigation, coverage, slope, cutting specs and scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelsYesModel names or slugs to compare.

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It says the tool compares models side by side, which implies a read-like behavior, but it does not explicitly confirm no side effects, explain the origin or reliability of scores, or describe any output behavior beyond the comparison.

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?

A single, front-loaded sentence states the action, count, and comparison dimensions with no filler or repetition. Every phrase carries information.

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

Completeness3/5

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

With only one required array parameter and a clear schema, the description is sufficient to build a valid call. Still, with no output schema, it does not specify the return format, how scores are derived, or how invalid model names are handled, leaving modest gaps for an agent.

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%: the schema already documents models as an array of model names or slugs with min 2 and max 4. The description underscores these constraints and adds the compared attributes, but it does not add crucial parameter-level detail beyond the schema, so the baseline applies.

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 an explicit verb, Compare, a clear resource, robot lawn mowers, a cardinality range of 2 to 4, and a concrete list of comparison dimensions. This clearly distinguishes it from siblings list_robot_mowers, get_robot_mower, and recommend_robot_mower.

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 usage when a user needs multi-model comparisons rather than listing, fetching one model, or getting a recommendation. However, it does not explicitly name the sibling alternatives or state when not to use this tool, leaving the routing decision to inference.

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

get_robot_mowerA

Get the full spec sheet, sub-scores and cited sources for one robot lawn mower by model name or slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesModel name or slug, e.g. 'Husqvarna Automower 450X' or 'segway-navimow-i105e'.

TDQS

A4/5.0
Behavior3/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 of behavioral disclosure. It does disclose the return contents (spec sheet, sub-scores, cited sources) and implies a read-only operation via 'Get', but it does not describe behavior on unrecognized model names, ambiguous matches, or any side effects. This is adequate but not rich.

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?

The description is a single, well-structured sentence with no filler. It front-loads the key return information and then states the selection criterion, saying everything necessary in few words.

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 simple one-parameter lookup tool with no output schema, the description adequately covers what the tool returns and how to identify the target mower. It does not address not-found or ambiguity behavior, but the core information an agent needs to invoke the tool correctly is present.

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%, and the schema already documents the query parameter with examples. The description slightly reinforces the parameter's role as the identifier for a single mower, but it does not add significant meaning beyond the structured schema, so the baseline score of 3 applies.

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 uses a specific verb ('Get') and resource ('full spec sheet, sub-scores and cited sources for one robot lawn mower'), and the qualifier 'for one' clearly distinguishes it from the sibling tools that list, compare, or recommend mowers. An agent can tell exactly what this tool does 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 clearly establishes the context: use this when you need detailed information for a single known mower identified by model name or slug. It does not explicitly name alternatives or exclusions, but the sibling names and the 'one robot lawn mower' scope make the intended use relatively clear.

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

list_robot_mowersA

List and filter robot lawn mowers from the BestRobotMower.co dataset. Filter by brand, navigation type, price, lawn coverage, slope handling and minimum score; sort by score, price, coverage or value.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandNoFilter by brand, e.g. Husqvarna, Segway, Worx (case-insensitive substring).
limitNoMax results to return (default 10, max 23).
sort_byNoSort key. Default 'score' (best first). 'price' and 'price_per_m2' ascend; 'coverage' and 'score' descend.
min_scoreNoOnly mowers with at least this BestRobotMower Score (0-5).
navigationNoFilter by navigation type substring, e.g. 'RTK', 'wire', 'vision', 'GNSS'.
max_price_usdNoOnly mowers at or below this USD price.
min_slope_pctNoOnly mowers that handle at least this slope (percent grade).
min_coverage_m2NoOnly mowers that cover at least this many square meters.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It states the action (list and filter) and mentions sort/filter options, but it does not disclose return format, pagination, read-only status, rate limits, or side effects. For a read-operation that ostensibly returns a list of mowers, this is minimal disclosure; an agent must infer safety and output structure.

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?

The description is a single, well-structured sentence that front-loads the primary action ('List and filter') followed by an enumeration of filter and sort options. It contains no fluff, tautology, or unnecessary detail. Every word contributes to the tool's purpose.

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

Completeness3/5

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

With 8 parameters and no output schema, the description covers the main capabilities but leaves out return format (list of objects? fields?), pagination (though limit is in schema), and any behavioral nuances. For a list/filter tool, it is adequate but lacks explicit details about what the result looks like or any constraints like 'returns up to limit results.' Given complexity, it could be richer.

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 the baseline is 3. The description adds a concise summary of filter and sort capabilities (e.g., 'brand, navigation type, price, lawn coverage, slope handling and minimum score') that aligns with the parameters but does not introduce new meaning beyond the schema. It fails to clarify the 'value' sort option (price_per_m2) beyond what the schema already states, so no significant added value.

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: 'List and filter robot lawn mowers from the BestRobotMower.co dataset.' This is a specific verb (list/filter) plus a resource (robot lawn mowers) and a dataset source. It implicitly distinguishes from siblings like get_robot_mower (retrieves a single mower) and compare_robot_mowers (compares), as listing is a distinct operation. No ambiguity.

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 this tool is for browsing/filtering the dataset, but it does not explicitly mention when to use it versus the sibling tools. There is no 'when-not-to-use' or alternative naming. The context is clear enough that an agent would infer this is the right tool for listing/filtering, but it lacks explicit guidance or exclusions.

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

recommend_robot_mowerB

Recommend the best-fitting robot lawn mowers for a specific yard: give the lawn size and optionally slope, budget and whether obstacle avoidance is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
budget_usdNoMaximum budget in USD (optional).
lawn_area_m2YesThe lawn size to cover, in square meters.
max_slope_pctNoThe steepest slope in the yard, percent grade (optional).
needs_obstacle_avoidanceNoSet true to require built-in obstacle avoidance (optional).

TDQS

B3.4/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of disclosing behavior. It indicates a recommendation action but does not state that it is read-only (no side effects), does not explain how the recommendation is computed, and does not mention what happens when no mower matches the criteria. The word 'recommend' implies non-mutating, but this is not explicitly stated.

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?

The description is a single, front-loaded sentence that states the purpose first and then lists the key inputs. There is no fluff or redundancy; every word contributes to understanding the tool's function.

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

Completeness2/5

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

With no output schema and no annotations, the description should explain what the tool returns (e.g., a ranked list, a single top pick, or a set of options). It does not describe the output format, nor does it mention edge cases like oversized yards or incompatible slopes. An agent cannot fully anticipate the tool's behavior beyond the basic recommendation intent.

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 the baseline is 3. The description rephrases the parameters ('lawn size', 'slope', 'budget', 'obstacle avoidance') without adding new meaning beyond the schema's own parameter descriptions. It does not clarify units or format, but the schema already covers those (e.g., slope in percent grade, budget in USD).

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 (recommend), a resource (robot lawn mowers), and the context (best-fitting for a specific yard). It clearly differentiates from siblings: list_robot_mowers (listing), get_robot_mower (retrieving one), and compare_robot_mowers (comparing) – this tool produces a tailored recommendation based on yard parameters.

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 tells the agent what inputs to provide (lawn size, optional slope, budget, obstacle avoidance) but does not explicitly state when to use this tool versus its siblings. It implies it is for recommendation scenarios, but there is no exclusion guidance such as 'use list_robot_mowers to browse all models' or 'use compare_robot_mowers for side-by-side comparisons.'

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. 4 tool updatesv1.0.0
    • First observedcompare_robot_mowers
    • First observedget_robot_mower
    • First observedlist_robot_mowers
    • First observedrecommend_robot_mower

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing/filtering, retrieving details, comparing, and recommending. There is no overlap in what an agent would use each tool for.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: list_robot_mowers, get_robot_mower, compare_robot_mowers, recommend_robot_mower. The pattern is predictable and uniform.

Tool Count5/5

Four tools is well-scoped for a niche product dataset: browse, inspect, compare, and recommend. Each tool earns its place without redundancy or bloat.

Completeness4/5

The surface covers the full consumer workflow: discover, detail, compare, and get personalized recommendations. Minor gaps like explicit review retrieval or accessory filtering exist, but they are not essential to the core purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server for real-time Swiss grocery shopping that searches and compares products across 8 major Swiss retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, Otto’s), normalizes per-unit prices, surfaces promotions, computes optimal multi-store shopping plans, and works with any MCP-compatible client without API keys or accounts.
    7
    86 npm
    30
    AGPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying and filtering a read-only dataset of AI-related court orders with full-text search, facets, and record retrieval via MCP, OpenAPI, or REST endpoints.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Federated commerce search MCP server enabling AI agents to query real product offers, prices, and availability across independent WooCommerce stores without API keys or registration.
    -