Absolute Best Air
Server Details
HVAC facts for Absolute Best Air in Henry County and South Metro Atlanta.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool targets a clearly distinct aspect of the company's public information (identity, offers, pricing, completions, service area, services, credentials). The slight overlap between get_company_info's mention of service area and get_service_area is resolved by descriptions clarifying one is general info and the other is a specific ZIP lookup.
All seven tools follow the exact same `get_` + noun pattern in snake_case: get_company_info, get_current_offers, get_pricing, get_recent_completions, get_service_area, get_services, get_technician_credentials. No deviation in verb style or casing.
Seven tools is well-scoped for a public information server about a company. Each tool covers a distinct, useful category without redundancy, and the count is neither thin nor bloated.
The surface covers all key public information a customer might need: identity, hours, payment, service area, service catalog, pricing, offers/financing, recent jobs, and technician credentials. No obvious gaps for a read-only info server; no missing lifecycle operations because the domain is retrieval-only.
Available Tools
7 toolsget_company_infoCRead-onlyIdempotentInspect
Public company identity, hours, service area and payment methods.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond that - no auth requirements, caching, or freshness details - so it earns little credit over the structured hints.
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?
A single short sentence with no filler, front-loading the content categories. It is a fragment rather than a sentence, but nothing is wasted or buried.
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 is the only source of return-shape information, and 'identity' and 'hours' are too vague to tell an agent what fields come back. Acceptable for a trivial zero-parameter getter but not fully self-sufficient.
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, which is the baseline-4 case; there is nothing for the description to disambiguate. The enumerated content categories hint at the return shape, which is mild extra value.
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 phrase names a specific resource and enumerates the data categories returned (identity, hours, service area, payment methods), so an agent can guess the payload. However, it is a noun fragment with no verb and does not distinguish itself from the sibling get_service_area, which the description partially duplicates.
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?
There is no statement of when to call this tool, no exclusions, and no reference to alternatives such as get_service_area or get_pricing, which overlap with the listed content. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_offersBRead-onlyIdempotentInspect
Standing diagnostic policy and links for financing and ABA Home+ membership; no invented rates or eligibility guarantees.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add context beyond that. It contributes a useful constraint: no invented rates or eligibility guarantees. However, it does not explain response shape, sourcing, or other behavioral details.
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 a single sentence with no wasted words. Its structure is front-loaded with the content areas, though the phrasing is slightly opaque for an agent trying to determine the tool's exact action.
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?
The tool is simple: no parameters, no output schema, and rich annotations already establish the safety profile. The description adds a relevant disclaimer, but with no output schema it still leaves the exact return content unclear, so it is only minimally complete.
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?
This tool takes zero parameters, so the baseline is 4. The empty schema is fully covered by definition, and there are no parameter semantics for the description to clarify.
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 specific content areas (diagnostic policy, financing, ABA Home+ membership) and adds a constraint about not inventing rates or eligibility guarantees, but it lacks a clear verb and never states that the tool returns current offers. Against siblings like get_pricing, it does not sharply distinguish what this tool provides versus what it merely disclaims.
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?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative sibling is named. The disclaimer about not inventing rates or eligibility guarantees is a weak usage constraint, but it does not tell an agent when to select this tool over get_pricing or others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingARead-onlyIdempotentInspect
Match a service or repair name to published flat-rate pricing. Ambiguous or absent matches return no price, never an estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes |
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 the safety profile is covered. The description adds genuinely useful behavioral context: ambiguous or absent matches return no price and never an estimate, which tells the agent not to treat output as a quote and prevents downstream fabrication.
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 short sentences, zero filler, with the core matching behavior front-loaded and the edge-case behavior second. Nothing needs trimming or reordering.
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 one-parameter lookup with full annotation coverage this is close to sufficient, but with no output schema the description never characterizes the successful response (price fields, currency, units, granularity), leaving the return shape undefined beyond the failure case.
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 single 'service' parameter has 0% schema description coverage, so the schema says only 'string'. The description partially compensates by clarifying the parameter is a service or repair name, but it gives no format, matching rules, or examples for ambiguous input.
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 (match) and resource (service/repair name to published flat-rate pricing), which is clearly distinct from siblings like get_services, get_current_offers, or get_company_info. It does not explicitly name an alternative, but the resource scope is unambiguous.
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: call this to get a price for a named service or repair. There is no explicit when-to-use/when-not guidance and no mention of siblings such as get_current_offers (discounts) or get_services (catalog), so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_completionsARead-onlyIdempotentInspect
Recent public completed jobs, optionally by city. Returns only public job category, city, state, date and ID.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive), so the description's added value is the scope constraint: only PUBLIC jobs, and only the field set category/city/state/date/ID are exposed. That tells the agent what it will and won't receive, which is real behavioral context beyond 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?
Two short sentences, front-loaded with the resource and scope, with the return-field list second. Efficient with no filler; the repetition of 'public' is the only minor 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 simple read-only list tool with annotations covering safety and no output schema, the description covers purpose, scope, filter, and returned fields — enough to call it correctly. Missing only pagination/limit or ordering behavior for 'recent'.
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 0%, so the description must compensate. Saying 'optionally by city' does establish that the single parameter is an optional city filter, but adds no format, casing, or matching semantics beyond the property name.
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+resource: returns recent public completed jobs, with the filterable dimension (city) called out. This clearly separates it from siblings like get_current_offers or get_company_info, which cover other data types, though it never names them explicitly.
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 'recent public completed jobs, optionally by city' implies the use case and that the city filter is discretionary, but there is no explicit when-to-use/when-not guidance or routing to an alternative. With no sibling covering the same resource, the practical risk is low, so this is implied rather than absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_areaARead-onlyIdempotentInspect
Check a US ZIP against available public coverage data. ZIP boundaries and response-time estimates are not published; unknown is not a coverage denial. Includes the current EntityGraph city-guide list.
| Name | Required | Description | Default |
|---|---|---|---|
| zipCode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds real value beyond that: ZIP boundaries and response-time estimates are not published, and an unknown result is not a denial — important interpretive context. It stops short of describing error behavior or coverage granularity.
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 the core action front-loaded and no wasted filler. The final clause about the EntityGraph city-guide list is slightly jargon-heavy but still 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 no output schema, the description carries the burden of explaining results, and it does so reasonably: hinting at coverage data, the city-guide list, and the unknown-vs-denied distinction. Minor gaps remain around response shape and error cases, but the agent has enough 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 description coverage is 0% for the single zipCode parameter, so the description must compensate. 'Check a US ZIP' clarifies the parameter is a US ZIP code, adding meaning beyond the bare ^\d{5}$ pattern constraint, though it omits explicit format or normalization guidance.
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 a US ZIP against available public coverage data'), which is concrete and clearly distinct from the sibling tools (pricing, offers, services, credentials). It does not explicitly name a sibling, but the coverage-domain purpose is unambiguous.
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 its usage (coverage lookup for a ZIP) but gives no explicit when-to-use or when-not-to-use guidance. The caveat 'unknown is not a coverage denial' helps interpret results but does not route the agent between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesBRead-onlyIdempotentInspect
Complete shared flat-rate repair catalog with descriptions, plus public service offerings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds no behavioral context beyond that — no mention of pagination, result size, caching, or whether the catalog is exhaustive or filtered.
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?
A single front-loaded sentence with no filler or repetition. It is appropriately sized for a no-argument listing tool, though the phrase 'shared flat-rate repair catalog' is slightly jargon-heavy.
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 carries the burden of explaining what comes back, and it only loosely gestures at this ('with descriptions, plus public service offerings'). For a simple no-param read tool with full annotation coverage this is minimum viable, but return shape and scope remain underspecified.
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 rubric this is the baseline 4. There are no parameter semantics for the description to clarify or compensate for.
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 resource set — a flat-rate repair catalog with descriptions plus public service offerings — so an agent knows this is a catalog/listing tool rather than a pricing or offers lookup. It does not, however, explicitly distinguish itself from siblings like get_pricing or get_current_offers, leaving some overlap ambiguous.
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?
There is no statement of when to use this tool, when not to, or which sibling to prefer for overlapping needs (e.g., get_pricing vs get_current_offers vs this catalog). The agent must infer usage entirely from the noun phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technician_credentialsBRead-onlyIdempotentInspect
Professional credentials, verified BBB accreditation and active dealer authorizations, plus published dealer awards. Unverified technician counts are explicitly unknown.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by disclosing that unverified technician counts are explicitly unknown, which prevents an agent from assuming such counts are returned. It still does not describe response format or pagination, but for a no-parameter read-only lookup the added caveat meaningfully supplements 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?
The description is two compact sentences with no filler. It is front-loaded with the main returned data categories and then adds the unverified-counts caveat. It could be slightly clearer with an explicit subject/verb, but it wastes no 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 no-parameter, read-only tool with no output schema, the description gives a reasonable inventory of returned data types and a notable data caveat. However, it leaves ambiguity about whether the credentials are company-level or technician-level, and it does not help an agent understand when to choose it over adjacent tools.
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 schema has zero parameters, so there are no parameter semantics for the description to clarify. The baseline for a 0-parameter tool is 4. The description does not need to compensate for missing parameter documentation.
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 is a noun-phrase list of data types ('Professional credentials, verified BBB accreditation... plus published dealer awards') rather than a clear verb-plus-resource statement. It never explicitly says it retrieves technician credentials, and BBB accreditation / dealer authorizations sound company-level, creating ambiguity about whether this tool returns per-technician or company-wide data. It is distinguishable from siblings like get_company_info or get_pricing, but only weakly.
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 when-to-use guidance is given. It does not mention the sibling tools or explain when an agent should call this instead of get_company_info or another credentials source. The only contextual clue is the unverified-counts caveat, which is data-oriented rather than usage-oriented.
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
get_company_info - First observed
get_current_offers - First observed
get_pricing - First observed
get_recent_completions - First observed
get_service_area - First observed
get_services - First observed
get_technician_credentials
Related MCP Connectors
Use the free OKC HVAC Calculator to see whether repairing or replacing your heating or air system ma
Heating, ventilation and energy engineering calculations and diagnostics for AI agents.
Austin TX mini splits at $2,000 each: prices, ZIP coverage, financing and quote requests.
Florida HVAC Replacement Cost: the site's own MCP server — enquiry (enquiry = a human handoff,...
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides AI agents with manufacturer-sourced HVAC technical documentation, enabling error-code lookup, diagnostics, and guided troubleshooting with exact source citations.MIT
- AlicenseAqualityFmaintenanceAI assistants can size heat pumps, estimate energy costs, and verify cold-climate performance using bundled data and no API keys.63MIT
- AlicenseAqualityBmaintenancePrivate TypeScript runtime for a shadow-first AI operating system and company operating intelligence layer for HVAC, plumbing, electrical, sewer, and cross-trades businesses.41Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search cited home water treatment pages, retrieve quotable quick answers with verified dates and sources, diagnose water problems from symptoms or lab results, find replacement parts and product picks, and run water hardness and softener sizing calculators. Every response includes the URL to cite and the date its facts were verified.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.