mcpField
C
crowntowncompost-mcp

crowntowncompost-mcp

ローカル
github.com/chrischallその他06 日前に更新

crowntowncompost-mcp について

crowntowncompost-mcpは、Crown Town Compostの顧客ポータルをMCPに接続し、サービス、請求、アカウント関連の操作を行います。回収情報や請求書を読み取れ、変更には確認が必要です。

主な機能

  1. 01アカウントとサブスクリプション情報の確認
  2. 02回収予定とサービス履歴の確認
  3. 03今後の回収予定と請求書の一覧
  4. 04サービスのスキップと未回収の報告
  5. 05アカウント更新とサポートへの連絡

活用シーン

  1. 01次回の回収日と時間帯を確認する
  2. 02回収履歴と請求状況を確認する
  3. 03予定されている回収をスキップする
  4. 04回収漏れをサービス提供元に報告する

MCP 対応

Crown Town Compostポータルのデータとアカウント操作をMCPツールとして提供します。読み取りと確認付きの書き込みはポータルのページおよびJSONエンドポイントを利用し、セッションCookieまたはポータル認証情報で認証します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"chrischall-crowntowncompost": {
"command": "npx",
"args": [
"-y",
"crowntowncompost-mcp"
],
"env": {
"CROWNTOWN_SESSION_COOKIE": "<CROWNTOWN_SESSION_COOKIE>",
"CROWNTOWN_USERNAME": "<CROWNTOWN_USERNAME>",
"CROWNTOWN_PASSWORD": "<CROWNTOWN_PASSWORD>",
"CROWNTOWN_SESSION_CACHE": "<CROWNTOWN_SESSION_CACHE>",
"CROWNTOWN_SESSION_FILE": "<CROWNTOWN_SESSION_FILE>"
}
}
}
}
起動コマンドnpx -y crowntowncompost-mcp
設定が必要な環境変数
CROWNTOWN_SESSION_COOKIEシークレットA Cookie header from an already-signed-in portal session ("sessionid=...; csrftoken=..."). Supply this and no password is needed — the login is skipped entirely.
CROWNTOWN_USERNAMEYour portal.crowntowncompost.com username or email address. Needed only if you are not supplying CROWNTOWN_SESSION_COOKIE.
CROWNTOWN_PASSWORDシークレットYour Crown Town Compost customer-portal password. Needed only if you are not supplying CROWNTOWN_SESSION_COOKIE.
CROWNTOWN_SESSION_CACHESet to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.
CROWNTOWN_SESSION_FILEAbsolute path for the session cache file. Defaults to $MCP_DATA_DIR/.crowntowncompost-mcp/session.json.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcrowntowncompost-mcp1.1.7

ツール

11

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

crowntowncompost-mcp

Crown Town Compost のカスタマーポータル向け MCP サーバーです。集荷状況、請求書、今後の収集日を確認したり、サービスをスキップしたり、集荷漏れを報告したり、アカウントを更新したりできます。すべて自然言語で操作できます。

AI(Claude Code)によって開発・保守されています。ご自身の判断でご利用ください。

接続先

crowntowncompost.com は、顧客データを扱わないマーケティングサイトです。すべてのデータは portal.crowntowncompost.com(ホワイトラベル版の StopSuite 運搬業者向けプラットフォームである Django アプリ)にあります。このサーバーは、すでにお持ちのセッション Cookie、または通常のフォームログインで発行されるご自身のポータルのユーザー名とパスワードを使ってサーバー側で認証し、ウェブサイトと同じページや JSON エンドポイントを読み込みます。 ブラウザー拡張機能も、ボット対策の回避策も、間に入るサードパーティサービスも必要ありません。

インストール

npm install -g crowntowncompost-mcp

次に、MCP ホストに追加します。次の 2 つの設定方法があり、すでにお持ちのセッション Cookie(ほかの設定は不要)か、サーバーが Cookie を発行できるようにするログイン情報の組み合わせのいずれかを指定します。

{
  "mcpServers": {
    "crowntowncompost": {
      "command": "npx",
      "args": ["-y", "crowntowncompost-mcp"],
      "env": {
        "CROWNTOWN_USERNAME": "[email protected]",
        "CROWNTOWN_PASSWORD": "your-portal-password"
      }
    }
  }
}

代わりにセッション Cookie を使うには、サインイン済みのブラウザーセッションから取得した Cookie ヘッダーの値(sessionid=…; csrftoken=…)を CROWNTOWN_SESSION_COOKIE に設定し、ユーザー名とパスワードは設定しないでください。この場合、ポータルへのログインは実行されず、パスワードが保存されることもありません。

両方を設定する方法も有効で、最も堅牢な設定です。まず Cookie が使われ、ポータルで期限切れになった場合は、ログインによって自動的に新しい Cookie が発行されます。Cookie だけを設定した場合、セッションが期限切れになると、その旨が報告されます。サーバーは設定が何もないとは言わず、期限切れであることを明確に伝えます。

