Skip to main content
Glama

Frontline Copilot

小売店舗マネージャーのためのAIレビュー仕分けツール。

あらゆるソースから顧客レビューを取り込み、Claude がカテゴリと深刻度で分類し、対応が必要なものを店舗マネージャーの Airtable タスクリストにルーティングする常時稼働システムです。重大な問題(食品衛生、スタッフの行為、健康リスク)については、リアルタイムの Slack アラートも送信します。

MCP サーバーとしても提供されており、店舗マネージャーは Claude Desktop から会話形式でクエリやトリアージを行うことができます。

店舗運営のための AI コパイロットという新興カテゴリにインスパイアされています。


問題

多店舗展開の小売チェーンの店舗マネージャーは、顧客レビューからのシグナルに埋もれています。そのほとんどはノイズ(賞賛や小さな不満)です。ごく一部は緊急を要します(食品衛生、差別、けがのリスク)。ほとんどのツールは、マネージャーが重要事項を見つけるためにすべてを読むことを要求しますが、これは規模が大きくなると勝ち目のない戦いです。

Frontline Copilot はこれを逆転させます。Claude がすべてを読み、マネージャーはアクションが必要なものだけを見ます。


Related MCP server: Shopify MCP Server

仕組み

┌────────────┐   ┌──────────────┐   ┌────────────┐   ┌────────────┐
│  Reviews   │──▶│ Classifier   │──▶│  Airtable  │──▶│   Slack    │
│  (JSON /   │   │ (Claude API, │   │  (task     │   │  (critical │
│   Google)  │   │  tool use)   │   │  tracker)  │   │   alerts)  │
└────────────┘   └──────────────┘   └────────────┘   └────────────┘
                        │
                        ▼
                 ┌──────────────┐
                 │  MCP server  │◀── Claude Desktop, Cursor, ...
                 │  (3 tools)   │
                 └──────────────┘

各レビューは、1(ポジティブ)から5(クリティカル)までの深刻度を持つ9つのカテゴリのいずれかに分類されます。深刻度が3以上のレビューは Airtable タスクになり、深刻度が4以上のレビューはさらに Slack アラートを発火します。


スクリーンショット

エンドツーエンドのパイプライン実行

21件のレビューを約60秒で処理。7件のタスクを作成し、4件のリアルタイムのクリティカルアラートを発火。

Terminal

Airtable — タスクボード

深刻度でソートされ、カテゴリで色分けされたタスク。これが店舗マネージャーの見る画面です。

Airtable board

Airtable — カンバンビュー

同じデータをカテゴリでグループ化。問題の分布を一目で確認できます。

Airtable Kanban

Slack — リアルタイムのクリティカルアラート

アクション優先のレイアウトと Airtable タスクへの直接リンクを備えた Block Kit カード。

Slack alerts


技術スタック

  • Python 3.10+ — dataclasses、str | None ユニオン型、pathlib

  • Anthropic Claude API — ツール使用による分類(claude-haiku-4-5)

  • Airtable REST API — タストラッカー、生の requests で呼び出し

  • Slack Incoming Webhooks — リッチなアラートカード用の Block Kit

  • MCP (Model Context Protocol) — FastMCP による会話型インターフェース

  • レビューソース用のアダプターパターン(Mock が同梱、Google Places はスタブ)

サードパーティ依存は anthropicrequestsmcp の3つのみ。それ以外はすべて標準ライブラリです。


クイックスタート

# 1. Clone and install
git clone https://github.com/miguelpomarm/frontline-copilot
cd frontline-copilot
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# 2. Configure secrets
cp .env.example .env
# ... edit .env with your keys (see setup section below)

# 3. Run the pipeline
python triage.py

# 4. Launch as an MCP server (optional)
python mcp_server.py

セットアップ(初回のみ、約10分)

1. Anthropic API キー

https://console.anthropic.com/ で取得します。無料枠でデモ実行には十分です。21件のレビューで約 $0.03 です。

2. Airtable ベース

Tasks という名前のテーブルを持つ新しいベースを作成し、以下のフィールドを追加します(正確な名前):

フィールド

タイプ

Review ID

単一行テキスト(プライマリフィールド)

Store

単一行テキスト

Category

単一選択 — 9つのタクソノミー値で設定

Severity

数値(整数)

Summary

長いテキスト

Review Text

長いテキスト

Author

単一行テキスト

