# mainstreet-mcp

Main Street MCP — free industry starter kit MCP server for small businesses

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 0.1.4
- **Author:** io.github.gbrussich52
- **License:** MIT
- **npm:** mainstreet-mcp
- **Source:** https://github.com/gbrussich52/mainstreet-mcp
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** warnings
- **Scanned:** 2026-10-23T07:25:13.632Z
- **Version scanned:** 0.1.4
- **CVEs:** none found by OSV at scan time

## Tools

18 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `get_class_schedule` — Returns the class/session schedule, optionally filtered to one day of the week.
- `list_coverage_lines` — Lists the insurance coverage lines this agency writes (e.g. auto, home, life) and the carriers represented.
- `check_insurance_accepted` — Checks whether a named insurance carrier is accepted. Returns the full accepted list for reference.
- `search_listings` — Searches property listings by free text, price, beds, and status.
- `get_menu` — Returns the full menu, grouped by category, with prices and dietary/allergen tags. Use this for "what do you serve" style questions instead of guessing.
- `list_practice_areas` — Lists the firm's practice areas. Every response must carry the not-legal-advice disclaimer.
- `get_price_estimate` — Returns a ROUGH price range for a service, always flagged is_estimate:true. Never present this as a firm quote — always relay the disclaimer to the end user.
- `check_service_area` — Checks whether a zip code or city is within this business's service area. Use before promising on-site service.
- `get_service_times` — Returns worship/service times, optionally filtered to one day of the week.
- `list_industries` — Lists the industry starter kits this server can generate. Use this first, then pass the chosen id to create_business_config.
- `create_business_config` — Writes a starter business.yaml for the chosen industry into the folder this server was pointed at. Refuses to overwrite an existing file. After this, edit the f
- `get_business_profile` — Returns the business's name, industry, description, contact info, address, and policies. Start here for "tell me about this business" style questions.
- `check_open_status`
- `search_offerings` — Searches the business's offerings (menu items, services, listings, etc. — whatever this industry configured) by free text.
- `answer_question` — Looks up an answer to a customer question in the business's configured FAQs AND policies, returning up to 3 ranked matches (each tagged source: "faq" or "policy
- `list_staff` — Lists configured staff members with role, bio, and credentials.
- `get_booking_options` — Returns how a customer can book/schedule with this business (phone, online link, walk-in, email) — use this instead of inventing a booking flow.
- `submit_inquiry` — Submits a customer inquiry/message to the business (logged to file or forwarded to a webhook, depending on configuration). Subject to rate limiting and content 

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"mainstreet\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mainstreet-mcp\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Contained to moderate — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: runs on your machine; read-only tool surface.
- Floor 12, ceiling 30 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/mainstreet-mcp
- Install plan: https://forgeregistry.com/api/v1/packages/mainstreet-mcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/mainstreet-mcp
- HTML page: https://forgeregistry.com/registry/mainstreet-mcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
