ATX Granite King
Server Details
Austin TX countertop prices, live granite/quartz slab inventory, job estimates and quote requests.
- Status
- Healthy
- Uptime
- 99.9% over 29 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Most tools have distinct purposes: search_stones vs get_stone, get_pricing vs estimate_job, and visualize_kitchen vs get_visualization are clearly separated by the async-job description. Minor overlap between check_service_area and get_pricing (both touch service area), but descriptions clarify the split.
All tools follow a consistent snake_case verb_noun pattern (check_service_area, estimate_job, get_pricing, get_stone, search_stones, request_quote, visualize_kitchen, get_visualization). The convention is predictable throughout with no mixed styles.
Eight tools is well-scoped for a granite countertop business, covering discovery, pricing, estimation, visualization, and contact. Each tool earns its place with no redundancy.
The surface covers the full customer journey: search, stone details, pricing, service area, cost estimation, kitchen visualization, viz status, and quote request. Only minor gaps like scheduling/appointment booking or order tracking, which agents can work around via request_quote.
Available Tools
8 toolscheck_service_areaCheck service areaCInspect
Whether ATX Granite King serves a city or town, and whether pricing changes there.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not say whether this is a read-only lookup, what the response contains (boolean coverage? pricing delta?), or any call constraints, leaving the agent to guess the 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?
A single compact sentence with no filler. The dual-clause 'whether... and whether...' construction is slightly awkward to parse but still front-loads the essential purpose.
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 tool with no annotations and no output schema, the description should at least convey what the caller gets back (coverage decision and pricing-change signal) and how to act on it. It hints at both topics but never states the return shape, leaving a meaningful gap.
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 'city' parameter. The description partially compensates by clarifying the accepted input is a city or town, but it adds no format, casing, or locality guidance beyond the maxLength=60 constraint in 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?
The description states a specific check: coverage for a city/town plus whether pricing differs there. It is distinguishable from pricing/quote siblings, though it is phrased as a noun clause ('Whether...') rather than a verb-led statement of what the tool does.
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 indication of when to call this versus siblings like get_pricing or estimate_job, nor any prerequisite or exclusion. The workflow context (e.g., verify coverage before quoting) must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_jobEstimate a countertop jobAInspect
Estimate total cost from countertop square feet: install at the posted rate plus slabs. Assumes about 75% of each slab is usable.
| Name | Required | Description | Default |
|---|---|---|---|
| sqft | Yes | Countertop square feet (length x depth in inches / 144, summed) | |
| slab_sqft | No | Square feet per slab; defaults to 55 (about 126 x 63 in) | |
| slab_price_usd | No | Price per slab; defaults to the $999 Budget Collection |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose one real behavioral trait — the 75% slab-utilization assumption — which materially changes the number, but it omits whether this is a pure calculation with no side effects, where the 'posted rate' comes from, and what the result contains.
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, zero filler, with the core computation front-loaded and the assumption appended where it belongs. Nothing is repeated from the name or 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?
No output schema exists, so the description should say more about the returned figure — whether it is a single total, a breakdown of install vs slabs, and what currency. It also leaves the pricing source and any dependency on get_pricing unexplained, which is a gap for a cost-estimation 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 sqft, slab_sqft and slab_price_usd are already fully documented with units and defaults; baseline is 3. The description adds the 75% usability heuristic, which is genuinely not in the schema, but no per-parameter meaning beyond it.
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?
Names a specific verb (estimate) and resource (countertop job total cost) and states the formula basis (square feet, install rate plus slabs), which separates it from get_pricing and request_quote. It never explicitly names a sibling, so an agent must infer the boundary rather than read it.
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: call it when you have countertop square footage and want a total-cost estimate. There is no stated when-not (e.g., versus get_pricing for rates alone or request_quote for a formal bid), and the 'posted rate' it depends on is never attributed to a source.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingPosted countertop pricingBInspect
ATX Granite King's posted prices, what they include, service area and contact details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It does disclose the kind of data returned (posted prices and their inclusions), which implicitly signals a read-only lookup, but says nothing about auth needs, response format, or freshness/update cadence. Adequate for a zero-parameter read, but thin.
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 compact sentence that leads with the core resource (posted prices). The trailing list of secondary items (service area, contact details) is slightly overloaded but the sentence is not wasteful.
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 must convey what comes back; it names the categories (prices, inclusions, service area, contacts) but not their structure or granularity. For a simple zero-param lookup this is minimal-viable rather than 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?
The tool takes no parameters, so there is nothing for the description to clarify; the baseline of 4 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?
Gets specific about the resource: posted countertop prices plus what those prices include. However, it dilutes scope by bundling in 'service area and contact details', which overlaps with the check_service_area sibling and makes the tool's boundaries a little fuzzy.
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 guidance and no mention of alternatives such as estimate_job for a custom quote or request_quote. An agent must infer that this is the static price-list lookup versus a per-job estimate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stoneStone detailsBInspect
Full details for one stone by slug (from search_stones).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup but says nothing about what happens with an unknown/invalid slug, whether auth is required, or the shape/size of the returned detail, which for a 'full details' tool is a meaningful gap.
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 zero filler; the resource and the key constraint (one stone, by slug) come first, and the provenance hint is appended compactly.
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, no-output-schema lookup tool the description covers the essentials (what it returns and where the slug comes from). It stops short of covering failure modes or expected return richness, which is adequate but not 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?
Schema description coverage is 0%, so the description must compensate for the single 'slug' parameter. It does add provenance value by tying the slug to search_stones, but it never clarifies format constraints (maxLength 120, string identifier) beyond that.
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 ('Full details for one stone by slug') and implicitly contrasts with the list-style sibling search_stones by specifying a single stone. It is clear what the tool returns, though it does not explicitly name the other siblings it is not.
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 parenthetical '(from search_stones)' implies the correct workflow — obtain a slug via search_stones, then fetch details here — which is useful routing context. However, it gives no explicit when-not guidance (e.g., use search_stones when you don't yet have a slug) and no mention of prerequisites or error behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_visualizationCheck a visualizationBInspect
Status and image for a visualize_kitchen job.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does reveal the return contents (status and image), which hints at an async lifecycle, but says nothing about how long a job takes, whether repeated polling is expected, what status values mean, auth requirements, or error 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?
A single short sentence with the resource and return contents front-loaded and no filler. It is efficient, though it is so terse that it edges into under-specification.
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 job-status tool with no annotations and no output schema, the description is too thin. It does not explain the polling model, the possible status values, what the image represents, or failure handling – all of which an agent needs to invoke it correctly in a loop.
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 'id' parameter has 0% schema description coverage, so the description must compensate. 'for a visualize_kitchen job' does imply the id is a job identifier, but it gives no format, source, or validity guidance beyond that.
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: it returns the status and image for a job created by visualize_kitchen, which distinguishes it from the sibling that creates jobs. It never explicitly names the sibling as a dependency, but the resource 'visualize_kitchen job' makes the pairing clear.
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 the phrase 'for a visualize_kitchen job' – an agent can infer this is the follow-up call after visualize_kitchen. There is no explicit when/when-not guidance, no mention of polling, and no statement of prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_quoteRequest a quoteBInspect
Send a countertop quote request to the ATX Granite King crew. Only call this when the user explicitly asks to be contacted and has given their own phone or email.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| name | Yes | ||
| sqft | No | ||
| No | |||
| phone | No | ||
| stone | No | ||
| details | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that this transmits user contact data to an external party and requires explicit user consent, but says nothing about irreversibility, what the crew does with it, confirmation behavior, or error handling.
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, with the external send stated first and the consent precondition immediately after. 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 7-parameter lead-submission tool with no annotations, no output schema, and no field-level documentation, the description is too thin. It covers the consent rule well but leaves the agent guessing at what most parameters should contain and what happens after submission.
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% across 7 parameters, so the description must carry the load. It references only phone and email (2 of 7) and omits the required name plus city, sqft, stone, and details entirely, leaving most fields undefined for the agent.
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 concrete verb and resource: sending a countertop quote request to the ATX Granite King crew. That is a specific, actionable purpose that separates it from read-oriented siblings like get_pricing or search_stones, though it does not explicitly name any sibling.
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 an explicit gating condition: only call when the user explicitly asks to be contacted and has provided their own phone or email. That is a clear when-to-use rule, but it does not contrast this tool with estimate_job, which an agent might otherwise pick for a pricing interaction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stonesSearch the slab yardBInspect
Search granite, quartz, quartzite, marble and other slabs currently on the Austin yard, including $999 Budget Collection slabs.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | White, Gray, Black, Cream, Brown, Green, Blue, ... | |
| limit | No | ||
| query | No | Words in the stone name, e.g. 'taj mahal' or 'black' | |
| material | No | Granite, Quartz, Quartzite, Marble, Porcelain, Dolomite, ... | |
| budget_only | No | Only $999 Budget Collection slabs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose that results are location-limited to the Austin yard and that $999 Budget Collection slabs are included by default. It says nothing about pagination behavior beyond the schema's limit cap, result ordering, or auth needs.
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 that names the resource, the material scope, the location constraint, and the budget inclusion with no filler. Every clause earns its place.
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 five-parameter search tool with no annotations and no output schema, the description omits return shape, default sort order, and how limit interacts with total results. The material and location coverage is adequate, but the missing operational details leave 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 coverage is 80%, so the schema already documents color, query, material, and budget_only meaningfully. The description echoes material types and the budget collection, adding only marginal value over the schema's own descriptions and not clarifying limit or default behavior.
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 (granite, quartz, quartzite, marble and other slabs) with scoping detail about the Austin yard. It implies a multi-result listing versus the singular get_stone sibling, but never names or contrasts with siblings 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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as get_stone for a single slab or request_quote for pricing. The 'currently on the Austin yard' phrase implies live inventory scope but does not tell the agent when this tool is the right pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visualize_kitchenSee a stone on your kitchenAInspect
Render a slab from the Austin yard onto a photo of the user's own kitchen or bath, and return the image with a price estimate. Pass a public image URL of the room (JPEG/PNG/WebP) and a stone slug from search_stones. Rendering takes about 30-90 seconds; if it is not ready in time, call get_visualization with the returned id.
| Name | Required | Description | Default |
|---|---|---|---|
| sqft | No | Countertop square feet, for the price estimate | |
| stone_slug | Yes | Stone slug from search_stones, e.g. '2cm-taj-mahal-premium-leather' | |
| room_image_url | Yes | Public URL of a photo of the room, countertops visible |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the 30-90 second render latency, that the result may not be ready in time, and that a returned id must be polled via get_visualization. It does not mention auth requirements, cost, or rate limits, which are the remaining behavioral gaps.
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 outcome, then inputs, then the async fallback. No filler and every clause carries operational 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?
There is no output schema, and the description correctly compensates by stating what comes back (an image plus a price estimate) and how to retrieve it later. It stops short of covering failure modes or the cost/auth context an agent might need.
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 the baseline is 3; the description adds value by naming accepted image formats (JPEG/PNG/WebP) and tying stone_slug back to search_stones. sqft is left entirely to the schema, but it is well documented there.
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 ('Render a slab ... onto a photo of the user's own kitchen or bath') plus the two outputs it produces (image and price estimate). It also implicitly separates itself from the sibling get_visualization by describing this as the initiating call.
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?
Tells the agent the prerequisites (a public room image URL and a stone slug sourced from search_stones) and routes to the alternative when the render is not ready ('call get_visualization with the returned id'). No explicit when-not-to-use case is given, but the async handoff rule is clear.
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.
2 tool updates
- Added
get_visualization - Added
visualize_kitchen
6 tool updates
- First observed
check_service_area - First observed
estimate_job - First observed
get_pricing - First observed
get_stone - First observed
request_quote - First observed
search_stones
Related MCP Connectors
Countertop shops: projects, clients, quotes, invoices, orders and slab inventory in Stone Project.
Book pool service in Austin, TX: prices, service area by ZIP, free callback from a local pro.
Search Austin-area MLS listings. Free with signup; comps and market stats are paid.
Live lab grown diamond inventory, engagement ring settings, fine jewelry, and diamond buying guides.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceCheck if a contractor's remodeling bid is fair — analyze a quote (fairness score + red flags), get 2026 cost estimates by city, and look up BLS trade labor rates.-
- AlicenseNot gradedqualityDmaintenanceLive real estate market data for 895 US metros. Ask your AI assistant about home prices, rental yields, investment health scores, migration trends, and affordability. Free tier covers top 50 markets (no account needed). Premium tier unlocks all 895 markets, HUD Fair Market Rents, side-by-side market comparison, and filtered market search.MIT
- FlicenseNot gradedqualityDmaintenanceProvides construction cost estimation tools using data from a public Google Sheet for items like concrete, framing, and electrical. It allows users to search items, filter by category, and calculate total project costs including labor and material expenses.-
- AlicenseAqualityAmaintenanceMCP server providing 12 tools for Seattle-area home remodeling: real-time cost estimation across 8 project types, contractor business info, project portfolio, blog content, and quote submission. Connects via Streamable HTTP — no auth required.36MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.