mainstreet-mcp について
mainstreet-mcpは、小規模事業者のAIアシスタントに設定済みの事業情報を提供し、呼び出し側の情報に基づくステートレスなワークフロー確認キットも備えます。`business.yaml`で情報を設定し、業種別のツールで営業時間やサービス、予約方法などを照会できます。
主な機能
- 01`business.yaml`で事業情報を設定
- 02業種別プリセットの作成と設定検証
- 03営業時間、提供内容、FAQの検索
- 04予約方法の提示と問い合わせ受付
- 05見積もり追跡、請求差異、注文引き継ぎの確認
活用シーン
- 01AIアシスタントに営業時間やサービスを回答させる
- 02業種に応じた問い合わせツールを設定
- 03提供された情報から見積もりや請求書の確認案を作成
- 04注文引き継ぎ情報を確認し、レビュー用の案を作成
MCP 対応
MCPクライアントに共通の事業ツールと業種別ツールを提供し、CLIからstdioでワークフローキットを実行できます。キットは呼び出し側が渡した構造化情報を評価し、確認結果と未送信の下書きを作成します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
2掲載時のツール一覧 · 今日に更新
このツールにパラメーターはありません。
詳細
Main Street MCP
小規模事業者の AI アシスタント(ChatGPT、Claude など)が、営業時間、メニュー/サービス、よくある質問、スタッフ、予約方法など、その事業自体について信頼できる回答を得られる、業種特化型の無料 MCP サーバーです。事業者ごとに business.yaml ファイルを 1 つ用意するだけで、実行にあたってコードを変更する必要はありません。
クイックスタート(事業主向け)
-
Node.js 20 以降をインストールします(または、すでにインストールされているバージョンを使用します。
node -vで確認してください)。 -
業種に応じた初期設定ファイルを生成します。
npx -y mainstreet-mcp init --industry restaurantrestaurantを該当する業種に置き換えてください。対応業種:restaurant、dental、law-firm、home-services、salon-spa、fitness-studio、real-estate-agent、auto-repair、insurance-agency、church。カレントディレクトリに
business.yamlが作成されます。事業者の正式名称、営業時間、メニュー/サービス、よくある質問などを実際の内容に合わせて編集してください(別の名前で保存する場合は--out <path>を使用します。その場合、以降のすべてのコマンドに--config <path>が必要です)。 -
編集内容に問題がないか確認します。
npx -y mainstreet-mcp validateファイルに問題がある場合(YAML の形式が不正、業種名のタイプミス、該当しないフィールドなど)は、スタックトレースではなく、具体的で読みやすいエラーが表示されます。
-
AI アシスタントに接続します。stdio サーバーを起動するローカル MCP クライアント(例:Claude Desktop)の場合は、次のようなエントリーを追加します。
{ "mcpServers": { "my-business": { "command": "npx", "args": ["-y", "mainstreet-mcp", "--config", "/absolute/path/to/business.yaml"] } } }代わりに HTTP 経由で提供する場合(例:ホスト環境にデプロイする場合)は、次を実行します。
npx -y mainstreet-mcp serve --http --port 3000HTTP サーバーは
127.0.0.1にのみバインドし、すべてのリクエストでHost/Originヘッダーを検証します。ローカルでのテスト以外で使用する場合は、前段にリバースプロキシを配置してください。
AI アシスタントに提供される機能
業種に関係なく、すべての事業者が 7 つの共通ツールを利用できます。
get_business_profile— 名称、説明、連絡先情報、住所、ポリシーcheck_open_status— 現在(または指定した時刻)の営業状況を、事業者のタイムゾーンに基づいて返します。深夜にまたがる営業時間や、祝日・例外日の上書き設定にも対応しますsearch_offerings— 事業者が販売・提供するものをフリーテキストで検索しますanswer_question— 設定されたよくある質問を検索します。一致する内容を確信を持って見つけられない場合は、推測せずにfound: falseを返しますlist_staff— 設定されたスタッフ、役職、略歴、資格get_booking_options— 実際の予約方法(電話/オンライン/直接来店/メール)submit_inquiry— 顧客がメッセージを残せるようにします。受け付ける前に、レート制限、サニタイズ、業種固有のガードレールによる審査が行われます
さらに、各業種プリセットでは、その業種に適した、プラグイン可能なツールモジュールであるいくつかの機能が有効になります。
| 業種 | 機能/ツール |
|---|---|
| restaurant | menu → get_menu |
| dental | insurance_accepted → check_insurance_accepted |
| law-firm | practice_areas → list_practice_areas(法律上の助言ではない旨の免責事項が必ず付記されます) |
| home-services | service_area → check_service_area、price_estimate → get_price_estimate |
| salon-spa | class_schedule → get_class_schedule |
| fitness-studio | class_schedule → get_class_schedule |
| real-estate-agent | listings → search_listings |
| auto-repair | service_area、price_estimate、insurance_accepted |
| insurance-agency | coverage_lines → list_coverage_lines |
| church | service_times → get_service_times |
すべてのツールには outputSchema があり、structuredContent を返すため、呼び出し元のエージェントは解析が必要な文章ではなく、型付きデータを受け取れます。
ガードレール
一部のプリセットでは、共通のサニタイズ(HTML/制御文字の除去、文字数上限、レート制限)に加え、受け付ける前に submit_inquiry メッセージを審査します。
- dental — SSN の形式に一致するパターンを含むメッセージと、臨床・健康に関する詳細なキーワードを含む長文を拒否し、代わりに患者にオフィスへ電話するよう案内します。
- law-firm — メッセージを1行/280文字に制限します(トピックのみで、案件の詳細は含めません)。
- salon-spa/fitness-studio — 健康・医療に関する詳細なキーワード(妊娠、けが、服薬など)を含むメッセージを拒否し、代わりにスタッフへ直接伝えるよう顧客に案内します。
price_estimate の出力には常に is_estimate: true と免責事項が含まれ、確定見積もりとして提示されることはありません。
インストール
Claude Desktop(ワンクリック、ターミナル不要)
リリースページから最新の mainstreet-mcp.mcpb をダウンロードして(または自分でビルドして — 下記の mcpb/ を参照)、ダブルクリックします。Claude Desktop がデスクトップ拡張機能のインストール確認画面を開き、business.yaml を保存するフォルダーを指定するよう求めます。再度見つけられるフォルダーならどこでもかまいません。Documents で問題ありません。Node.js のインストールやターミナルは不要です。
インストール前に business.yaml を用意する必要はありません。 フォルダーが空の場合、サーバーはセットアップモードで起動します。Claude に「自分のビジネスをセットアップして」と頼むと、業種の一覧を表示し、そのフォルダーにスターターファイルを書き込み、営業時間、サービス、料金などの情報を聞き取って入力します。完了したら拡張機能を一度オフにしてからオンにすると、ビジネスツールが表示されます。選んだフォルダーはそのまま使い続けます。
.mcpb を自分でビルドするには:
npx @anthropic-ai/mcpb pack mcpb build/mainstreet-mcp.mcpb
Claude Code(プラグイン)
同梱のプラグインをインストールすると、MCP サーバーが登録され、business.yaml の作成に必要な情報を聞き取る setup-my-business スキルが追加されます。
claude plugin install ./plugin
プラグインの MCP 設定では、プロジェクトのルート(${CLAUDE_PROJECT_DIR}/business.yaml)に business.yaml があることを想定しています。これは init が作成する場所と同じです。そのディレクトリから setup-my-business スキルを実行するか、npx -y mainstreet-mcp init --industry <yours> を実行してください。
Claude Code(プラグインなしで MCP を直接追加)
claude mcp add mainstreet -- npx -y mainstreet-mcp --config /absolute/path/to/business.yaml
汎用 JSON 設定(任意の MCP クライアント)
JSON 設定から stdio サーバーを起動する任意のクライアント(Claude Desktop の手動設定、その他の MCP クライアント)向け:
{
"mcpServers": {
"my-business": {
"command": "npx",
"args": ["-y", "mainstreet-mcp", "--config", "/absolute/path/to/business.yaml"]
}
}
}
設定例
examples/ には、対応する各業種の動作する <industry>.business.yaml が1つずつあります。これらは init がコピーするファイルと同じもので、E2E テストスイートでも使用されます。
開発
npm install
npm run build # tsc -> dist/
npm test # builds, then runs node --test against dist/test/*.test.js
技術スタック:@modelcontextprotocol/[email protected](MCP 仕様 2026-07-28)、TypeScript の strict/ESM、すべてのスキーマと設定の検証に Zod、business.yaml の解析に yaml を使用します。依存関係はすべて正確なバージョンに固定されています(^ は使用しません)。
プロジェクト構成
src/config/schema.ts—business.yamlの Zod スキーマ(BusinessConfigSchema)と型。src/config/load.ts— 設定ファイルを読み込み、検証します。機能ごとの設定や、業種と機能の互換性チェックも含みます。src/hours.ts— タイムゾーンを考慮した営業中/営業時間外の判定(Intlベース)、日付をまたぐ営業時間、日付ごとの例外、次の営業開始/終了時刻の先読み。src/search.ts—search_offeringsとanswer_questionで使用する、再現率を優先したフリーテキスト検索。src/inquiries.ts—InquirySink:submit_inquiry用のサニタイズ、レート制限、ガードレールフック、ファイル/Webhook への配信。src/capabilities/*— プラグイン可能な 9 つの機能モジュール(それぞれに設定スキーマとツール登録があります)。src/presets/*— 10 種類の業種プリセット:有効にする機能、サーバーに挿入される指示テキスト、各種guardHooks。src/tools/universal.ts— すべてのビジネスで利用できる 7 つの共通ツール。src/server.ts—createServer(config):読み込み済みの設定からMcpServerを構築します。src/cli.ts—mainstreet-mcpのエントリーポイント(デフォルトは stdio、init、validate、serve --http)。src/test/*.test.js(.tsからコンパイル)— 単体テスト(スキーマ、検索、営業時間、問い合わせ/ガードレール)に加え、各サンプル設定でビルド済み stdio サーバーを起動し、実際の MCP クライアント SDK で操作する E2E テストスイート。
テストに関する注意事項
npm testは単体テストと E2E テストスイート(src/test/e2e.test.ts)の両方を実行します。examples/内の各ファイルについて、StdioClientTransport経由で子プロセスとしてdist/cli.jsを起動し、tools/listを呼び出した後、登録済みのすべてのツールを呼び出して、isErrorがなくstructuredContentを返すことを検証します。serve --httpはローカルポートをバインドします。一部のサンドボックス化されたシェルでは、デフォルトでこれがブロックされます。EPERM/listenエラーが発生した場合は、そのようなサンドボックスの外でテストしてください。
ステータス
プリセット、機能、共通ツール、CLI、および 10 個すべてのサンプル設定が構築され、検証済みです(ビルド、単体テスト、E2E stdio テスト、CLI の validate 成功/失敗パス、HTTP のスモークテストはすべて成功しています。正確な出力についてはビルドの最終レポートを参照してください)。これは初回ビルドであり、まだ公開もデプロイもされていません。
ワークフローキット:呼び出し元が提供する事実からレビュー用パケットを作成
バージョン 0.1.4 では、ステートレスなキットが 3 つ追加されました。各キットは、analyze_workflow と prepare_workflow_draft の 2 つのツールだけを公開します。明示されたサンプルポリシーに基づいて、提供された構造化データを評価し、入力が十分な場合に未送信のレビュー用ドラフトを作成します。プロバイダーアカウント、ライブソースの検証、ストレージ、メッセージ、資金移動、フルフィルメントの変更は含まれません。MCP ホストからツールの入力がモデルプロバイダーに送信される場合があります。まず架空の入力を使用し、組織のデータ規則に従ってください。
npx -y [email protected] kit quote-followup
npx -y [email protected] kit invoice-discrepancies
npx -y [email protected] kit order-handoff
設定済みの MCP サーバーごとに、1 つのキットを使用してください。架空のデモを試すか、対象を限定した実装を依頼してください。これらの無料キットには、顧客システムとの接続は含まれません。カスタム統合を依頼する前に、標準の CRM、会計、または注文管理ソフトウェアをご確認ください。
{ "mcpServers": { "quote-review": { "command": "npx", "args": ["-y", "[email protected]", "kit", "quote-followup"] } } }
次のように依頼してください。「提供されたタイムスタンプとフォローアップポリシーを使って、この見積もりをレビューしてください。ツールが準備完了と示した場合に限り、ドラフトを作成してください。」公開されているツールスキーマの必須フィールドをすべて送信し、不明な事実には null を使用してください。needs_review は情報源の確認が必要であることを意味し、no_action は提供された事実やポリシーに基づくとドラフトの作成は不要であることを意味します。入力例と想定される状態は dist/workflows/core.js に含まれています。これらの初期キットは、主要通貨単位あたり 100 セントとして、USD、EUR、GBP、CAD、AUD に対応しています。その他の通貨には、別途レビュー済みのルールが必要です。金額は整数のセント単位で、通貨は一致している必要があり、日付には UTC の ISO 秒単位または 3 桁のミリ秒単位を使用します。7 日間の鮮度期間と、本番前に支払いを済ませるルールは、業務に合わせて確認するサンプルポリシーです。asOf は呼び出し元から提供されるものであり、ライブクロックや検証タイムスタンプではありません。
これらの CLI キットは、互換性のある MCP ホストで stdio を使用します。デスクトップバンドルでは、従来の業務設定フローが維持されますが、ワークフローキットが自動的に有効になるわけではありません。コマンドを変更すると、キットが切り替わります。ホストの正確な設定方法については、デモのインストール手順をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。