Crowntowncompost Mcp

io.github.chrischall由 GitHub 帳號 chrischall 發布v1.2.0更新於 Nov 7, 2026

Customer access to the Crown Town Compost portal: pickups, invoices, and skips (AI-built).

概覽

AI 產生的概覽

讓助理連接 Crown Town Compost 客戶入口帳號,查看收運、帳單與環保數據,並可跳過服務或聯絡客服。

可以做什麼
  • 檢查憑證與帳號狀態,讀取儀表板、訂閱、服務地址與環保影響
  • 讀取聯絡人資訊與通知偏好
  • 查看收運時間表、實際到達時間區間、歷史收運紀錄與即將到來的收運日
  • 列出帳單,含金額、狀態與 Stripe 付款連結
  • 跳過或取消跳過某次收運、更新帳號資訊、回報漏收、傳送客服訊息
適用情境
適合 Crown Town Compost 客戶用自然語言詢問即將到來的收運、歷史收運、帳單或帳號設定,並在不開啟網站的情況下做小幅調整,例如跳過某次收運。
執行需求
以 npm 套件形式透過 stdio 在本機執行,需要 Node.js 與 MCP 用戶端。需要 CROWNTOWN_USERNAME 與 CROWNTOWN_PASSWORD,或來自已登入瀏覽器工作階段的 CROWNTOWN_SESSION_COOKIE。需要連線至 portal.crowntowncompost.com 的網路。另有工作階段快取檔案與確認行為的選用設定。
安裝前請注意
伺服器會保存入口網站密碼或工作階段 Cookie,預設還會把工作階段快取到磁碟,除非將 CROWNTOWN_SESSION_CACHE 設為 false。多個工具會寫入真實帳號:跳過收運、修改聯絡方式、回報漏收與傳送客服訊息(會通知工作人員)。寫入前有確認提示或兩步權杖,但 MCP_CONFIRM_MODE=auto 允許模型自行檢視預覽後繼續。付款不在範圍內,帳單連結會在瀏覽器開啟 Stripe 頁面。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Crowntowncompost Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

crowntowncompost-mcp

MCP server for the Crown Town Compost customer portal — check your pickups, invoices, and upcoming collection days, skip a service, report a missed pickup, and update your account, all in natural language.

Developed and maintained by AI (Claude Code). Use at your own discretion.

What it talks to

crowntowncompost.com is a marketing site with no customer data. Everything lives at portal.crowntowncompost.com, a Django app (a white-labeled StopSuite hauler platform). This server authenticates server-side with a session cookie you already hold, or with your own portal username and password — a normal form login that returns one — and reads the same pages and JSON endpoints the website uses. No browser extension, no bot-wall workaround, no third-party service in the middle.

Install

sh
npm install -g crowntowncompost-mcp

Then add it to your MCP host. Two configurations work — supply either a session cookie you already hold (nothing else needed), or the login pair so the server can mint one:

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

To use a session cookie instead, set CROWNTOWN_SESSION_COOKIE to a Cookie header value from a signed-in browser session (sessionid=…; csrftoken=…) and leave the username and password unset. The portal login is then never run, and no password is stored anywhere.

Setting both is also valid, and is the most robust configuration: the cookie is used first, and when the portal eventually expires it the login quietly mints a replacement. With a cookie alone, an expired session is reported as expired — the server says so plainly rather than claiming nothing is configured.

