Main Street MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Main Street MCPAre you open now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Main Street MCP
A free, industry-specific MCP server that gives a small business's AI assistants
(ChatGPT, Claude, etc.) reliable answers about the business itself — hours, menu/services,
FAQs, staff, and how to book — instead of hallucinating them. One business.yaml file per
business; no code changes required to run it.
Quickstart (business owner)
Install Node.js 20+ (or use the version already on your machine — check with
node -v).Generate a starter config for your industry:
npx -y mainstreet-mcp init --industry restaurantReplace
restaurantwith your industry. Supported industries:restaurant,dental,law-firm,home-services,salon-spa,fitness-studio,real-estate-agent,auto-repair,insurance-agency,church.This writes
business.yamlin the current directory — edit it with your business's real name, hours, menu/services, FAQs, etc. (Use--out <path>for a different name; every other command then needs--config <path>.)Check your edits are valid:
npx -y mainstreet-mcp validateA broken file (bad YAML, a typo'd industry, a field that doesn't fit) prints a specific, readable error instead of a stack trace.
Point your AI assistant at it. For a local MCP client (e.g. Claude Desktop) that spawns stdio servers, add an entry like:
{ "mcpServers": { "my-business": { "command": "npx", "args": ["-y", "mainstreet-mcp", "--config", "/absolute/path/to/business.yaml"] } } }To serve over HTTP instead (e.g. for a hosted deployment), run:
npx -y mainstreet-mcp serve --http --port 3000The HTTP server only binds to
127.0.0.1and validates theHost/Originheaders on every request — put a reverse proxy in front of it for anything beyond local testing.
Related MCP server: essetech-ai-readiness-mcp
What it gives an AI assistant
Every business gets 7 universal tools regardless of industry:
get_business_profile— name, description, contact info, address, policiescheck_open_status— open/closed right now (or at a given time), in the business's own timezone, including overnight hours and holiday/exception overridessearch_offerings— free-text search over whatever the business sells/offersanswer_question— looks up configured FAQs; returnsfound: falserather than a guess when nothing matches confidentlylist_staff— configured staff, roles, bios, credentialsget_booking_options— how to actually book (phone/online/walk-in/email)submit_inquiry— lets a customer leave a message; rate-limited, sanitized, and screened by industry-specific guardrails before it's accepted
On top of that, each industry preset turns on a handful of capabilities — pluggable tool modules — matched to that industry:
Industry | Capabilities / tools |
restaurant |
|
dental |
|
law-firm |
|
home-services |
|
salon-spa |
|
fitness-studio |
|
real-estate-agent |
|
auto-repair |
|
insurance-agency |
|
church |
|
Every tool ships an outputSchema and returns structuredContent, so a calling agent gets
typed data back, not just prose to parse.
Guardrails
Some presets screen submit_inquiry messages before accepting them, on top of the universal
sanitization (HTML/control-char stripping, length caps, rate limiting):
dental — rejects messages containing an SSN-shaped pattern, and long messages with clinical/health detail keywords (tells the patient to call the office instead).
law-firm — caps the message to one line / 280 characters (a topic, not case details).
salon-spa / fitness-studio — rejects messages containing health/medical detail keywords (pregnancy, injury, medication, etc.), directing the customer to tell staff in person instead.
price_estimate outputs always carry is_estimate: true plus a disclaimer — never present
as a firm quote.
Install
Claude Desktop (one-click, no terminal)
Download the latest mainstreet-mcp.mcpb from the releases page
(or build it yourself — see mcpb/ below), then double-click it. Claude Desktop opens it as
a Desktop Extension install prompt; it asks for one thing — the path to your
business.yaml — then installs. No Node.js install or terminal needed.
To build the .mcpb yourself:
npx @anthropic-ai/mcpb pack mcpb build/mainstreet-mcp.mcpbClaude Code (plugin)
Install the bundled plugin, which registers the MCP server and adds a setup-my-business
skill that interviews you and writes business.yaml for you:
claude plugin install ./pluginThe plugin's MCP config expects business.yaml at your project root
(${CLAUDE_PROJECT_DIR}/business.yaml), which is exactly what init writes — run the
setup-my-business skill, or npx -y mainstreet-mcp init --industry <yours>,
from that directory.
Claude Code (direct MCP add, no plugin)
claude mcp add mainstreet -- npx -y mainstreet-mcp --config /absolute/path/to/business.yamlGeneric JSON config (any MCP client)
For any client that spawns stdio servers from a JSON config (Claude Desktop's manual config, other MCP clients):
{
"mcpServers": {
"my-business": {
"command": "npx",
"args": ["-y", "mainstreet-mcp", "--config", "/absolute/path/to/business.yaml"]
}
}
}Example configs
examples/ has one working <industry>.business.yaml per supported industry — the same
files init copies from and the E2E test suite runs against.
Development
npm install
npm run build # tsc -> dist/
npm test # builds, then runs node --test against dist/test/*.test.jsStack: @modelcontextprotocol/server@2.0.0 (MCP spec 2026-07-28), TypeScript strict/ESM,
Zod for all schemas and config validation, yaml for parsing business.yaml. All
dependencies are pinned to exact versions (no ^).
Project layout
src/config/schema.ts— thebusiness.yamlZod schema (BusinessConfigSchema) and types.src/config/load.ts— loads + validates a config file, including per-capability config and the industry/capability compatibility check.src/hours.ts— timezone-aware open/closed logic (Intl-based), overnight ranges, date exceptions, forward-scanning for the next open/close time.src/search.ts— the recall-first free-text search used bysearch_offeringsandanswer_question.src/inquiries.ts—InquirySink: sanitization, rate limiting, guardrail hook, and file/webhook delivery forsubmit_inquiry.src/capabilities/*— the 9 pluggable capability modules (config schema + tool registration each).src/presets/*— the 10 industry presets: which capabilities are on, the instructions text injected into the server, and anyguardHooks.src/tools/universal.ts— the 7 universal tools every business gets.src/server.ts—createServer(config): builds theMcpServerfor a loaded config.src/cli.ts—mainstreet-mcpentry point (stdio default,init,validate,serve --http).src/test/*.test.js(compiled from.ts) — unit tests (schema, search, hours, inquiries/ guardrails) plus an E2E suite that spawns the built stdio server for every example config and drives it with the real MCP client SDK.
Testing notes
npm testruns both unit tests and the E2E suite (src/test/e2e.test.ts), which spawnsdist/cli.jsas a child process viaStdioClientTransportfor every file inexamples/, callstools/list, then calls every registered tool and asserts it returnsstructuredContentwithoutisError.serve --httpbinds a local port, which some sandboxed shells block by default; test it outside such a sandbox ifEPERM/listenerrors appear.
Status
Presets, capabilities, universal tools, CLI, and all 10 example configs are built and verified (build, unit tests, E2E stdio tests, CLI validate success/failure paths, and an HTTP smoke test all pass — see the build's final report for exact output). This is a first build, not yet published or deployed anywhere.
This server cannot be deployed
Maintenance
Related MCP Connectors
Verified local businesses, bookable by AI agents: services, prices, availability and appointments.
- daxoomOAuthcom.daxoom
Owner-verified local business data for AI agents: profiles, hours, prices, with provenance.
Build, deploy, and sell AI agents for local-service businesses - from your IDE.
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage business operations including invoicing, WooCommerce syncing, expense tracking, POS, inventory, and team management through natural language.31 npm2MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to assess a small business's AI readiness (0–100 score), suggest tailored AI use cases, describe Essetech's services, and book a free consultation.47 npmMIT
- FlicenseAqualityDmaintenanceEnables AI assistants to interact with SMB platform APIs for querying business data, managing tasks, accessing connectors, dashboards, and monitoring security.16-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage a customer-support inbox with guardrails, including replying safely, handling escalations, and leveraging upsell opportunities for e-commerce stores.MIT