Holston AI
Server Details
AI visibility audits, llms.txt and schema generators, instant quotes, systems maps and ROI tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Most tools have clearly distinct actions (audit, quote, map, calculate, generate, contact). The main friction is the pair generate_boilerplate_schema vs generate_business_schema, where 'schema' means a database schema in one and JSON-LD structured data in the other; descriptions clarify, but the shared noun invites misselection.
All nine tools follow a consistent snake_case verb_noun convention (audit_ai_visibility, build_quote, calculate_manual_work_cost, generate_llms_txt, request_consultation). Variations like verb_noun_noun are still predictable and readable.
Nine tools is well-scoped for a sales/consulting workflow: audit, quote, map, cost, ROI, three generators, and a contact step. Each earns a place with no obvious filler.
The surface covers the full prospecting-to-quote-to-consultation pipeline, including complementary assets (business schema, llms.txt) for the audit's findings. Minor gaps: no tool to retrieve or update prior quotes/reports, and no follow-up or lead-status operation.
Available Tools
9 toolsaudit_ai_visibilityAI Visibility AuditARead-onlyIdempotentInspect
Audits a live public website and scores (0–100, grade A–F) how well AI assistants (ChatGPT, Claude, Perplexity) and search engines can find, read and cite it. Checks robots.txt rules for AI and search crawlers, server-rendered text, business and FAQ structured data, Open Graph, llms.txt, sitemap, HTTPS, mobile viewport and response time. Returns each check with a plain-English fix, the top 3 fixes, and a shareable report link. Takes up to ~20 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website to audit, e.g. example.com or https://www.example.com/ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), and the description adds genuinely new operational context: a ~20 second latency expectation, the fact that the target must be live and public, and the shape of the return (per-check fixes, top 3 fixes, shareable report link). It stops short of documenting failure behavior for unreachable or blocked sites, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and scoring scale, then a compact enumeration of checks, then return shape, then runtime — a logical order with no filler. The long check list is dense but each item is informative about scope, though it could be trimmed slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly assumes the burden of describing returns (per-check results with fixes, top 3 fixes, report link) and discloses the latency. It leaves error/edge-case behavior (unreachable site, redirects, non-HTML targets) unstated, which is the main remaining gap for a single-param, no-output-schema 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 coverage is 100% and the single url parameter already documents format with an example, so the schema carries the burden. The description adds only an indirect constraint ('live public website'), which slightly narrows acceptable inputs but adds no syntax or format detail beyond the schema. 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?
Specific verb (audits) + resource (a live public website) + explicit output (0–100 score, A–F grade) and the exact audience (AI assistants and search engines). It also enumerates the check categories, so an agent can tell precisely what this does versus the unrelated calculate_/build_ siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'a live public website' signals the input must be publicly reachable (not localhost or auth-gated), which is useful context. However, there is no explicit when-to-use guidance, no mention of prerequisites or when the audit is inappropriate, and no alternative tool named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_quoteInstant QuoteARead-onlyIdempotentInspect
Builds an itemized Holston AI quote from fixed prices: one-time builds, monthly plans, first-year total (monthly plans have a 12-month minimum), timeline, terms, fitting add-ons, and a shareable link to the quote on holstonai.com. Ask what the customer needs first; do not add plans they did not ask for.
| Name | Required | Description | Default |
|---|---|---|---|
| care | No | Monthly service contract: care-site (websites) | care-app (apps and agents). | |
| builds | No | One-time builds. website-starter (one page, 3 days) | website-launch (up to 5 pages, 5 days) | website-growth (up to 10 pages, CMS, 10 days) | website-commerce (online store, 15–20 days) | small-app (custom web app, 2 weeks) | ai-agent-mvp (AI agent or SaaS MVP, 2–4 weeks). | |
| hosting | No | Monthly hosting: hosting-site (websites) | hosting-app (apps and agents). | |
| seo_plan | No | Monthly SEO + AEO plan: seo-essentials (local) | seo-growth (adds AI search / AEO) | seo-authority (adds links, PR, competitor tracking). | |
| assessment | No | Systems & Data Health Check, a one-time fixed-price assessment by company size: assessment-small (up to 50 employees) | assessment-medium (51–200) | assessment-large (201–500). The fee is credited toward a project started within 60 days. | |
| business_name | No | Customer or business name to show on the quote. |
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 genuinely new behavior: prices are fixed (not computed or negotiated), monthly plans carry a 12-month minimum, and the output includes a shareable link on holstonai.com. The only soft spot is that producing a 'shareable link' reads slightly like a persisted artifact, which sits in mild tension with readOnlyHint=true, but it is plausibly just a generated URL and not a hard contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the artifact contents are front-loaded in the first sentence, followed by a single short directive sentence. The enumerated quote components are dense but each maps to real output content, and there is no filler or repetition of 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?
There is no output schema, so the description usefully compensates by listing what the quote contains (itemization, first-year total, timeline, terms, link). With zero required parameters, the 'ask what the customer needs first' instruction also covers the optionality of the inputs. It stops short of describing pricing magnitudes or how add-ons map to parameters, which would help an agent set expectations.
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 every enum value is documented, so the baseline is 3. The description contributes above baseline by establishing that the monthly parameters (care, hosting, seo_plan) are governed by a 12-month minimum and that builds are one-time fixed prices, which is commercial semantics the schema itself does not state.
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 — it builds an itemized quote — and enumerates exactly what the artifact contains (one-time builds, monthly plans, first-year total, timeline, terms, add-ons, shareable link). That scope cleanly separates it from the calculation siblings like calculate_manual_work_cost and calculate_mvp_timeline_roi, which produce estimates rather than a priced, shareable quote.
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 clear procedural guidance: 'Ask what the customer needs first; do not add plans they did not ask for,' which is an explicit usage rule for the quote-building flow. It does not, however, compare itself to the calculate_* or build_systems_map siblings or state when a quote is not the right output, so the alternative-routing element is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_systems_mapSystems MapARead-onlyIdempotentInspect
Draws a map of a company's software systems and how data moves between them (automatic, manual, export/import), as a Mermaid diagram with a shareable link. Flags manual handoffs, the same data kept in several unsynced systems, hub systems many processes depend on, and systems with no connections. Use after interviewing the user about their systems; nothing is stored.
| Name | Required | Description | Default |
|---|---|---|---|
| flows | No | How data moves between systems. | |
| company | No | Company name, shown on the map. | |
| systems | Yes | Every software system, database or important spreadsheet the business uses. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the output is a Mermaid diagram with a shareable link, it performs four named analyses, and 'nothing is stored' preempts any persistence concern raised by the word 'shareable link'.
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 dense, front-loaded sentences. The core action and output come first, the analytical flags second, and the prerequisite plus non-persistence note close it out with no filler.
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 three-parameter, read-only, idempotent tool, the description covers purpose, output artifact, analytical behavior, prerequisite, and data-retention policy. Even without an output schema, the agent knows what it will receive, which is what an output schema would otherwise have supplied.
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 the nested flow/system properties are documented in detail (including the method enum semantics), so the schema carries the burden. The description restates the method values (automatic, manual, export/import) but adds no syntax, naming convention, or constraint guidance beyond it — 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?
Names a specific verb (draws) and resource (company's software systems and data flows), plus the concrete output format (Mermaid diagram with a shareable link). The extra clause about what it flags (manual handoffs, duplicate unsynced data, hubs, orphans) further distinguishes it from any sibling tool.
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?
Explicit trigger: 'Use after interviewing the user about their systems,' which tells the agent when in the workflow to call it. No alternatives are named, but the sibling tools (audit_ai_visibility, build_quote, calculate_*) are unrelated in scope, so no exclusion is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_manual_work_costManual Work Cost CalculatorARead-onlyIdempotentInspect
Calculates what manual, repetitive work caused by disconnected systems costs per year: staff hours, full-time equivalents, labor and error costs, five-year cost, and the savings from automating it. Input a list of tasks with hours per week; hourly cost is optional.
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | Each manual or repetitive task caused by disconnected systems. | |
| company | No | Company name for the report. | |
| automation_rate | No | Share of these hours that connecting the systems would remove, 0–1 (default 0.7). | |
| working_weeks_per_year | No | Working weeks per year (default 48). | |
| default_hourly_cost_usd | No | Hourly cost used when a task has none (default $40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-open-world computation, so the safety profile needs no restating. The description adds genuine context beyond that: it is a cost-modeling calculation whose result set includes five-year totals and automation savings, which is exactly the behavioral information an agent needs when 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?
Two sentences with zero filler: the first front-loads what is computed, the second states the input contract. Nothing is repeated and the cost outputs are listed 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?
With no output schema, the description carries the burden of describing returns and does so by naming the six result categories, including the five-year cost and automation savings. It stops short of explaining how the automation_rate and working_weeks assumptions shape those results, but the schema defaults largely cover that.
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 every parameter (tasks, hours_per_week, hourly_cost_usd, error_cost_per_month_usd, automation_rate, working_weeks_per_year, default_hourly_cost_usd) is already documented in the schema with defaults and ranges. The description's echo that hourly cost is optional adds nothing the schema does not, 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?
States a specific verb (calculates) and a well-defined resource (the annual cost of manual, repetitive work from disconnected systems), then enumerates the outputs: staff hours, FTE, labor and error costs, five-year cost, and automation savings. It is clear on its own, but it never mentions the similarly-named ROI/cost siblings (calculate_mvp_timeline_roi, build_quote), so an agent must infer the boundary between them.
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 sentence 'Input a list of tasks with hours per week; hourly cost is optional' gives minimal invocation guidance about required versus optional input. There is no statement of when to pick this calculator over calculate_mvp_timeline_roi or build_quote, so the usage context is only implied by the differing cost model.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_mvp_timeline_roiMVP Timeline ROI CalculatorARead-onlyIdempotentInspect
Compares a Holston AI fixed-price 2–4 week build against a traditional ~6-month build. Returns build costs, labor savings captured, cost of delay, developer-weeks freed, payback week, and a month-by-month cumulative net position over the analysis window.
| Name | Required | Description | Default |
|---|---|---|---|
| dev_headcount | Yes | Number of in-house developers who would be assigned to a traditional build. | |
| project_scope | Yes | Target project scope. Websites: website_launch (up to 5 pages, 5 days) | website_growth (up to 10 pages, 10 days) | website_commerce (online store, 15–20 days). Small app: small_app (2 wks). Apps & AI agents: lean (2 wks) | standard (3 wks) | complex (4 wks). | |
| automation_rate | No | Fraction of the manual hours eliminated once the software is live, 0–1 (default 0.7). | |
| dev_annual_cost_usd | No | Fully loaded annual cost per in-house developer (default $150,000). | |
| manual_hourly_cost_usd | No | Fully loaded hourly cost of the staff doing the manual work (default $45). | |
| analysis_horizon_months | No | Length of the comparison window in months (default 6). | |
| holston_fixed_price_usd | No | A specific fixed-price quote from Holston AI. If omitted, the scope's standard starting price is used. | |
| traditional_timeline_weeks | No | Delivery timeline of the traditional path in weeks (default: 6–12 for websites, 26 ≈ 6 months for apps/agents). | |
| traditional_vendor_cost_usd | No | External agency/vendor spend on the traditional path, on top of in-house dev time (default 0). | |
| holston_internal_involvement | No | Share of the in-house dev team's time needed during a Holston build, 0–1 (default 0.1). | |
| manual_process_hours_per_week | Yes | Hours per week your team currently spends on the manual process the software will replace. |
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 enumerating the computed outputs (build costs, labor savings, cost of delay, payback week, cumulative net position), which matters since there is no output schema.
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 waste, with the comparison framing front-loaded and the return values listed second. Every clause carries information an agent would otherwise have to guess.
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 an 11-parameter read-only calculator with no output schema, the description covers what the tool computes and what comes back. The main gap is the absence of routing guidance relative to sibling cost/quote 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?
Schema description coverage is 100%, so every parameter including defaults and enum scopes is already documented. The description adds no syntax or meaning beyond the schema, 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?
States a specific verb (compares) and resource (Holston AI fixed-price build vs traditional build ROI), and enumerates the outputs produced. It is clearly distinct from siblings like build_quote and calculate_manual_work_cost, though it never names or contrasts 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?
No guidance on when to choose this over build_quote or calculate_manual_work_cost, nor any prerequisites such as needing a fixed-price quote first. Usage must be inferred entirely from the title and parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_boilerplate_schemaBoilerplate Schema GeneratorARead-onlyIdempotentInspect
Generates a production-ready Next.js App Router repository layout, Prisma schema, and PostgreSQL DDL for a business domain (b2b_saas, marketplace, healthcare_admin, logistics, restaurant_retail, professional_services, manufacturing). Multi-tenant by default with org membership and audit logging; optional agent-run tables.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Business domain: b2b_saas | marketplace | healthcare_admin | logistics | restaurant_retail | professional_services | manufacturing. | |
| output | No | What to generate: repo_layout | prisma | sql | all (default all). | all |
| project_name | No | Repository / package name (kebab-case). | app |
| include_ai_agents | No | Add AgentRun/ToolCall tables plus agent runtime and MCP directories (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and closed-world behavior, so the safety profile is covered. The description adds real context beyond that: output is multi-tenant by default with org membership and audit logging, and agent-run tables are optional.
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 clauses with the artifact list front-loaded and defaults trailing. The enum re-listing is slightly redundant with the schema, but nothing else is wasted.
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 carries the burden of telling the agent what comes back, and it names the three artifact types. It does not describe the shape of the repo layout or whether content is returned vs. written, which is a minor remaining gap for a generator.
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 two enums) are already documented. The description restates the domain enum and hints at the include_ai_agents default but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (generates) and three concrete artifacts (Next.js App Router repo layout, Prisma schema, PostgreSQL DDL) for a named set of domains. An agent can tell immediately what this tool produces without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call it when you need boilerplate for one of the listed business domains. There is no explicit when-not, no prerequisites, and no named alternative, though the sibling tools are unrelated enough that routing is not really ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_business_schemaBusiness Schema GeneratorARead-onlyIdempotentInspect
Builds ready-to-paste Organization or LocalBusiness structured data (JSON-LD) with address, phone, hours, service area, services, social profiles and optional FAQs. If a website is given, details are pre-filled from it. Returns the tag plus checks to fix before publishing. Use it when an audit shows missing business schema.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Business website. If given, details are pre-filled from the site. | |
| city | No | ||
| faqs | No | Optional FAQs that appear visibly on the page; adds FAQPage markup. | |
| No | |||
| hours | No | ||
| phone | No | ||
| region | No | State or region, e.g. TN. | |
| street | No | ||
| country | No | Two-letter country code, default US. | |
| latitude | No | ||
| logo_url | No | ||
| services | No | Main services offered. | |
| image_url | No | ||
| longitude | No | ||
| description | No | ||
| postal_code | No | ||
| price_range | No | Optional, e.g. '$$' or '$100–$500'. | |
| service_area | No | Cities or regions served. | |
| business_name | No | Legal or trading name. | |
| business_type | No | The most specific schema.org type that fits, e.g. Plumber, Dentist, Restaurant, ProfessionalService. Default LocalBusiness. | |
| founding_year | No | ||
| social_profiles | No | Facebook, LinkedIn, Instagram, Google Business Profile, Yelp and similar URLs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered, and the description adds useful behavior beyond them: website pre-fill of details, and that output includes both the <script> tag and 'checks to fix before publishing.' That validation-feedback loop is meaningful context an agent could not infer from the schema. It stops short of describing failure modes when the URL cannot be fetched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each doing distinct work: what is built, the pre-fill behavior, the return payload, and the invocation trigger. Output contract and trigger are front-loaded enough that an agent can act after one read.
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 22-parameter, zero-required, no-output-schema tool, the description covers the essentials: what gets produced, that everything is optional and filled from the site when possible, and what comes back. It does not flag the FAQPage-markup side effect of faqs (only the schema does) or note that no required fields means a bare call is valid, leaving minor 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?
With 22 parameters at 45% schema description coverage, the description carries real weight: it names address, phone, hours, service area, services, social profiles and optional FAQs, and explains the pre-fill behavior of the url parameter. However, roughly half the parameters (latitude/longitude, founding_year, price_range, logo/image URLs, business_name) get no clarification beyond their names, so it only partially compensates.
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 artifact ('Builds ready-to-paste Organization or LocalBusiness structured data (JSON-LD)') and enumerates the entity fields it covers, so the agent knows exactly what is produced. It does not name the closest sibling (generate_boilerplate_schema) to draw the boundary between generic boilerplate and business-specific schema, so it stays a clear-but-undifferentiated 4.
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 trigger condition tied to a sibling tool's output: 'Use it when an audit shows missing business schema,' which chains naturally from audit_ai_visibility. No alternatives or when-not-to-use cases are stated, but the invoking context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_llms_txtllms.txt GeneratorARead-onlyIdempotentInspect
Reads a public website (homepage, sitemap and main pages) and writes a ready-to-upload llms.txt file that tells AI assistants who the business is, what it offers, where it works and which pages matter. Optional details (services, service area, hours, key facts) make it stronger. Use it when an audit shows no llms.txt.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The business website, e.g. example.com | |
| No | |||
| hours | No | Opening hours, e.g. 'Mon–Fri 8am–5pm, Sat 9am–1pm'. | |
| phone | No | ||
| address | No | Street address, city, state and ZIP. | |
| summary | No | Two or three sentences: what the business does, for whom, and where. Overrides the site's description. | |
| services | No | Main services or products, one per item. | |
| key_facts | No | Short facts AI assistants should know: years in business, licenses, starting prices, guarantees, awards. | |
| service_area | No | Where the business works, e.g. 'Kingsport, Johnson City and Bristol, TN'. | |
| business_name | No | Override the business name found on the site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so safety and external-fetch behavior are covered structurally. The description adds useful context beyond that: the data sources (homepage, sitemap, main pages) and the fact that the output is a file the caller must upload rather than a change applied to the site. It still omits failure modes (non-public sites, missing sitemap) and latency/limits.
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 sentences, front-loaded with the action and deliverable, then the value of optional inputs, then the selection condition. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly explains what the artifact is and what it contains (who the business is, what it offers, where it works, which pages matter). For a 10-parameter generation tool the picture is nearly complete, though it could say more about what happens when the site is unscrapable or the sitemap is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline is 3, but the description adds relative-importance information the schema lacks: services, service area, hours and key facts are called out as optional details that 'make it stronger.' That tells the agent which optional inputs are worth collecting, not just what they are.
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 artifact: reads a public website (homepage, sitemap, main pages) and produces a ready-to-upload llms.txt file. This is clearly distinct from the sibling generators (generate_business_schema, generate_boilerplate_schema) and from audit_ai_visibility, which only reports.
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 trigger: 'Use it when an audit shows no llms.txt,' which chains cleanly off the audit_ai_visibility sibling. It does not state the inverse (what to do if an llms.txt already exists) or any other prerequisites, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_consultationRequest a ConsultationAInspect
Sends the user's contact details and project summary to Holston AI so the team can follow up. Before calling: collect name, email or phone, and a summary of what they need (include any quote or report links from this conversation), show the user exactly what will be sent, and get their explicit agreement. Never call it without that agreement or with made-up details.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The person's full name. | |
| No | Email address. Provide email, phone, or both. | ||
| phone | No | Phone number. | |
| company | No | Company or business name. | |
| summary | Yes | What they need, in a few sentences: their situation, goals, timeline and anything already discussed (audit score, systems, budget). | |
| interest | Yes | Main service they are interested in. | |
| location | No | City and state, or country. | |
| best_time | No | Best days or times to reach them. | |
| quote_url | No | Instant quote link from build_quote, if one was created. | |
| report_url | No | AI visibility report or systems map link, if one was created. | |
| company_size | No | Approximate number of employees, e.g. '25' or '51–200'. | |
| user_confirmed | Yes | Must be true. Only set it after showing the user exactly what will be sent and the user agreed to share it with Holston AI. | |
| preferred_contact | No | How they prefer to be contacted. | either |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, open-world, non-idempotent write, but the description adds the crucial behavioral context those hints only imply: data leaves the system to a third party and must be gated behind user consent, with no fabricated details. It also flags the consent flag's meaning, which an agent otherwise might set carelessly.
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 purpose, then the precondition workflow and a hard prohibition. Every clause earns its place with no filler.
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 13-parameter, no-output-schema tool, the description covers purpose, required inputs, and the consent gate well. It doesn't say what the caller gets back or what happens after submission, but with no output schema that omission is minor.
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, but the description adds value by prioritizing which fields must be collected (name, email or phone, summary) and by calling out that quote_url and report_url come from this conversation. It does not explain the enum/interest semantics beyond the schema, so it stays just above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb+resource+destination: it sends the user's contact details and project summary to Holston AI for follow-up. This clearly distinguishes it from all siblings (audit_ai_visibility, build_quote, build_systems_map), which produce artifacts rather than transmit data externally.
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?
Explicit when-to-use and when-not-to-use: collect name, email/phone, and summary, show the user exactly what will be sent, get explicit agreement, and never call without it or with made-up details. The preconditions and prohibitions leave nothing to inference.
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
generate_business_schema - Added
generate_llms_txt
1 tool update
- Added
request_consultation
6 tool updates
- First observed
audit_ai_visibility - First observed
build_quote - First observed
build_systems_map - First observed
calculate_manual_work_cost - First observed
calculate_mvp_timeline_roi - First observed
generate_boilerplate_schema
Related MCP Connectors
Full AI visibility audits: schema, citations, agentic readiness, agent journeys, WordPress deploys.
AI visibility reports, competitor insights, readiness audits, and GEO content workflows.
Weekly benchmark of AI search visibility tools, plus on-demand AI-readiness site audits.
Full-cycle SEO automation for AI agents: technical audits, SEO articles, machine-readable pricing.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables users to scan any website for AI search visibility, producing AEO, GEO, agent readiness, and mention-readiness scores along with AI identity and business profile insights. Paid tools extend this to competitive comparisons, detailed audits, and generated fixes.41MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to scan pages and whole sites for SEO and AI-search visibility, generate ready-to-paste fixes and validated structured data, and verify HTML before deploy and live results after — all through stable issue codes so an agent can fix problems one by one and prove they are gone.2MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to crawl live websites, audit AEO readiness, generate Schema.org @graph JSON-LD, llms.txt, ai.txt, and robots.txt, inject structured data into HTML, validate optimizations, and retrieve framework-specific code snippets.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to score any live domain for visibility in AI answer engines and then generate and apply paste-ready fixes — robots.txt, llms.txt, JSON-LD, titles and meta — either directly to project files or as click-by-click admin steps for hosted platforms like Squarespace, Wix and Shopify. It also re-checks edits, reads server access logs to confirm which crawlers actually arrived and whether they were genuine, and offers hosted tools for citation testing, score history, drift and competitor comparison.81 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.