Date

日付

Status

単一選択 — OpenIn ProgressResolved

次に、https://airtable.com/create/tokens で個人アクセストークンを生成し、ベースに対して data.records:readdata.records:write のスコープを付与します。トークンとベース ID(app... で始まり、ベースの URL にあります)をコピーします。

3. Slack Incoming Webhook

https://api.slack.com/apps で Slack アプリを作成します。Incoming Webhooks を有効にし、クリティカルアラートを受信するチャンネルを指す新しいウェブフックを追加し、ウェブフック URL をコピーします。

4. .env を記入

ANTHROPIC_API_KEY=sk-ant-...
AIRTABLE_API_KEY=pat...
AIRTABLE_BASE_ID=app...
AIRTABLE_TABLE_NAME=Tasks
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...

5. 初回実行

python triage.py --limit 3 --dry-run   # sanity check, no side effects
python triage.py --limit 3             # small live run
python triage.py                       # full 21 reviews

MCP インテグレーション (Claude Desktop)

これを ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) に追加し、Claude Desktop を再起動します:

{
  "mcpServers": {
    "frontline-copilot": {
      "command": "python",
      "args": ["/absolute/path/to/frontline-copilot/mcp_server.py"]
    }
  }
}

その後、Claude Desktop 内で:

"How is Aurora Times Square doing right now?"

Claude は get_store_health("times_square") を呼び出し、Airtable にアクセスし、現在のスナップショット(オープンタスク、クリティカル数、トップカテゴリ)を返します。


設計上の決定

レビューアに指摘する価値のある意図的な選択:

閉じたタクソノミー + Other バケット カテゴリは固定の列挙型であり、自由形式ではありません。これにより、一貫したルーティングとメトリクスが保証されます。Other は逃げ道であり、事前の推測ではなく実際のデータに基づいてタクソノミーを拡張するために定期的にレビューされます。

プロンプトエンジニアリングよりもツール使用 Claude は、列挙型の強制を備えたツールスキーマを介して構造化出力を返します。これにより、パースのバグが排除され、LLM がタクソノミー外のカテゴリを幻覚することが防止されます。

デフォルトモデルとしての Haiku 4.5 明確にスコープされた分類タスクでは、Haiku は高速(サブ秒)、低コスト(レビューあたり約 $0.001)、十分な精度です。本番環境では、この決定だけで中程度のボリュームで月に数千ドルを節約できます。

レビューソースのためのアダプターパターン ReviewSource は抽象インターフェースです。MockSource と、ドキュメント化された GooglePlacesSource スタブが同梱されています。Yelp、TrustPilot、または独自のフィードに切り替えるには、新しいサブクラスを作成するだけです。パイプラインの残りは変更されません。

レビュー ID による冪等性 同じレビューを再処理しても、重複タスクは作成されません。Airtable は、各作成の前にチェックされます。

深刻度しきい値は調整可能な定数 ACTION_THRESHOLDALERT_THRESHOLD はモジュールレベルです。許容度が異なる顧客は、コードではなく2つの数値を変更します。

MVP では同期が非同期よりも優先 21件のレビューを順次約40秒で処理します。非同期バリアントは、約15行で交換できます(AsyncAnthropic + レート制限用のセマフォを備えた asyncio.gather)。このボリュームでは、速度よりも読みやすさが優先されます。

星ではなくテキスト プロンプトは、Claude に星評価よりもレビューテキストを重視するよう明示的に指示します。食品衛生に言及した4つ星のレビューは、深刻度2ではなく5です。


ロードマップ(未実装)

  • FastAPI ウェブフックエンドポイント (POST /webhook/review) — バッチ実行ではなくリアルタイムの取り込み用。

  • GooglePlacesSource — アダプターインターフェースは完成済み。ライブ実装は、API 統合とリトライロジックに約1時間。

  • レート制限対応の非同期バッチ処理 — 高ボリュームの本番環境向け。

  • エンドツーエンドテスト (Playwright / pytest と記録された API インタラクション) — Airtable/Slack の副作用を検証。

  • config.yaml による顧客ごとの設定可能なしきい値


ライセンス

MIT — LICENSE を参照。


Miguel Pomar Martínez によるテクニカルポートフォリオ作品として構築されました。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

  • Streamline your Attio workflows using natural language to search, create, update, and organize com…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/miguelpomarm/frontline-copilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server