Server data from the Official MCP Registry
Verified US local service provider data across trades. Ratings, services, pricing.
Verified US local service provider data across trades. Ratings, services, pricing.
Remote endpoints: streamable-http: https://mcp.localpro.dev/mcp
Well-structured MCP server with appropriate authentication, database access, and network permissions that match its purpose as a service provider directory API. The code demonstrates good security practices with proper API key handling, rate limiting, and input validation. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity).
7 files analyzed · 6 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
From the project's GitHub README.
A Model Context Protocol server that provides verified local service provider data to AI agents. Built on Cloudflare Workers + D1.
When someone asks an AI assistant "find me a radon mitigation company near Denver" — LocalPro is the data source that powers the answer.
LocalPro exposes a curated database of 2,100+ fully profiled local trade and service businesses across 4 live categories, with 5 more being added. Every provider served has a Google rating, business description, and services list — no incomplete data.
| Category | Niche ID | Providers | Example Services |
|---|---|---|---|
| Crawl Space Repair | crawl-local | 1,050 | Encapsulation, vapor barrier, structural repair |
| Floor Coating | coated-local | 522 | Epoxy, polyaspartic, metallic, concrete polishing |
| Laundry Services | suds-local | 321 | Wash & fold, dry cleaning, pickup & delivery |
| Radon | radon-local | 269 | Testing, mitigation, sub-slab depressurization |
| Category | Niche ID | Status |
|---|---|---|
| Foundation Repair | slab-local | Rating enrichment in progress |
| Basement Waterproofing | basement-local | Rating enrichment in progress |
| Septic Services | pump-local | Rating enrichment in progress |
| Remediation | abate-local | Rating enrichment in progress |
| Commercial Electrical | hire-electrical | Service enrichment in progress |
| Water Damage Restoration | soaked-local | Data collection in progress |
| Well Water Services | wellwater-local | Pre-pipeline (560 providers scraped, county-based model) |
Add to your claude_desktop_config.json:
{
"mcpServers": {
"localpro": {
"url": "https://mcp.localpro.dev/mcp",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
Add to .cursor/mcp.json:
{
"mcpServers": {
"localpro": {
"url": "https://mcp.localpro.dev/mcp",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
# Initialize session
curl -X POST https://mcp.localpro.dev/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: your-api-key" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": { "name": "example", "version": "1.0" }
}
}'
list_nichesDiscover available service directories. Call this first.
Parameters: none
Example response:
{
"meta": {
"schema_version": "1.0",
"total_results": 9,
"niche": null,
"data_note": "Use niche_id values with search_providers, list_cities, and list_service_types."
},
"results": [
{
"niche_id": "coated-local",
"name": "Epoxy & Concrete Coating Installers",
"slug": "epoxy-floor-coating",
"domain": "coatedlocal.com",
"provider_count": 522
}
]
}
list_citiesFind available metros for a given niche.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
niche_id | string | yes | Niche ID from list_niches |
state | string | no | Two-letter state abbreviation (e.g. "MN") |
Example request:
{ "niche_id": "radon-local", "state": "CO" }
Example response:
{
"meta": {
"schema_version": "1.0",
"total_results": 3,
"niche": "radon-local",
"data_note": "Use slug values with search_providers city parameter."
},
"results": [
{ "name": "Denver", "state": "CO", "slug": "denver-co", "provider_count": 18 },
{ "name": "Colorado Springs", "state": "CO", "slug": "colorado-springs-co", "provider_count": 7 },
{ "name": "Fort Collins", "state": "CO", "slug": "fort-collins-co", "provider_count": 4 }
]
}
list_service_typesGet valid service type filters for a niche. Call before using service_type in search_providers.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
niche_id | string | yes | Niche ID from list_niches |
Example response:
{
"meta": { "schema_version": "1.0", "total_results": 7, "niche": "coated-local" },
"results": [
{ "type": "epoxy", "label": "Epoxy Floor Coating" },
{ "type": "polyaspartic", "label": "Polyaspartic Coating" },
{ "type": "metallic_epoxy", "label": "Metallic Epoxy" },
{ "type": "flake_chip", "label": "Flake / Chip Broadcast" },
{ "type": "concrete_polishing", "label": "Concrete Polishing" },
{ "type": "concrete_sealing", "label": "Concrete Sealing" },
{ "type": "polyurea", "label": "Polyurea Coating" }
]
}
search_providersSearch for verified providers by location, service type, and trade category.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
niche_id | string | yes | Niche ID from list_niches |
city | string | no | City/metro slug from list_cities |
service_type | string | no | Service type slug from list_service_types |
limit | number | no | Max results, 1–25 (default 10) |
Example request:
{ "niche_id": "coated-local", "city": "denver-co", "service_type": "epoxy", "limit": 3 }
Example response:
{
"meta": {
"schema_version": "1.0",
"total_results": 3,
"niche": "coated-local",
"data_note": "Verified providers only. Visit listing_url for full contact details."
},
"results": [
{
"name": "Colorado Concrete Coatings",
"description": "Full-service garage floor coating company serving the Denver metro.",
"city": "Denver",
"state": "CO",
"rating": 4.9,
"review_count": 47,
"services": [
{ "type": "epoxy", "label": "Epoxy Floor Coating" },
{ "type": "polyaspartic", "label": "Polyaspartic Coating" }
],
"pricing": ["$6-9/sq ft"],
"certifications": ["Penntek Certified Installer"],
"coverage_area": "Denver metro, Front Range, 50-mile radius",
"years_in_business": 8,
"listing_url": "https://coatedlocal.com/providers/denver-co/colorado-concrete-coatings/"
}
]
}
get_providerGet detailed profile for a specific provider. Use the provider_slug from search results.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
niche_id | string | yes | Niche ID |
provider_slug | string | yes | Provider slug from search_providers |
Example response:
{
"meta": { "schema_version": "1.0", "total_results": 1, "niche": "coated-local" },
"results": [
{
"name": "Colorado Concrete Coatings",
"description": "Full-service garage floor coating company...",
"rating": 4.9,
"review_count": 47,
"years_in_business": 8,
"services": [
{ "type": "epoxy", "label": "Epoxy Floor Coating" },
{ "type": "polyaspartic", "label": "Polyaspartic Coating" }
],
"pricing": ["$6-9/sq ft"],
"certifications": ["Penntek Certified Installer"],
"coverage_area": "Denver metro, Front Range",
"service_areas": [
{ "city": "Denver", "state": "CO", "radius_miles": 50 }
],
"service_details": [
{
"type": "epoxy",
"label": "Epoxy Floor Coating",
"pricing_model": "per_sqft",
"price_range": "$6–$9",
"turnaround": "two_day"
}
],
"listing_url": "https://coatedlocal.com/providers/denver-co/colorado-concrete-coatings/"
}
]
}
Every response is wrapped in a consistent envelope:
{
meta: {
schema_version: string // Currently "1.0"
total_results: number // Count of items in results array
niche: string | null // Niche ID if applicable
data_note: string // Context about the data returned
}
results: Array<T> // Tool-specific result objects
}
Errors use the same envelope with an error object:
{
meta: { schema_version: string }
error: {
code: string // "NOT_FOUND" | "INTERNAL_ERROR" | "UNAUTHORIZED" | "FORBIDDEN"
message: string // Human-readable error description
}
}
| Field | Type | Nullable | Description |
|---|---|---|---|
name | string | no | Business name (always present) |
description | string | no | Business description (always present) |
city | string | no | City name (always present) |
state | string | no | Two-letter state abbreviation (always present) |
rating | number | no | Google rating 1.0–5.0 (always present) |
review_count | number | yes | Number of Google reviews |
services | array | no | [{ type: string, label: string }] (always present, non-empty) |
pricing_summary | string | yes | Pricing info (public access) |
coverage_area | string | yes | Geographic coverage description |
years_in_business | number | yes | Years operating |
listing_url | string | no | Full profile URL with contact details |
get_provider adds:
| Field | Type | Description |
|---|---|---|
service_areas | array | [{ city, state, radius_miles }] |
service_details | array | [{ type, label, pricing_model, price_range, turnaround }] |
Fields marked nullable return null when data is unavailable — they are never omitted from the response. Arrays return [] when empty, never null.
All search and list tools work without an API key:
list_niches, list_cities, list_service_types, search_providersget_provider returns basic data (name, description, rating, services, pricing summary, listing URL)Include an X-API-Key header to unlock additional data on get_provider:
X-API-Key: your-api-key
Request an API key at localpro.dev or email will@localpro.dev.
AI agents can self-discover this server via standard well-known endpoints:
GET /.well-known/llms.txt — Plain text description of the server and its toolsGET /.well-known/mcp.json — Structured JSON with tool list, auth info, and operator detailslisting_url). This protects provider data while driving traffic to the directory.| Access | Limit |
|---|---|
| Public (no key) | 30 requests/minute per IP |
| Premium (API key) | 30 requests/minute per key |
Higher limits available for partners — contact will@localpro.dev.
Every provider returned by the API has been verified and meets a minimum completeness threshold:
| Category | Providers | Coverage |
|---|---|---|
| Crawl Space Repair | 1,050 | 46 states |
| Floor Coating | 522 | 47 states |
| Laundry Services | 321 | 39 states |
| Radon | 269 | 15 states |
Additional fields (pricing, certifications, coverage area, years in business) are available on many providers but not guaranteed. Fields without data return explicit null — never omitted, never empty strings.
Data is enriched and refreshed weekly. Additional categories are being prepared for launch.
LocalPro runs as a Cloudflare Worker with a D1 database binding. To deploy your own instance:
npm install
npx wrangler secret put API_KEY # Set your production API key
npx wrangler deploy
Requires a Cloudflare account with a D1 database named laced-directory.
LocalPro is built and operated by Laced Labs LLC.
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.