Energirör – VVS, värmepumpar & reservdelar
Server Details
Swedish VVS and heat-pump MCP with live price/stock, spare parts, compatibility and SGU wells.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
The tools mostly target distinct operations: product lookup/search vs. spare-part lookup/search vs. compatibility/model-part checks. The main ambiguity is between get_product/get_spare_part and search_products/search_spare_parts, which requires attention to descriptions, but the boundaries are reasonably clear.
All tool names use a consistent snake_case verb_noun pattern: check_*, get_*, and search_* followed by a clear object. There is no mixing of camelCase, vague verbs, or inconsistent conventions.
Seven tools is well-scoped for a product/spare-part catalog with compatibility and well-data lookup needs. No tool appears redundant enough to remove, and the set is not too thin for the domain.
The surface covers the core workflows: searching and fetching products and spare parts, checking compatibility, finding parts for a model, and looking up well data by address. Minor gaps such as listing all supported models or browsing manufacturers exist, but agents can work around them via search.
Available Tools
7 toolscheck_compatibilityCheck spare-part compatibilityARead-onlyIdempotentInspect
Verify whether a spare-part article number is linked to a specific heat-pump model. Returns verified/unknown status and exploded-view position when available. Never treats missing data as proof of incompatibility.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Optional heat-pump brand, e.g. IVT or NIBE. | |
| model | Yes | Heat-pump model name, e.g. 'Geo 612'. | |
| agent_id | No | Optional stable partner/agent identifier used for referral attribution in the returned product URL. | |
| article_number | Yes | Spare-part article number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and closed-world, so safety is covered. The description goes further by disclosing the return shape (verified/unknown status plus exploded-view position) and a real behavioral caveat about how missing data is interpreted, which materially affects how an agent should treat an 'unknown' result.
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 short sentences, front-loaded with the core action, followed by return information and the epistemic caveat. Every sentence carries distinct, non-redundant 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?
With no output schema, the description usefully covers the return values, and annotations carry the safety profile; the fully documented schema covers inputs. Only the routing relative to sibling lookup tools is unaddressed, a minor gap for a low-complexity 4-parameter read tool.
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 four parameters (including the optional brand and agent_id) are already documented in the schema. The description adds no parameter-level syntax or constraints beyond that, so the baseline of 3 applies.
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 (verify), a specific resource (spare-part article number) and the exact relationship being tested (linkage to a heat-pump model), which separates it from listing-oriented siblings like get_parts_for_model and search_spare_parts.
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 purpose sentence implies the use case (checking whether one part fits one model), but there is no explicit when-to-use statement and no mention of the sibling tools an agent should prefer for lookup versus verification. Usage must be inferred from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_wellKolla brunnen – SGU brunnsarkivetBRead-onlyIdempotentInspect
Slår upp den mest sannolika registrerade brunnen för en svensk adress via SGU:s brunnsarkiv. Returnerar borrdjup, jorddjup, kapacitet, avstånd, fastighetsbeteckning och match_confidence.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Svensk adress, t.ex. 'Kullasandsvägen 33, 513 32 Fristad'. | |
| radius_m | No | Sökradie i meter runt adressen, default 500. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, covering the safety and side-effect profile. The description adds useful output context by listing returned fields, but does not disclose accuracy limits, rate limits, or how match_confidence should be interpreted.
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 description is two tightly written sentences: the first states the lookup purpose and data source, the second lists the returned values. It is front-loaded and contains no unnecessary words.
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 simple two-parameter read-only lookup with no output schema, the description is largely complete: it names the data source and enumerates key return fields. It falls short only by omitting usage guidance and an explanation of match_confidence or radius behavior.
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 both the address and radius_m parameters are already documented in the schema. The description does not add any parameter meaning beyond what the schema provides, which is the baseline 3 when the schema does the heavy lifting.
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 and resource: looking up the most likely registered well for a Swedish address via SGU's well archive. It is clear and specific, but does not explicitly differentiate itself from sibling tools, though none of the siblings appear to concern wells.
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 explains what the tool does but gives no guidance on when to use it, when not to use it, or what alternatives exist. There is no mention of prerequisites or context for selecting this tool over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parts_for_modelGet spare parts for heat-pump modelARead-onlyIdempotentInspect
Find verified spare parts linked to a specific heat-pump model in Energirör's compatibility data. Use this before recommending a part for a named model.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Optional brand, e.g. IVT or NIBE. | |
| limit | No | Maximum results, default 20. | |
| model | Yes | Heat-pump model name, e.g. 'Geo 612' or 'F1245-8'. | |
| query | No | Optional part search term, e.g. 'givare', 'cirkulationspump' or an article number. | |
| agent_id | No | Optional stable partner/agent identifier used for referral attribution in returned product URLs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safe/idempotent profile is covered. The description adds only that results are 'verified' and come from compatibility data; it says nothing about permissions, rate limits, or result ordering, which the annotations do not cover.
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, the resource and data scope front-loaded, and the usage cue placed last. Nothing is redundant or padded.
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 still should suffice: the schema documents all inputs and annotations carry the safety profile. Only minor gaps remain, such as how results are ordered or whether the model parameter must match exactly versus fuzzily.
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 five parameters (brand, limit, model, query, agent_id) are already documented with examples and constraints. The description adds no syntax, matching behavior, or format detail beyond the schema, so baseline 3 applies.
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 (find) and resource (verified spare parts) scoped to a heat-pump model and named data source ('Energirör's compatibility data'). It is clear what the tool returns, though it never contrasts itself with the close sibling search_spare_parts, so sibling differentiation is left to inference.
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 an explicit usage condition: 'Use this before recommending a part for a named model.' That is a clear when-to-use cue, but there is no when-not-to-use and no named alternative (e.g. search_spare_parts for free-text lookup), so the routing guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productGet product detailsARead-onlyIdempotentInspect
Fetch one Energirör webshop product by UUID, HWS/RSK number or SAP material number. Returns normalized price, stock, purchaseability, identifiers and a direct attributed product URL.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional stable partner/agent identifier used only for referral attribution in the returned product URL. | |
| identifier | Yes | Product UUID, HWS/RSK number, or SAP material number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and closed-world, so the safety profile is covered. The description adds real value by naming what the response contains (normalized price, stock, purchaseability, identifiers, attributed URL) and by noting the agent_id attribution behavior in the schema. It stops short of saying what happens on an unknown identifier, which matters for a lookup tool.
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, no filler: the operation and accepted identifiers come first, the return payload second. Every clause earns its place and nothing is repeated from the title.
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 usefully summarizes the returned fields, which is the main thing absent from structured data. The remaining gap is failure behavior (not-found, invalid identifier, rate limits), minor for a simple read tool.
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% and both parameters are documented there, including the three accepted identifier formats and the referral-only role of agent_id. The description restates the identifier formats but adds no new syntax, format, or default guidance, so the schema does the heavy lifting.
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 (fetch) and resource (one Energirör webshop product) and enumerates the accepted identifier schemes (UUID, HWS/RSK, SAP material number). It is clear on its own, though it never explicitly contrasts itself with the sibling search_products, leaving the single-vs-list distinction to inference.
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?
Usage is only implied: 'one product' suggests a point lookup rather than a search, so an agent can infer it belongs before/after a search. There is no explicit statement of when to prefer this over search_products or check_compatibility, and no prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spare_partGet spare part detailsARead-onlyIdempotentInspect
Get one Energirör spare part by article number, including customer price, replacement information, compatible heat-pump models, exploded-view positions when available, and a direct attributed product URL.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional stable partner/agent identifier used only for referral attribution in the returned product URL. | |
| manufacturer | No | Optional manufacturer when article numbers overlap. | |
| article_number | Yes | Spare-part article number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value by enumerating what comes back — customer price, replacement info, compatible models, exploded-view positions, and an attributed product URL — which matters because no output schema exists.
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?
It is a single front-loaded sentence with no filler; the lookup key is stated first and the return payload enumerated afterward. It is dense but every clause carries information, with only mild redundancy between 'attributed product URL' and the schema's agent_id note.
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?
Since there is no output schema, the description appropriately covers return content and, with annotations handling safety and idempotency, an agent has enough to invoke correctly. The one remaining gap is error/not-found behavior for an unknown article number, which is not addressed.
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 all three parameters are already documented in the schema, including agent_id's referral-attribution role and manufacturer's overlap-disambiguation role. The description only echoes article number and the 'attributed product URL', adding no syntax or format detail beyond the structured fields, so the baseline 3 applies.
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 and resource ('get one Energirör spare part') and specifies the lookup key (article number). It contrasts implicitly with the sibling search_spare_parts by emphasizing a single-part retrieval, but never names an alternative explicitly, so it falls short of full sibling differentiation.
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?
Usage is implied by 'by article number' — an agent can infer this is the single-lookup path versus search_spare_parts / get_parts_for_model. However, there is no explicit when-to-use/when-not or named alternative, so guidance is only hinted at.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch webshop productsARead-onlyIdempotentInspect
Search Energirör's webshop for VVS products, heat pumps and accessories. Returns price in SEK incl. VAT, stock/availability, identifiers, image and a direct product URL suitable for shopping agents.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Optional brand filter, e.g. IVT, Bosch, FMM or Vatette. | |
| limit | No | Max results, default 10. | |
| query | Yes | Search term — product name, brand, HWS/RSK or SAP article number. | |
| agent_id | No | Optional stable partner/agent identifier used for referral attribution in returned product URLs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and closed-world, so the safety profile is covered. The description adds real value beyond that by disclosing the return payload: price in SEK incl. VAT, stock/availability, identifiers, image and a direct product URL.
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 compact sentences with no filler: the first establishes scope, the second front-loads the return fields an agent cares about. Nothing is redundant.
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 usefully enumerates the returned fields, which is the main gap it needed to fill. It stops short of covering pagination or default result-count behavior, a minor omission for a search tool.
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 the schema already documents query, brand, limit and agent_id. The description adds no per-parameter meaning (e.g. which identifiers the query accepts or how agent_id is used), so the baseline of 3 is appropriate.
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 ('Search Energirör's webshop for VVS products, heat pumps and accessories') and names the domain scope. It does not, however, differentiate itself from the sibling search_spare_parts, so an agent must infer the split between general products and spare parts.
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 phrase 'suitable for shopping agents' implies a usage context, and the return-contents list hints at when this tool is the right pick. There is no explicit when-to-use vs. alternatives guidance and no exclusions relative to get_product or search_spare_parts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_spare_partsSearch spare partsBRead-onlyIdempotentInspect
Search Energirör's spare-parts catalog for IVT, NIBE, Bosch, CTC, ComfortZone and other heat-pump parts. Returns article number, manufacturer, customer price in SEK incl. VAT, compatibility coverage and direct product URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results, default 10. | |
| query | Yes | Part name, article number or technical search term. | |
| agent_id | No | Optional stable partner/agent identifier used for referral attribution in returned product URLs. | |
| manufacturer | No | Optional manufacturer filter, e.g. IVT or NIBE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, closed-world). The description adds useful context: what fields are returned and that prices are SEK incl. VAT, which no structured field provides. It does not mention ranking, fuzzy matching, or empty-result behavior.
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 tightly written sentences, front-loaded with the purpose and then the return payload. No filler or redundancy.
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 search tool with full schema coverage and clear annotations, the description is adequate but leaves the primary routing question unanswered: when to pick this over search_products or get_spare_part. Adding one comparative sentence would complete it.
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 four params are documented in the schema. The description adds no parameter-level detail (e.g., query syntax, manufacturer matching behavior), so it stays at the baseline 3.
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 resource (spare-parts catalog) and names the manufacturers. It distinguishes itself from generic siblings like search_products by scope (spare parts) but doesn't explicitly contrast with get_spare_part or get_parts_for_model.
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?
No guidance on when to use this vs alternatives like get_spare_part (single lookup) or get_parts_for_model (by model). The agent must infer from names alone. Present but entirely implicit.
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
- First observed
check_compatibility - First observed
check_well - First observed
get_parts_for_model - First observed
get_product - First observed
get_spare_part - First observed
search_products - First observed
search_spare_parts
Related MCP Connectors
Finnish industrial supplies store. Read-only MCP: catalog search, product details, cart, policies.
Danish grocery catalog as MCP tools: live offers across all major chains, stores, EAN lookup, stock.
Live Swedish price & service comparison (products, broadband, mobile, electricity, loans)
Finnish e-commerce for electrical & construction supplies. Read-only MCP with 4 tools.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceMCP server that provides real-time weather data, forecasts, and historical weather information from SMHI (Swedish Meteorological and Hydrological Institute) for any location in Sweden.2-
- FlicenseNot gradedqualityCmaintenanceSweden's B2B intelligence infrastructure MCP server providing 21 tools across 5 products for procurement, credit, company lifecycle, website pipeline, and property intelligence.-
- FlicenseNot gradedqualityCmaintenanceA read-only MCP server that provides access to the Swedish Geological Survey (SGU) wells dataset, enabling search, retrieval, and export of well data with geocoding support.-
- AlicenseAqualityFmaintenanceEnables querying Swedish statutes, provisions, case law, preparatory works, and EU law cross-references from any MCP-compatible client.1956 npm1Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.