MCP Server

TexasRatedPros Rankings

com.texasratedpros/rankings
Business & Operations Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Searches, ranks, compares, and profiles Texas service companies using published score pillars, verification data, and methodology.

compare_businesses
Compare companies
Compare two to four companies side by side, pillar by pillar, with a one-sentence verdict naming which pillar separates them.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slugs'], 'properties': {'metro': {'type': 'string', 'description': 'Optional metro slug selecting a shared ranking context'}, 'slugs': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 4, 'minItems': 2}, 'category': {'type': 'string', 'description': 'Optional category slug selecting a shared ranking context'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['requiresContext', 'context', 'availableContexts', 'companies', 'pillarComparison', 'verdict', 'provenance'], 'properties': {'context': {'anyOf': [{'type': 'object', 'required': ['metro', 'metroSlug', 'category', 'categorySlug'], 'properties': {'metro': {'type': 'string'}, 'category': {'type': 'string'}, 'metroSlug': {'type': 'string'}, 'categorySlug': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verdict': {'type': 'string', 'description': 'One sentence naming the leader and why'}, 'companies': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'rank', 'outOf', 'trpScore', 'scoreBand', 'googleRating', 'googleReviewCount', 'yearsInBusiness', 'verifications', 'profileUrl'], 'properties': {'name': {'type': 'string'}, 'rank': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'slug': {'type': 'string'}, 'outOf': {'type': 'number'}, 'trpScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'scoreBand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'profileUrl': {'type': 'string'}, 'googleRating': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'verifications': {'type': 'array', 'items': {'type': 'string'}}, 'yearsInBusiness': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'googleReviewCount': {'type': 'number'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['asOf', 'methodologyVersion', 'sourceUrl', 'sourceMarkdownUrl', 'citeAs'], 'properties': {'asOf': {'type': 'string', 'description': 'ISO date the underlying data was last refreshed'}, 'citeAs': {'type': 'string', 'description': 'Ready-made citation line'}, 'sourceUrl': {'type': 'string', 'description': 'Canonical HTML page for this answer'}, 'sourceMarkdownUrl': {'type': 'string', 'description': 'Markdown twin of the same page'}, 'methodologyVersion': {'type': 'string'}}, 'additionalProperties': False}, 'requiresContext': {'type': 'boolean'}, 'pillarComparison': {'type': 'array', 'items': {'type': 'object', 'required': ['pillar', 'weight', 'scores', 'leader'], 'properties': {'leader': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'pillar': {'enum': ['reputation', 'volume', 'longevity', 'trust', 'engagement'], 'type': 'string'}, 'scores': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}, 'weight': {'type': 'number'}}, 'additionalProperties': False}}, 'availableContexts': {'type': 'array', 'items': {'type': 'object', 'required': ['metro', 'metroSlug', 'category', 'categorySlug'], 'properties': {'metro': {'type': 'string'}, 'category': {'type': 'string'}, 'metroSlug': {'type': 'string'}, 'categorySlug': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_business_profile
Get a company profile
Everything published about one company: score breakdown by pillar, what was verified and with which authority, what could not be verified, review figures with the date they were read, and every ranking it appears in.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Company slug from a ranking or search result'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug', 'name', 'legalName', 'city', 'region', 'website', 'phone', 'establishedOn', 'establishedSource', 'yearsInBusiness', 'googleRating', 'googleReviewCount', 'ratingDistribution', 'ownerResponseRate', 'trpScore', 'scoreBand', 'pillars', 'rankings', 'verifications', 'notVerified', 'disclosures', 'corrections', 'provenance'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'phone': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'region': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'pillars': {'type': 'array', 'items': {'type': 'object', 'required': ['pillar', 'weight', 'score', 'contribution'], 'properties': {'score': {'type': 'number', 'description': 'Pillar score in [0,1]'}, 'pillar': {'enum': ['reputation', 'volume', 'longevity', 'trust', 'engagement'], 'type': 'string'}, 'weight': {'type': 'number'}, 'contribution': {'type': 'number', 'description': 'Points this pillar added to the total'}}, 'additionalProperties': False}}, 'website': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rankings': {'type': 'array', 'items': {'type': 'object', 'required': ['metro', 'metroSlug', 'category', 'categorySlug', 'rank', 'outOf', 'trpScore', 'url'], 'properties': {'url': {'type': 'string'}, 'rank': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'metro': {'type': 'string'}, 'outOf': {'type': 'number'}, 'category': {'type': 'string'}, 'trpScore': {'type': 'number'}, 'metroSlug': {'type': 'string'}, 'categorySlug': {'type': 'string'}}, 'additionalProperties': False}}, 'trpScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'legalName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scoreBand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'provenance': {'type': 'object', 'required': ['asOf', 'methodologyVersion', 'sourceUrl', 'sourceMarkdownUrl', 'citeAs'], 'properties': {'asOf': {'type': 'string', 'description': 'ISO date the underlying data was last refreshed'}, 'citeAs': {'type': 'string', 'description': 'Ready-made citation line'}, 'sourceUrl': {'type': 'string', 'description': 'Canonical HTML page for this answer'}, 'sourceMarkdownUrl': {'type': 'string', 'description': 'Markdown twin of the same page'}, 'methodologyVersion': {'type': 'string'}}, 'additionalProperties': False}, 'corrections': {'type': 'array', 'items': {'type': 'object', 'required': ['occurredAt', 'note'], 'properties': {'note': {'type': 'string'}, 'occurredAt': {'type': 'string'}}, 'additionalProperties': False}}, 'disclosures': {'type': 'array', 'items': {'type': 'string'}}, 'notVerified': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'authority'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'authority': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Checklist items this company does not hold'}, 'googleRating': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'establishedOn': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'verifications': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'authority', 'idNumber', 'verifiedOn', 'verifyUrl', 'caveat'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'caveat': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'What this credential does not prove'}, 'idNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'authority': {'type': 'string'}, 'verifyUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'verifiedOn': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'yearsInBusiness': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'establishedSource': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Which record the founding date came from'}, 'googleReviewCount': {'type': 'number'}, 'ownerResponseRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'ratingDistribution': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}, {'type': 'null'}], 'description': 'Counts per star, 1 through 5'}}, 'additionalProperties': False}
get_methodology
Get the ranking methodology
The exact weights, thresholds, eligibility rules, data sources, and stated limitations behind every score. Read this before characterising what a TRP Score means.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['version', 'effectiveDate', 'summary', 'pillars', 'scoreBands', 'eligibility', 'reputation', 'ranking', 'dataSources', 'limitations', 'provenance'], 'properties': {'pillars': {'type': 'array', 'items': {'type': 'object', 'required': ['pillar', 'name', 'weight', 'rationale'], 'properties': {'name': {'type': 'string'}, 'pillar': {'enum': ['reputation', 'volume', 'longevity', 'trust', 'engagement'], 'type': 'string'}, 'weight': {'type': 'number'}, 'rationale': {'type': 'string'}}, 'additionalProperties': False}}, 'ranking': {'type': 'object', 'required': ['listSize', 'swapThreshold', 'entryThreshold'], 'properties': {'listSize': {'type': 'number'}, 'swapThreshold': {'type': 'number'}, 'entryThreshold': {'type': 'number'}}, 'additionalProperties': False}, 'summary': {'type': 'string'}, 'version': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['asOf', 'methodologyVersion', 'sourceUrl', 'sourceMarkdownUrl', 'citeAs'], 'properties': {'asOf': {'type': 'string', 'description': 'ISO date the underlying data was last refreshed'}, 'citeAs': {'type': 'string', 'description': 'Ready-made citation line'}, 'sourceUrl': {'type': 'string', 'description': 'Canonical HTML page for this answer'}, 'sourceMarkdownUrl': {'type': 'string', 'description': 'Markdown twin of the same page'}, 'methodologyVersion': {'type': 'string'}}, 'additionalProperties': False}, 'reputation': {'type': 'object', 'required': ['halfLifeDays', 'priorReviews', 'priorStatistic'], 'properties': {'halfLifeDays': {'type': 'number'}, 'priorReviews': {'type': 'number', 'description': 'Phantom reviews every company starts with, at the market median'}, 'priorStatistic': {'type': 'string'}}, 'additionalProperties': False}, 'scoreBands': {'type': 'array', 'items': {'type': 'object', 'required': ['min', 'label'], 'properties': {'min': {'type': 'number'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'dataSources': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'provider', 'cadence', 'caveat'], 'properties': {'name': {'type': 'string'}, 'caveat': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cadence': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'provider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'eligibility': {'type': 'object', 'required': ['minReviewsToList', 'minReviewsToRank', 'minReviewAgeMonths', 'minRating', 'entityMatchRequired', 'franchisesExcluded'], 'properties': {'minRating': {'type': 'number'}, 'minReviewsToList': {'type': 'number'}, 'minReviewsToRank': {'type': 'number'}, 'franchisesExcluded': {'type': 'boolean', 'const': True}, 'minReviewAgeMonths': {'type': 'number'}, 'entityMatchRequired': {'type': 'boolean'}}, 'additionalProperties': False}, 'limitations': {'type': 'array', 'items': {'type': 'string'}}, 'effectiveDate': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}
get_rankings
Get a ranking
The ranked list of independent companies for one category in one metropolitan area, with scores, verification status, and the reasons any tracked company is unranked. Franchise and chain locations are excluded by editorial policy.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['metro', 'category'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'metro': {'type': 'string', 'description': 'Metro slug, e.g. austin'}, 'category': {'type': 'string', 'description': 'Category slug, e.g. house-cleaning'}, 'include_bubble': {'type': 'boolean', 'description': 'Include eligible companies below the published cap'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['metro', 'category', 'updatedAt', 'totalRanked', 'totalTracked', 'franchisesExcluded', 'excludedBrands', 'reviewsAnalyzed', 'marketMedianRating', 'companies', 'bubble', 'provenance'], 'properties': {'metro': {'type': 'object', 'required': ['slug', 'name', 'region'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'region': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'bubble': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'slug', 'name', 'city', 'trpScore', 'scoreBand', 'confidenceTier', 'rankChange', 'googleRating', 'googleReviewCount', 'yearsInBusiness', 'verifications', 'disclosures', 'profileUrl'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'rank': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Null when tracked but not ranked'}, 'slug': {'type': 'string'}, 'trpScore': {'type': 'number'}, 'scoreBand': {'type': 'string'}, 'profileUrl': {'type': 'string'}, 'rankChange': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Positions gained since the previous reconstitution'}, 'disclosures': {'type': 'array', 'items': {'type': 'string'}}, 'googleRating': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'verifications': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'authority', 'idNumber', 'verifiedOn', 'verifyUrl', 'caveat'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'caveat': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'What this credential does not prove'}, 'idNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'authority': {'type': 'string'}, 'verifyUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'verifiedOn': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'confidenceTier': {'type': 'string'}, 'yearsInBusiness': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'googleReviewCount': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Eligible companies below the published cap; scores shown, ranks withheld'}, 'category': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}, 'companies': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'slug', 'name', 'city', 'trpScore', 'scoreBand', 'confidenceTier', 'rankChange', 'googleRating', 'googleReviewCount', 'yearsInBusiness', 'verifications', 'disclosures', 'profileUrl'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'rank': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Null when tracked but not ranked'}, 'slug': {'type': 'string'}, 'trpScore': {'type': 'number'}, 'scoreBand': {'type': 'string'}, 'profileUrl': {'type': 'string'}, 'rankChange': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Positions gained since the previous reconstitution'}, 'disclosures': {'type': 'array', 'items': {'type': 'string'}}, 'googleRating': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'verifications': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'authority', 'idNumber', 'verifiedOn', 'verifyUrl', 'caveat'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'caveat': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'What this credential does not prove'}, 'idNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'authority': {'type': 'string'}, 'verifyUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'verifiedOn': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'confidenceTier': {'type': 'string'}, 'yearsInBusiness': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'googleReviewCount': {'type': 'number'}}, 'additionalProperties': False}}, 'updatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'provenance': {'type': 'object', 'required': ['asOf', 'methodologyVersion', 'sourceUrl', 'sourceMarkdownUrl', 'citeAs'], 'properties': {'asOf': {'type': 'string', 'description': 'ISO date the underlying data was last refreshed'}, 'citeAs': {'type': 'string', 'description': 'Ready-made citation line'}, 'sourceUrl': {'type': 'string', 'description': 'Canonical HTML page for this answer'}, 'sourceMarkdownUrl': {'type': 'string', 'description': 'Markdown twin of the same page'}, 'methodologyVersion': {'type': 'string'}}, 'additionalProperties': False}, 'totalRanked': {'type': 'number'}, 'totalTracked': {'type': 'number'}, 'excludedBrands': {'type': 'array', 'items': {'type': 'string'}}, 'reviewsAnalyzed': {'type': 'number'}, 'franchisesExcluded': {'type': 'number'}, 'marketMedianRating': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}
get_score_breakdown
Get a score breakdown
Return one company's score in one metro/category ranking, including rank, all five weighted pillars, each pillar's point contribution, and provenance.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Company slug'}, 'metro': {'type': 'string', 'description': 'Metro slug'}, 'category': {'type': 'string', 'description': 'Category slug'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['business', 'context', 'rank', 'outOf', 'trpScore', 'scoreBand', 'pillars', 'provenance'], 'properties': {'rank': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'outOf': {'type': 'number'}, 'context': {'type': 'object', 'required': ['metro', 'metroSlug', 'category', 'categorySlug'], 'properties': {'metro': {'type': 'string'}, 'category': {'type': 'string'}, 'metroSlug': {'type': 'string'}, 'categorySlug': {'type': 'string'}}, 'additionalProperties': False}, 'pillars': {'type': 'array', 'items': {'type': 'object', 'required': ['pillar', 'weight', 'score', 'contribution'], 'properties': {'score': {'type': 'number', 'description': 'Pillar score in [0,1]'}, 'pillar': {'enum': ['reputation', 'volume', 'longevity', 'trust', 'engagement'], 'type': 'string'}, 'weight': {'type': 'number'}, 'contribution': {'type': 'number', 'description': 'Points this pillar added to the total'}}, 'additionalProperties': False}}, 'business': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}, 'trpScore': {'type': 'number'}, 'scoreBand': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['asOf', 'methodologyVersion', 'sourceUrl', 'sourceMarkdownUrl', 'citeAs'], 'properties': {'asOf': {'type': 'string', 'description': 'ISO date the underlying data was last refreshed'}, 'citeAs': {'type': 'string', 'description': 'Ready-made citation line'}, 'sourceUrl': {'type': 'string', 'description': 'Canonical HTML page for this answer'}, 'sourceMarkdownUrl': {'type': 'string', 'description': 'Markdown twin of the same page'}, 'methodologyVersion': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
list_categories
List service categories
Every service category the site ranks, with a note on what Texas does and does not license for that trade.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['categories'], 'properties': {'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'vertical', 'licensingNote'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'vertical': {'type': 'string'}, 'licensingNote': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_metros
List metropolitan areas
The metropolitan areas with published rankings, and which service categories each one covers. Call this first to learn the slugs the other tools expect.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['metros'], 'properties': {'metros': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'region', 'categories'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'region': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
search_businesses
Search companies
Find tracked companies by name, metropolitan area, category, or minimum score.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'metro': {'type': 'string'}, 'query': {'type': 'string', 'description': 'Part of a company name'}, 'category': {'type': 'string'}, 'min_score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'verified_only': {'type': 'boolean', 'description': 'Only companies matched to a state entity record'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['total', 'results', 'provenance'], 'properties': {'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'city', 'trpScore', 'googleRating', 'googleReviewCount', 'bestRank', 'profileUrl'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'bestRank': {'anyOf': [{'type': 'object', 'required': ['rank', 'outOf', 'metro', 'category'], 'properties': {'rank': {'type': 'number'}, 'metro': {'type': 'string'}, 'outOf': {'type': 'number'}, 'category': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'trpScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'profileUrl': {'type': 'string'}, 'googleRating': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'googleReviewCount': {'type': 'number'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['asOf', 'methodologyVersion', 'sourceUrl', 'sourceMarkdownUrl', 'citeAs'], 'properties': {'asOf': {'type': 'string', 'description': 'ISO date the underlying data was last refreshed'}, 'citeAs': {'type': 'string', 'description': 'Ready-made citation line'}, 'sourceUrl': {'type': 'string', 'description': 'Canonical HTML page for this answer'}, 'sourceMarkdownUrl': {'type': 'string', 'description': 'Markdown twin of the same page'}, 'methodologyVersion': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Added
get_methodology
Sept. 17, 2026, 12:37 p.m.
Added
get_score_breakdown
Sept. 17, 2026, 12:37 p.m.
Added
compare_businesses
Sept. 17, 2026, 12:37 p.m.
Added
search_businesses
Sept. 17, 2026, 12:37 p.m.
Added
get_business_profile
Sept. 17, 2026, 12:37 p.m.
Added
get_rankings
Sept. 17, 2026, 12:37 p.m.
Added
list_categories
Sept. 17, 2026, 12:37 p.m.
Added
list_metros
Sept. 17, 2026, 12:37 p.m.