All servers: 100 vendors, US region, individual plans, stateless, no auth, 100 req/min. Start local dev server: In a separate terminal: Use workflow endpoints when you want one request to return: - decision classification (yes | no | tie) from /api/decide - policy result from the relevant notary endpoint - recommended Zendesk action + tags + private note with requestid - POST https://refund.decide
Add this skill
npx mdskills install decidefyi/decideComprehensive MCP server suite for subscription policy decisions across 100 vendors with clear APIs
Deterministic subscription decision notaries for US consumers
Buttons install the Refund Notary server. To add all 4 servers, use the JSON config below.
| Server | Domain | Tool | Verdicts |
|---|---|---|---|
| Refund Notary | refund.decide.fyi | refund_eligibility | ALLOWED / DENIED / UNKNOWN |
| Cancel Notary | cancel.decide.fyi | cancellation_penalty | FREE_CANCEL / PENALTY / LOCKED / UNKNOWN |
| Return Notary | return.decide.fyi | return_eligibility | RETURNABLE / EXPIRED / NON_RETURNABLE / UNKNOWN |
| Trial Notary | trial.decide.fyi | trial_terms | TRIAL_AVAILABLE / NO_TRIAL / UNKNOWN |
All servers: 100 vendors, US region, individual plans, stateless, no auth, 100 req/min.
{
"mcpServers": {
"refund-decide": { "url": "https://refund.decide.fyi/api/mcp" },
"cancel-decide": { "url": "https://cancel.decide.fyi/api/mcp" },
"return-decide": { "url": "https://return.decide.fyi/api/mcp" },
"trial-decide": { "url": "https://trial.decide.fyi/api/mcp" }
}
}
# Refund eligibility
curl -X POST https://refund.decide.fyi/api/v1/refund/eligibility \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","days_since_purchase":12,"region":"US","plan":"individual"}'
# Cancellation penalty
curl -X POST https://cancel.decide.fyi/api/v1/cancel/penalty \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","region":"US","plan":"individual"}'
# Return eligibility
curl -X POST https://return.decide.fyi/api/v1/return/eligibility \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","days_since_purchase":12,"region":"US","plan":"individual"}'
# Trial terms
curl -X POST https://trial.decide.fyi/api/v1/trial/terms \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","region":"US","plan":"individual"}'
Start local dev server:
npx vercel dev
In a separate terminal:
# Handler-level smoke checks (no running server required)
npm run smoke
# MCP endpoint checks (requires vercel dev running on localhost:3000)
npm run mcp:check
# End-to-end workflow fixture (example -> result)
npm run workflow:test
Use workflow endpoints when you want one request to return:
yes | no | tie) from /api/deciderequest_idEndpoints
POST https://refund.decide.fyi/api/v1/workflows/zendesk/refundPOST https://cancel.decide.fyi/api/v1/workflows/zendesk/cancelPOST https://return.decide.fyi/api/v1/workflows/zendesk/returnPOST https://trial.decide.fyi/api/v1/workflows/zendesk/trial{
"ticket_id": "ZD-9001",
"workflow_type": "refund",
"question": "Should this Adobe annual plan refund request proceed under policy?",
"vendor": "adobe",
"region": "US",
"plan": "individual",
"days_since_purchase": 5
}
For refund and return, include days_since_purchase.
Set decision_override to bypass model classification during fixtures and CI:
{
"decision_override": "yes"
}
{
"ok": true,
"flow": "zendesk_refund_v1",
"ticket_id": "ZD-9001",
"decision": { "c": "yes", "request_id": "req_123" },
"policy": { "verdict": "ALLOWED", "code": "WITHIN_WINDOW" },
"action": {
"type": "approve_refund",
"zendesk_tags": ["decide", "decide_yes", "refund_allowed"]
}
}
Endpoint: POST https://refund.decide.fyi/api/v1/refund/eligibility
MCP Tool: refund_eligibility
Checks if a subscription purchase is within the vendor's refund window.
Input: vendor, days_since_purchase, region, plan
{"refundable":true,"verdict":"ALLOWED","code":"WITHIN_WINDOW","message":"Refund is allowed. Purchase is 12 day(s) old, within 14 day window.","vendor":"adobe","window_days":14}
Codes: WITHIN_WINDOW, OUTSIDE_WINDOW, NO_REFUNDS, UNSUPPORTED_VENDOR
Endpoint: POST https://cancel.decide.fyi/api/v1/cancel/penalty
MCP Tool: cancellation_penalty
Checks cancellation penalties — early termination fees, contract locks, or free cancellation.
Input: vendor, region, plan
{"verdict":"PENALTY","code":"EARLY_TERMINATION_FEE","message":"adobe charges an early termination fee: 50% of remaining months on annual plan.","vendor":"adobe","policy":"etf"}
Codes: NO_PENALTY, EARLY_TERMINATION_FEE, CONTRACT_LOCKED, UNSUPPORTED_VENDOR
Endpoint: POST https://return.decide.fyi/api/v1/return/eligibility
MCP Tool: return_eligibility
Checks if a subscription purchase can be returned/reversed, with return type and method.
Input: vendor, days_since_purchase, region, plan
{"returnable":true,"verdict":"RETURNABLE","code":"FULL_RETURN","message":"Return is available. Purchase is 5 day(s) old, within 14-day window.","vendor":"adobe","return_type":"full_refund","method":"self_service"}
Codes: FULL_RETURN, PRORATED_RETURN, CREDIT_RETURN, OUTSIDE_WINDOW, NO_RETURNS, UNSUPPORTED_VENDOR
Endpoint: POST https://trial.decide.fyi/api/v1/trial/terms
MCP Tool: trial_terms
Checks free trial availability, length, card requirement, and auto-conversion status.
Input: vendor, region, plan
{"verdict":"TRIAL_AVAILABLE","code":"AUTO_CONVERTS","message":"adobe offers a 7-day free trial. Credit card required. Auto-converts to paid plan.","vendor":"adobe","trial_days":7,"card_required":true,"auto_converts":true}
Codes: AUTO_CONVERTS, NO_AUTO_CONVERT, TRIAL_NOT_AVAILABLE, UNSUPPORTED_VENDOR
| Vendor | Identifier | Refund | Cancel | Return | Trial |
|---|---|---|---|---|---|
| 1Password | 1password | No refunds | Free | No return | 14d |
| Adobe | adobe | 14d | ETF | 14d full | 7d |
| Amazon Prime | amazon_prime | 3d | Free | 3d full | 30d |
| Apple App Store | apple_app_store | 14d | Free | 14d full | - |
| Apple Music | apple_music | No refunds | Free | No return | 30d |
| Apple TV+ | apple_tv_plus | No refunds | Free | No return | 7d |
| Audible | audible | No refunds | Free | No return | 30d |
| Bitwarden | bitwarden | 30d | Free | 30d full | 7d |
| Bumble | bumble | No refunds | Free | No return | 7d |
| Calm | calm | 30d | Free | 30d full | 7d |
| Canva | canva | No refunds | Free | No return | 30d |
| ChatGPT Plus | chatgpt_plus | No refunds | Free | No return | - |
| Claude Pro | claude_pro | No refunds | Free | No return | - |
| Coursera Plus | coursera_plus | 14d | Free | 14d full | 7d |
| Crunchyroll | crunchyroll | No refunds | Free | No return | 7d |
| Deezer | deezer | No refunds | Free | No return | 30d |
| Disney+ | disney_plus | No refunds | Free | No return | - |
| DoorDash DashPass | doordash_dashpass | No refunds | Free | No return | 30d |
| Dropbox (US) | dropbox_us | No refunds | Free | No return | 30d |
| Duolingo | duolingo | No refunds | Free | No return | 14d |
| Evernote | evernote | 20d | Free | 20d full | 14d |
| ExpressVPN | expressvpn | 30d | Free | 30d full | 7d |
| Figma | figma | No refunds | Free | No return | 30d |
| Fubo TV | fubo_tv | No refunds | Free | No return | 7d |
| GitHub Pro | github_pro | No refunds | Free | No return | - |
| Google Play | google_play | 2d | Free | 2d full | - |
| Grammarly | grammarly | No refunds | Free | No return | 7d |
| Headspace | headspace | No refunds | Free | No return | 7d |
| HelloFresh | hellofresh | No refunds | Free (5d notice) | No return | - |
| Hinge | hinge | No refunds | Free | No return | 7d |
| Hulu | hulu | No refunds | Free | No return | 30d |
| iCloud+ | icloud_plus | 14d | Free | 14d full | - |
| Instacart+ | instacart_plus | 5d | Free | 5d full | 14d |
| LinkedIn Premium | linkedin_premium | 7d | Free | 7d full | 30d |
| MasterClass | masterclass | 30d | Free | 30d full | - |
| Max (HBO) | max | No refunds | Free | No return | - |
| Microsoft 365 | microsoft_365 | 30d | Free | 30d full | 30d |
| Midjourney | midjourney | No refunds | Free | No return | - |
| Netflix | netflix | No refunds | Free | No return | - |
| Nintendo Switch Online | nintendo_switch_online | No refunds | Free | No return | 7d |
| Noom | noom | 14d | Free | 14d full | 7d |
| NordVPN | nordvpn | 30d | Free | 30d full | 7d |
| Notion | notion | 3d | Free | 3d full | - |
| Paramount+ | paramount_plus | No refunds | Free | No return | 7d |
| Peacock | peacock | No refunds | Free | No return | 7d |
| Peloton | peloton | No refunds | Free | No return | 30d |
| PlayStation Plus | playstation_plus | 14d | Free | 14d prorated | 14d |
| Scribd | scribd | 30d | Free | 30d full | 30d |
| Shutterstock | shutterstock | No refunds | ETF | No return | 30d |
| Slack | slack | No refunds | Free | Credit | 90d |
| Sling TV | sling_tv | No refunds | Free | No return | - |
| Spotify | spotify | No refunds | Free | No return | 30d |
| Squarespace | squarespace | 14d | Free | 14d full | 14d |
| Strava | strava | 14d | Free | 14d full | 30d |
| Surfshark | surfshark | 30d | Free | 30d full | 7d |
| Tidal | tidal | No refunds | Free | No return | 30d |
| Tinder | tinder | No refunds | Free | No return | - |
| Todoist | todoist | 30d | Free | 30d full | 30d |
| Twitch | twitch | No refunds | Free | No return | - |
| Walmart+ | walmart_plus | No refunds | Free | No return | 30d |
| Wix | wix | 14d | Free | 14d full | 14d |
| Xbox Game Pass | xbox_game_pass | 30d | Free | 30d full | 14d |
| YouTube Premium | youtube_premium | No refunds | Free | No return | 30d |
| Zoom | zoom | No refunds | Free | No return | - |
Scope: US region, individual plans only.
Policies are sourced from official vendor documentation and terms of service.
rules/ linking to official policy pages.GET /api/compliance-export returns a CSV snapshot of tracked sources, hashes, and pending candidate changes (?format=json for machine-readable output).rules_version field for staleness detection.Added:
GET /api/compliance-export endpoint for policy monitoring evidence export (CSV default, JSON via ?format=json).Changed:
server.json, MCP initialize, and /.well-known/*.Added:
Fixed:
contents:write permission and fixed shell logicAdded:
rules/policy-sources.jsonenum in inputSchema for agent discoverabilityFixed:
ERR_IMPORT_ATTRIBUTE_MISSING crash on Vercel (Node 22 import attributes)Added:
All 4 servers are free to use. No authentication. No API keys.
Rate limit: 100 requests/minute per IP.
Questions? decidefyi@gmail.com or @decidefyi on X
Built with love by the decide.fyi team
Install via CLI
npx mdskills install decidefyi/decidedecide.fyi is a free, open-source AI agent skill. All servers: 100 vendors, US region, individual plans, stateless, no auth, 100 req/min. Start local dev server: In a separate terminal: Use workflow endpoints when you want one request to return: - decision classification (yes | no | tie) from /api/decide - policy result from the relevant notary endpoint - recommended Zendesk action + tags + private note with requestid - POST https://refund.decide
Install decide.fyi with a single command:
npx mdskills install decidefyi/decideThis downloads the skill files into your project and your AI agent picks them up automatically.
decide.fyi works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code, Chatgpt. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.