ローカルでは、代わりに .env.example を .env にコピーすることもできます。認証情報がなくてもサーバーは起動するため、ホストのインストール時のプローブは成功します。設定エラーは最初のツール呼び出し時に表面化します。

ツール

読み取り
ツール返される内容
crowntown_healthcheck認証情報が有効かどうかとアカウントの状態。失敗した場合、error.kind に失敗した段階が示されます(no_credential、credential_rejected、session_expired、edge_blocked、timeout、transport、http)
crowntown_get_dashboardアカウントの状態、サブスクリプション(プラン、料金、更新日)、次回のサービス日、住所ごとのサービスと集荷曜日、環境への貢献状況
crowntown_get_account連絡先情報と通知設定
crowntown_get_pickup_schedule住所ごとの集荷曜日と時間帯 — 公式の搬出期限と、収集履歴から算出した実際の到着時間帯(最早/最遅/通常、一定か変動するか)
crowntown_list_service_history過去の収集実績 — 日付、結果、時刻、重量、サービス。ページネーションに対応。success/missing/empty/inaccessible/unacceptable で絞り込み可能
crowntown_list_upcoming_services今後の収集日と、それぞれをスキップするために必要な ID
crowntown_list_invoices金額、ステータス、Stripe の支払いリンクを含む請求履歴
書き込み(すべて確認が必要)
ツール内容
crowntown_skip_service予定されている収集日をスキップ、またはスキップ解除します
crowntown_update_account連絡先情報/通知設定を更新します
crowntown_report_missed_pickup収集が行われなかったことを報告します
crowntown_contact_supportカスタマーサポートにメッセージを送信します

変更を加えるすべてのツールは、書き込みを行う前に確認を求めます。確認プロンプトを表示できるクライアント(Claude Code)には、そのプロンプトが表示されます(MCP_CONFIRM_ELICITATION=off の場合を除きます)。それ以外の環境(claude.ai、Claude Desktop)では、最初の呼び出しでは何も送信されず、送信される内容の正確なプレビューと confirmToken を含む status: "confirmation-required" が返されます。同じ引数とそのトークンを使った再呼び出しでのみ処理が進みます。トークンは一度だけ使用でき、有効期限があり、その間に送信内容が変わった場合は拒否されます(DRAFT_CHANGED)。これには、ツールが先に読み取る値も含まれます。たとえば、crowntown_update_account が再保存するアカウントフォームの内容や、サポートフォームに事前入力される返信先メールアドレス/電話番号などです。再読み込みによって変更が反映されたことを確認できる場合(スキップ、アカウント更新)は、ツールが再読み込みして verified と報告します。確認できない場合(サポートメッセージ、収集漏れの報告)は、成功したと主張せず、その旨を伝えます。

確認
変数デフォルト
MCP_CONFIRM_MODEask-user確認プロンプトを表示できないクライアント(claude.ai、Claude Desktop)で、書き込みをどのように処理するかを指定します。ask-user:2段階で処理します。最初の呼び出しでは何も行わず、プレビューとトークンを返します。モデルは、トークンを付けて再度呼び出す前に、チャットでユーザーの承認を得る必要があります。auto:同じく2段階で処理しますが、モデルはプレビューを確認した後、自身の判断でトークンを使用できます。refuse:そのようなクライアントでの書き込みを拒否します。プロンプトを表示できるクライアント(Claude Code)には、MCP_CONFIRM_ELICITATION=off にしない限り、常に実際のプロンプトが表示されます。認識されない値は refuse として扱われます。
MCP_CONFIRM_ELICITATIONonoff にすると確認プロンプトは表示されず、すべてのクライアントで MCP_CONFIRM_MODE の動作が適用されます。プロンプトを表示できるとしながら、実際には表示しないクライアント(書き込みが停止する opencode 2.0.x)に設定してください。それ以外の値は on として扱われ、stderr に警告が出力されます。
MCP_CONFIRM_TTL_SECONDS600トークンの有効期間です。
MCP_CONFIRM_SECRETプロセスごとにランダム署名キーです。サーバーの再起動後もトークンを有効にする必要がある場合にのみ設定してください。

支払いは意図的に対象外としています。crowntown_list_invoices は、ブラウザーで開くためのホスト型請求書 URL を返します。

MCP を使わない場合

skills/crowntown-portal スキルは、シェルで curl を使って同じ操作を行います。スクリプトでの利用や、このサーバーがインストールされていないマシンで役立ちます。このスキルには、Django の CSRF ハンドシェイク、2つの JSON エンドポイント、各書き込みのフィールド一覧が記載されています。

開発

npm install
npm run build
npm test

テストではネットワークをモックするため、認証情報は不要で、稼働中のポータルにもアクセスしません。tests/server-boot.test.ts は実際にビルドされた成果物(npm の bin とバンドル。後者は node_modules なし)を起動し、それらに対して MCP ハンドシェイクを実行します。

エンドポイントの形式については、docs/CROWNTOWN-API.md に記載されています。実環境で検証済みの箇所と、未検証の箇所も確認できます。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。