Locally you can instead copy .env.example to .env. The server boots without credentials (so a host's install-time probe succeeds); the configuration error surfaces on the first tool call.

Tools

Reads

ToolWhat it returns
crowntown_healthcheckWhether credentials work, plus account status; on failure error.kind says which hop broke (no_credential, credential_rejected, session_expired, edge_blocked, timeout, transport, http)
crowntown_get_dashboardAccount status, subscription (plan, price, renewal date), next service date, service addresses + pickup days, and your environmental impact
crowntown_get_accountContact details and notification preferences
crowntown_get_pickup_schedulePickup day(s) and time window per address — the official set-out-by time plus an observed arrival window (earliest/latest/typical, consistent vs varies) derived from your collection history
crowntown_list_service_historyPast collection stops — date, outcome, time, weight, services. Paginated; filter by success/missing/empty/inaccessible/unacceptable
crowntown_list_upcoming_servicesUpcoming collection days, each with the ids needed to skip it
crowntown_list_invoicesBilling history with amounts, status, and Stripe payment links

Writes (all confirmation-gated)

ToolWhat it does
crowntown_skip_serviceSkip or un-skip an upcoming collection day
crowntown_update_accountUpdate contact details / notification preferences
crowntown_report_missed_pickupReport that a collection was missed
crowntown_contact_supportSend a message to customer support

Every mutating tool asks you to confirm before it writes anything. A client that can show a confirmation prompt (Claude Code) gets that prompt (unless MCP_CONFIRM_ELICITATION=off). Elsewhere (claude.ai, Claude Desktop) the first call sends nothing and returns status: "confirmation-required" with a preview of exactly what would be sent plus a confirmToken; only a repeat call with the same arguments and that token proceeds. The token works once, expires, and is refused (DRAFT_CHANGED) if what would be sent changed in between — including values the tool reads first, such as the account form crowntown_update_account re-saves or the reply-to email/phone the support form pre-fills. Where a re-read can prove the change stuck (skips, account updates) the tool re-reads and reports verified; where it can't (support messages, missed-pickup reports) it says so rather than claiming success.

Confirmations

variabledefault
MCP_CONFIRM_MODEask-userWhat a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse.
MCP_CONFIRM_ELICITATIONonoff never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE behaviour. Set it for a client that says it can show prompts but never does (the write hangs — opencode 2.0.x). Any other value is treated as on, with a warning on stderr.
MCP_CONFIRM_TTL_SECONDS600How long a token stays valid.
MCP_CONFIRM_SECRETrandom per processSigning key; set it only if tokens must survive a server restart.

Payments are deliberately out of scope — crowntown_list_invoices returns the hosted invoice URL for you to open in a browser.

Without the MCP

The skills/crowntown-portal skill does the same things with curl in a shell — useful in scripts or on a machine where this server isn't installed. It documents the Django CSRF handshake, both JSON endpoints, and every write's field list.

Development

sh
npm installnpm run buildnpm test

Tests mock the network — no credentials needed and nothing hits the live portal. tests/server-boot.test.ts spawns the real built artifacts (the npm bin and the bundle, the latter without node_modules) and runs the MCP handshake against them.

Endpoint shapes are documented in docs/CROWNTOWN-API.md, including which parts are live-verified and which are not.

License

MIT

來源:README.md,提交 2d42606

工具

11

crowntown_healthcheck

Verify Crown Town Compost auth + connectivity

Confirm credentials are configured, log in to the Crown Town Compost portal, fetch the dashboard, and report {authenticated, account_status, service_addresses}. On failure, error.kind says which hop broke: no_credential (nothing configured), credential_rejected (the portal refused the username/password), session_expired (a supplied session cookie is no longer honoured), edge_blocked (a CDN/WAF refused the request before the portal saw it, so the credentials were never judged), timeout, transport or http. Read-only; never returns the credentials.

無需輸入參數。

crowntown_get_dashboard

Get account dashboard summary

Get your Crown Town Compost dashboard: account status, active subscription (plan, price, renewal date), next service date, service address(es) and their pickup day(s), and your composting environmental impact (lbs diverted, seedlings, miles offset, gallons of gas). Read-only.

無需輸入參數。

crowntown_get_account

Get account contact details

Get your account contact details (first name, last name, phone) and notification preferences (email reminders, service notifications). Read-only — use crowntown_update_account to change them.

輸入參數view

crowntown_update_account

Update account contact details / preferences

Update your contact details and/or notification preferences. Reads your current account form, changes ONLY the field(s) you specify, and re-saves the rest verbatim. The preview shows the current values and the resulting state. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

輸入參數phonelast_namefirst_nameconfirmTokensend_email_remindersservice_notifications

crowntown_list_service_history

List service history (pickups)

List past collection stops for your account — date, status (Success/Missing/Empty/Inaccessible/Unacceptable), collection time, weight, and services rendered. Paginated and filterable by status. Read-only.

輸入參數pagestatusper_page

crowntown_list_upcoming_services

List upcoming (skippable) services

List upcoming scheduled collection days from the service calendar, each with the identifiers needed to skip it (rid, clid), the service date, and whether it is currently scheduled or already skipped. view "brief" answers one line per day instead: "Compost pickup — <ISO date> — scheduled|skipped". Read-only — use crowntown_skip_service to actually skip/unskip.

輸入參數view

crowntown_get_pickup_schedule

Get pickup schedule (days + time window)

Get the pickup schedule for each service address: pickup day(s), next service date, the official set-out-by time, and an observed arrival-time window (earliest/latest/typical and whether it is consistent or varies) derived from the recorded collection times in your service history. Crown Town Compost publishes no guaranteed arrival window, so the observed window is empirical. Read-only.

輸入參數history_sample

crowntown_skip_service

Skip or un-skip an upcoming service

Skip (or un-skip) an upcoming collection day. Pass the rid + clid from crowntown_list_upcoming_services. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

輸入參數rid必填clid必填actionconfirmToken

crowntown_list_invoices

List billing history (invoices)

List your Crown Town Compost invoices — number, date, amount, status, whether payable, and links (Stripe PDF / receipt / hosted invoice page). Paginated. view "brief" answers one line per invoice instead ("Invoice <number> <amount> — <ISO date> — <status>", inside the untrusted-data envelope) and lists only the payable invoices unless payable_only is false. Read-only.

輸入參數pageviewper_pagepayable_only

crowntown_report_missed_pickup

Report a missed pickup

Report that a scheduled collection was missed. This notifies Crown Town Compost staff. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

輸入參數date必填commentconfirmToken

crowntown_contact_support

Send a message to customer support

Send a message to Crown Town Compost customer support. The reply-to email and phone default to the ones the support form pre-fills from your account, and the preview shows the exact values that will be sent. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

輸入參數emailphonemessage必填confirmToken

版本歷史

16
  1. v1.2.0最新Nov 4, 2026
  2. v1.1.8Oct 29, 2026
  3. v1.1.7Oct 17, 2026
  4. v1.1.6Oct 16, 2026
  5. v1.1.5Oct 10, 2026
  6. v1.1.4Oct 7, 2026
  7. v1.1.3Oct 5, 2026
  8. v1.1.2Oct 3, 2026
  9. v1.1.1Sep 25, 2026
  10. v1.1.0Sep 24, 2026
  11. v1.0.3Sep 23, 2026
  12. v1.0.2Sep 23, 2026
  13. v1.0.1Sep 21, 2026
  14. v1.0.0Sep 20, 2026
  15. v0.6.0Sep 18, 2026
  16. v0.5.2Sep 16, 2026

評分

已滿足適用檢查項的 80%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。