io. github. theluckystrike/ subscription-manager-track-renewals
by theluckystrike · remote · no sign-in to list tools · v0.23.1 · published by GitHub user theluckystrike
Track subscriptions and renewals from your AI chat: schedules, due dates, reminders, local data.
14 tools: 1 can delete or cancel things, 12 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things12Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http subscription-manager-track-renewals https://mcp.zovo.one/mcp/subscription-manager-track-renewals --header 'Authorization: <your-authorization>'Findings
Matches of fixed checks, with the text they matched.
- Warnschedule_list
The server marks "schedule_list" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "schedule_list" says "schedule": a word for a change.
- Warnschedule_get
The server marks "schedule_get" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "schedule_get" says "schedule": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 1Claude Code: deny
schedule_deleteDelete one schedule permanently.No findings
Why it is in this group
- The name "schedule_delete" says "schedule": a word for a change.
- The description's first verb is "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete one schedule permanently. Invoices already generated stay in the invoice server and the history is kept. Re-creating it gives a NEW id, so its old periods count as unbilled. schedule_pause is reversible.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Changes things 12Claude Code: ask
forecastExpected invoiced revenue per calendar month per currency from active schedules.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Expected invoiced revenue per calendar month per currency from active schedules. Invoiced and skipped periods are excluded and paused schedules listed apart. Free: 3 months; Pro: up to 120.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
invoice_generate_dueCreate a real invoice in the invoice server for every schedule occurrence on or before as_of that has not been invoiced yet, and render each PDF.No findings
Why it is in this group
- The name "invoice_generate_due" says "generate": a word for a change.
Description, as the server wrote it Create a real invoice in the invoice server for every schedule occurrence on or before as_of that has not been invoiced yet, and render each PDF. Returns what was created, what was skipped and what is still due.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
license_activateTurn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
schedule_createDefine a repeating invoice: a client, the line items, how often to bill, and when it starts and ends.No findings
Why it is in this group
- The name "schedule_create" says "schedule": a word for a change.
Description, as the server wrote it Define a repeating invoice: a client, the line items, how often to bill, and when it starts and ends. Returns the schedule id, a summary and its next dates. Nothing is invoiced until invoice_generate_due runs.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
schedule_getReturn one schedule in full by id or client: items, cadence, dates, due days, anchor rules, notes, per-period amount, next due date and how many invoices it generated.1 finding
Why it is in this group
- The name "schedule_get" says "schedule": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "schedule_get" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "schedule_get" says "schedule": a word for a change.
Description, as the server wrote it Return one schedule in full by id or client: items, cadence, dates, due days, anchor rules, notes, per-period amount, next due date and how many invoices it generated. schedule_history is the log.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
schedule_historyThe audit log for one schedule id, oldest first: period, invoice number, issue and due dates, amount, PDF path, and whether that invoice is unpaid, paid, skipped or since deleted.No findings
Why it is in this group
- The name "schedule_history" says "schedule": a word for a change.
Description, as the server wrote it The audit log for one schedule id, oldest first: period, invoice number, issue and due dates, amount, PDF path, and whether that invoice is unpaid, paid, skipped or since deleted. schedule_list finds the id. Pro.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
schedule_listList schedules: id, client, cadence, per-period amount and currency, start and end dates, status, next due date and auto_generate.1 finding
Why it is in this group
- The name "schedule_list" says "schedule": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "schedule_list" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "schedule_list" says "schedule": a word for a change.
Description, as the server wrote it List schedules: id, client, cadence, per-period amount and currency, start and end dates, status, next due date and auto_generate. Filter by status; a paused schedule reports no next due date.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
schedule_pauseStop one schedule generating invoices without deleting it; invoice_generate_due and forecast skip it.No findings
Why it is in this group
- The name "schedule_pause" says "schedule": a word for a change.
Description, as the server wrote it Stop one schedule generating invoices without deleting it; invoice_generate_due and forecast skip it. Its periods keep falling due and resuming back-bills them, so use schedule_skip to drop just one.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
schedule_resumeMake a paused schedule active again.No findings
Why it is in this group
- The name "schedule_resume" says "schedule": a word for a change.
Description, as the server wrote it Make a paused schedule active again. Every period missed while it was paused is still due and the next invoice_generate_due creates them all. Refused when it would pass the free tier's 3 active.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
schedule_skipClose ONE occurrence for good without pausing the schedule, reporting what will not be billed.No findings
Why it is in this group
- The name "schedule_skip" says "schedule": a word for a change.
Description, as the server wrote it Close ONE occurrence for good without pausing the schedule, reporting what will not be billed. period must be a real occurrence of it. An invoiced period is refused; undo reopens a skip.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
schedule_upcomingTable every occurrence of every ACTIVE schedule due in the next N days (30 default), with its amount and the invoice due date, plus a total per currency.No findings
Why it is in this group
- The name "schedule_upcoming" says "schedule": a word for a change.
Description, as the server wrote it Table every occurrence of every ACTIVE schedule due in the next N days (30 default), with its amount and the invoice due date, plus a total per currency. Free lists the first 3 in your horizon.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
schedule_updateChange one schedule by id: client, items, currency, cadence, dates, due_days, notes or auto_generate.No findings
Why it is in this group
- The name "schedule_update" says "schedule": a word for a change.
Description, as the server wrote it Change one schedule by id: client, items, currency, cadence, dates, due_days, notes or auto_generate. Only the fields you pass change. Periods already invoiced are never re-issued, so a new amount applies to future ones.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 1Claude Code: allow
license_statusReport this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL.No findings
Why it is in this group
- The name "license_status" says "status": a word for reading.
Description, as the server wrote it Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.23.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http subscription-manager-track-renewals https://mcp.zovo.one/mcp/subscription-manager-track-renewals --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__subscription-manager-track-renewals__license_status"
],
"ask": [
"mcp__subscription-manager-track-renewals__schedule_create",
"mcp__subscription-manager-track-renewals__schedule_list",
"mcp__subscription-manager-track-renewals__schedule_get",
"mcp__subscription-manager-track-renewals__schedule_update",
"mcp__subscription-manager-track-renewals__schedule_pause",
"mcp__subscription-manager-track-renewals__schedule_resume",
"mcp__subscription-manager-track-renewals__schedule_skip",
"mcp__subscription-manager-track-renewals__schedule_upcoming",
"mcp__subscription-manager-track-renewals__invoice_generate_due",
"mcp__subscription-manager-track-renewals__schedule_history",
"mcp__subscription-manager-track-renewals__forecast",
"mcp__subscription-manager-track-renewals__license_activate"
],
"deny": [
"mcp__subscription-manager-track-renewals__schedule_delete"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as subscription-manager-track-renewals. Review it before you use it.
