MCP 工具参考
查阅 MCP 工具的用途和主要参数;编写调用或排查助手操作时使用本页。
Calends 的 MCP 服务器提供 27 个工具:14 个读取类,13 个写入类。只读令牌只能看到和调用读取类工具。接入方法见 MCP 接入。
- 日期一律是
YYYY-MM-DD字符串。 subscription可以是订阅 id,也可以是名称(模糊匹配);匹配到多个时返回候选,让助手用 id 再试。method可以是支付方式 id 或名称。currency_out把金额换成指定币种,缺省为本位币。period时间范围:today、next_3_days、next_7_days、next_30_days、this_month、next_month、last_30_days、this_year、custom(需要from、to)。cycle计费周期,比如{"unit":"month","every":1};unit可选day、week、month、year、lifetime(买断)。scope:mine不含代付,合租只算我的份额;gross是卡上的全额,含代付;proxy只看代付。dry_run:所有写入类工具都支持。传true只返回预览不保存;不传或false时保存,并返回保存后的订阅和接下来几笔扣款。- 参数错误、找不到订阅这类问题作为工具结果返回(
isError),助手能看到原因并改正。
| 工具 | 用途 | 主要参数 |
|---|---|---|
get_overview |
账本快照:今天、本位币、每月成本(不含代付,合租只算我的份额)、计费中的数量、支付方式(含 id)、在用的分类和地区、最重要的体检提示。建议第一个调用。 | currency_out |
list_categories |
按显示顺序列出分类:名称、图标、颜色、内置代码,以及有多少订阅在用(全部 / 在用)。 | 无 |
list_subscriptions |
列出订阅:状态、当前价格、每月成本、下次与上次扣款、支付方式、地区。 | query(模糊匹配名称、标签、备注、分类)、status(active、trial、paused、ending、ended、upcoming、lifetime、live、all;live = 计费中 + 试用 + 到期不续 + 暂停)、kind(mine、share_owner、share_member、proxy、all)、category、method、region、sort(next_charge、monthly_cost、name、start)、limit(缺省 100) |
get_subscription |
一个订阅的全部细节:每个阶段(换区、换套餐、断更)、价格历史、首期优惠与赠送时长、最近和接下来的扣款、合租成员的应收、代付还款、累计花费。 | subscription(必填)、months_back(缺省 12)、months_forward(缺省 6)、currency_out |
list_charges |
某个时间范围内的扣款(实际与预测)。 | period(缺省 next_30_days)、from、to、scope(缺省 mine)、subscription、method、include_projected(缺省 true)、currency_out |
spending_stats |
按月、年、分类、支付方式、币种、地区或订阅汇总支出。现金口径:每笔已发生的扣款按当天汇率。 | period(缺省 this_year)、from、to、group_by(缺省 category)、scope、include_projected、top(缺省 30)、currency_out |
get_trends |
时间序列:每月 MRR 走势、按月的现金与权责、或两个日期之间的 MRR 变动(新增、涨价、降价、退订、汇率影响)。 | metric(mrr、cash_vs_accrual、movement)、months_back(缺省 12)、months_forward(缺省 3,仅 cash_vs_accrual)、from、to(仅 movement) |
list_payment_methods |
支付方式:当前估算余额、每月消耗、续航(能撑多久、第一次不够是哪一笔)和充值建议。 | topup_months(缺省 6) |
list_people |
人员名册:联系方式、参与的合租和代付、现在欠多少、累计付过多少、最近一次付款。 | query、owing_only |
get_receivables |
别人欠我的钱:按人汇总,合租里到期或逾期的成员,代付里还没还的扣款。 | kind(share、proxy、all)、currency_out |
get_insights |
体检与报告。 | section(insights 体检、year_review 年度回顾、prepaid 预付余值、cancel_savings 退订省下的钱)、year(仅 year_review) |
list_events |
花钱决定的变更日志:开始、结束、暂停、续订、调价、换区换套餐,以及各自对每月成本的影响。 | since、until、subscription、limit(缺省 50) |
search_app_store |
按名称或 App Store 链接查应用:名称、图标地址、商店地址、开发者、类别。用来给新订阅补图标和网址。 | query(必填)、country(两位商店区域代码,缺省 us) |
get_carpool |
合租:我发起或加入的每个合租的席位(已用 / 总数 / 空位)、成员的收费标准、已付至和欠款;一年的成本、成员应交、我还要付多少或赚多少;发起至今的付出、收回和结果。 | subscription(可选,只看这一个) |
| 工具 | 用途 | 主要参数 |
|---|---|---|
create_subscription |
新建订阅。price 是每期价格。同名且同一开始日的订阅已存在时拒绝,除非 force=true。 |
name、price、currency、cycle(以上必填)、start(缺省今天)、category(尽量用 list_categories 里的名字;新名字会新建分类)、tags、method、region、url、icon、notes、account、status(active 或 trial)、trial_end、end、intro({price, until})、payments(可选完整历史:每笔 {date, amount, note?},包含所有账期,日期须在 start 至今天之间;未来按 price 推算)、force |
update_subscription |
修改描述性字段和设置,只改传了的键。调价用 change_price,换区换套餐用 change_plan。 |
subscription、set:name、category、tags、url、manage_url、notes、account、method、region、remind_days(-1 不提醒)、end(null 清除)、next_due、trial_end、expires |
change_price |
在当前方案里记一次调价,从某天起生效;之前的扣款保留原价。 | subscription、amount、from(缺省今天) |
change_plan |
开始同一个订阅的新阶段。 | subscription、action、at、plan(price、currency、cycle 必填,可选 method、region、note、planned)、keep_previous_until、earlier_until |
set_status |
暂停(停止推算扣款)、退订(某天起不再续费)或恢复(清除暂停和结束日)。 | subscription、action(pause、cancel、reactivate)、at(缺省今天;退订时从这天起不再续费) |
record_payment |
记一笔实际扣款、退款(填正数,保存为负)、补差或扣款失败,用订阅的币种。同一天同金额的重复记录会被拒绝,除非 allow_duplicate。 |
subscription、amount(必填)、date(缺省今天)、kind(charge、refund、adjust、failed)、settled({amount, currency},卡上实扣)、note、allow_duplicate、phase(两段并行时指定记在哪一段,填那段的开始日) |
delete_payment |
按日期删除一笔扣款记录。 | subscription、date、index(同一天有多笔时的序号,从 0 开始)、phase |
delete_subscription |
删除订阅和它的全部历史,不可撤销。助手应先 dry_run 预览,由你确认。 |
subscription |
set_share |
设为合租或修改合租。 | subscription、role(owner 我发起、member 我加入、none 取消合租)、seats(总席位,含我)、owner_name(我加入时的发起人)、since(发起日)、collect_from(统一收款起点) |
save_share_member |
给我发起的合租添加成员,或修改成员(传 member)。 |
subscription、member、name、fee(每次收多少)、fee_currency(缺省为合租收款币种)、bill_every(1、3、6、12 个月)、exempt(不分摊)、paid_until、joined、left、contact_via、contact、account、note、first_period(prorate 默认按天、full 整期、free 免费)、first_amount(首期覆盖金额,null 恢复计算) |
remove_share_member |
把成员彻底移出合租,收款记录一起删除。想保留历史请用 save_share_member 设 left。 |
subscription、member |
record_receivable |
记合租收款(kind=share)或代付还款(kind=proxy)。合租默认最早未付区间及金额;代付须传金额。可只传 person 定位唯一待收项目。 |
subscription、person、kind、member、charge、amount、currency、date(收到日,默认今天)、from、until(合租覆盖期,含两端)、note |
update_payment_method |
修改支付方式:校准当前余额、记一笔充值(可附实际花费,比如用人民币买的礼品卡)、改名称或地区。 | method(必填)、balance、top_up({amount, date, cost, cost_currency, note})、name、region |
set_share 接受 collect_from,预览和保存都返回实际使用的起点。省略时保留已设覆盖值,或依次从发起日、历史覆盖期/已付至、订阅开始日推断。成员按该起点加自己的收费月数对齐,并保留月末规律。
save_share_member 的 first_period 可选 prorate(默认,按含两端的实际天数折算并取到分)、full、free。first_amount 可覆盖非免费首期金额,币种为 fee_currency;传 null 恢复计算,之后使用常规收费。新成员默认今天加入。见统一收款日与中途加入。
合租收款可省略 from、until 和 amount:record_receivable 使用最早未付区间、对齐周期末日和建议金额,并跳过免费首期。迟收款也保留旧欠期起点。显式金额(含零)按实收保存,所选覆盖期视为已付,不追踪差额欠款;已付至不会倒退。显式金额省略 currency 时沿用合租收款币种;推算金额默认收费币种,指定其他币种时按收到日汇率转换。缺失汇率会报错,不会记零。代付还款仍须传金额。
成员预览和保存返回 collect_from、paid_until、first_collection 与 next_collection(含两端的覆盖期和金额)、next_collection_date、is_first_period、pending_amount。record_receivable 还返回实收记录;get_carpool 带出同样的摘要、收费与首期设置。下次收款日可能已逾期,待收金额包含截至今天的旧欠期。所有写工具保留 dry_run,内置助手仍须确认草稿后才写入。
change_plan 的几种 action
Section titled “change_plan 的几种 action”| action | 作用 |
|---|---|
switch |
从 at 起换区、换套餐、换币种或换支付方式。默认无缝切换;给了 keep_previous_until,上一阶段继续跑到那天,两段并行、都照常计费(比如新开了土耳其区,美区的预付还没用完)。plan.planned=true 表示只是计划。 |
resume |
断更后在 at 重新订阅,中间的空档记为断更。 |
earlier |
在订阅开始之前补一段历史(比如先买断、后来才改订阅),at 是那一段的开始日;缺省一直用到原来第一段开始,给了 earlier_until 则在那天结束,中间算断更。 |
confirm |
确认一个计划中的阶段,at 为它的开始日。 |
drop |
取消一个计划中的阶段,上一阶段在原定的切换日结束。 |
退订(set_status 的 cancel)会同时取消退订日之后排好的阶段,包括计划中的换套餐。
「Netflix 从今天起涨到 17.99 美元」,助手大致会这样调用:
{ "name": "change_price", "arguments": { "subscription": "Netflix", "amount": 17.99, "dry_run": true } }确认预览无误后,再去掉 dry_run 调用一次。