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 分

    请在仓库或注册中心条目中声明许可证。