Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Verified US local service providers across 10 home-services trades. Owned data, no API key.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
X-API-KeyValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Run this in your terminal
claude mcp add --transport http local-services https://mcp.localpro.dev/mcp --header 'X-API-Key: your-value'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"local-services": {
"url": "https://mcp.localpro.dev/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"local-services": {
"type": "http",
"url": "https://mcp.localpro.dev/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
X-API-Key secret HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account LocalProDev, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: X-API-Key
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (3.1.0) reached the registry 41 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, FOGA node
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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 9,000+ fully profiled local trade and service businesses across 10 live categories. Every provider passes a quality check before it is served, and carries a LocalPro Rating, a business description, and a services list, plus (where available) LocalPro-written business and review summaries. No incomplete profiles.
All data is LocalPro-owned: collected and verified by us, corrected by business owners who claim their listing, and increasingly backed by first-party customer reviews left on the directories themselves.
| Category | Niche ID | Providers | States | Example Services |
|---|---|---|---|---|
| Water Damage Restoration | soaked-local | 1,900+ | 49 | Flood cleanup, mold remediation, structural drying |
| Commercial Electrical | hire-electrical | 1,200+ | 36 | Commercial & industrial wiring, service upgrades, maintenance |
| Foundation Repair | slab-local | 1,050+ | 28 | Pier installation, mudjacking, foam injection, leveling |
| Crawl Space Repair | crawl-local | 1,000+ | 42 | Encapsulation, vapor barrier, structural repair, waterproofing |
| Mold & Asbestos | abate-local | 975+ | 24 | Mold, asbestos, lead paint remediation |
| Septic Services | pump-local | 850+ | 31 | Pumping, inspection, drain field repair |
| Basement Waterproofing | basement-local | 625+ | 25 | Interior/exterior waterproofing, drainage, sump pumps |
| Floor Coating | coated-local | 575+ | 48 | Epoxy, polyaspartic, metallic, flake, concrete polishing |
| Laundry Services | suds-local | 575+ | 39 | Wash & fold, dry cleaning, pickup & delivery |
| Radon | radon-local | 250+ | 18 | Testing, mitigation, sub-slab depressurization |
| Category | Niche ID | Status |
|---|---|---|
| Chimney Services | chimney-local | Live provider data; description + service enrichment in progress |
| Well Water Services | wellwater-local | Provider data in preparation (county-based model) |
No API key required. All search and list tools are public. An optional API key unlocks pro fields on get_provider (full pricing array, certifications) — see Access Tiers.
Confirm the server is live without any client setup:
curl -s https://mcp.localpro.dev/.well-known/mcp.json | head -20
This returns the schema-2.0 manifest: tool list, rate limits, and operator info. If you see a "schema_version": "2.0" JSON document, the server is healthy.
claude mcp add --transport http localpro https://mcp.localpro.dev/mcp
That's it — list_niches, search_providers, etc. are now available in your Claude Code session.
Add to your claude_desktop_config.json:
{
"mcpServers": { "localpro": { "url": "https://mcp.localpro.dev/mcp" } } }
(Add an "X-API-Key" header inside a "headers" block only if you have a premium key.)
Add to .cursor/mcp.json:
{
"mcpServers": { "localpro": { "url": "https://mcp.localpro.dev/mcp" } } }
The MCP protocol is JSON-RPC over HTTP. Because this server runs in stateless mode, you can call any public tool directly:
curl -s -X POST https://mcp.localpro.dev/mcp \
-H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_niches","arguments":{}}}'
You'll get back a Server-Sent-Events frame with the 10 niches, their slugs, and current provider counts.
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const transport = new StreamableHTTPClientTransport( new URL('https://mcp.localpro.dev/mcp'), ); const client = new Client({ name: 'localpro-example', version: '1.0' }); await client.connect(transport);
const niches = await client.callTool({ name: 'list_niches', arguments: {} }); console.log(niches);
const denver = await client.callTool({ name: 'search_providers', arguments: { niche_id: 'radon-local', city: 'denver-co', limit: 3 }, }); console.log(denver);
Install: npm i @modelcontextprotocol/sdk
import asyncio
from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client
async def main(): async with streamablehttp_client("https://mcp.localpro.dev/mcp") as (read, write, _): async with ClientSession(read, write) as session: await session.initialize()
niches = await session.call_tool("list_niches", {}) print(niches)
denver = await session.call_tool( "search_providers", {"niche_id": "radon-local", "city": "denver-co", "limit": 3}, ) print(denver)
asyncio.run(main())
Install: pip install mcp
list_nichesDiscover available service directories. Call this first.
Parameters: none
Example response:
{
"meta": { "schema_version": "3.0", "total_results": 10, "niche": null, "data_freshness": { "last_verified_at": "2026-09-22 12:57:07" }, "data_note": "Use niche_id values with search_providers, list_cities, and list_service_types." }, "results": [ { "niche_id": "soaked-local", "name": "Water Damage Restoration Contractors", "slug": "water-damage-restoration", "domain": "soakedlocal.com", "provider_count": 1128 } ] }
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": "3.0", "total_results": 3, "niche": "coated-local", "data_freshness": { "last_verified_at": "2026-09-18 09:41:02" }, "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": { "tier": "established", "label": "Established" }, "services": [ { "type": "epoxy", "label": "Epoxy Floor Coating" }, { "type": "polyaspartic", "label": "Polyaspartic Coating" } ], "pricing_summary": "$6-9/sq ft", "coverage_area": "Denver metro, Front Range, 50-mile radius", "years_in_business": 8, "listing_url": "https://coatedlocal.com/providers/denver-co/colorado-concrete-coatings/", "pro_available": true } ] }
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": "3.0", "total_results": 1, "niche": "coated-local", "data_freshness": { "last_verified_at": "2026-09-18 09:41:02" } }, "results": [ { "name": "Colorado Concrete Coatings", "description": "Full-service garage floor coating company...", "rating": { "tier": "established", "label": "Established", "star": 4.8, "review_count": 12 }, "summary": "Full-service epoxy floor coating contractor specializing in garage and commercial floors across the Denver metro.", "review_summary": "Customers single out on-time, on-budget garage and commercial floor jobs and a crew that cleans up after itself.", "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/", "json_ld": { "@context": "https://schema.org", "@type": "LocalBusiness", "...": "..." }, "credibility": { "verified": true, "listing_tier": "claimed", "data_sources": ["business_website", "owner_verified", "customer_reviews"] }, "citation": { "display_name": "Colorado Concrete Coatings — Denver, CO", "...": "..." } } ] }
Every response is wrapped in a consistent envelope:
`
Only the beginning is shown; read the rest in the repo