MCP Server

Decide Policy Notaries

io.github.decidefyi/policy-notaries
Legal & Compliance Public & reachable MCP 2025-11-25

What this MCP does

Evaluates US subscription cancellation, refund, return, and trial terms using source-backed rules and fail-closed results.

cancellation_penalty
Check cancellation penalty
Check US subscription cancellation terms without executing cancellation. Typeform requires Basic, direct/self-serve platform subscription scope and returns CANCEL_AT_PERIOD_END, not an immediate cancellation or refund. Missing scope or current evidence returns UNKNOWN.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['vendor', 'region', 'plan'], 'properties': {'plan': {'enum': ['individual', 'basic'], 'type': 'string', 'description': "Use 'basic' for Typeform; 'individual' for other supported vendors."}, 'region': {'enum': ['US'], 'type': 'string', 'description': "Region code. Currently only 'US' is supported."}, 'vendor': {'enum': ['1password', 'adobe', 'amazon_music_unlimited', 'amazon_prime', 'amc_plus', 'apple_app_store', 'apple_arcade', 'apple_music', 'apple_tv_plus', 'audible', 'bitwarden', 'britbox', 'bumble', 'calm', 'canva', 'chatgpt_plus', 'claude_pro', 'coursera_plus', 'crunchyroll', 'dashlane', 'deezer', 'discord_nitro', 'discovery_plus', 'disney_plus', 'doordash_dashpass', 'dropbox_us', 'duolingo', 'ea_play', 'espn_plus', 'evernote', 'expressvpn', 'figma', 'fitbit_premium', 'fubo_tv', 'github_pro', 'google_one', 'google_play', 'grammarly', 'headspace', 'hellofresh', 'hinge', 'hulu', 'icloud_plus', 'instacart_plus', 'keeper', 'kindle_unlimited', 'lastpass', 'linkedin_premium', 'masterclass', 'max', 'microsoft_365', 'midjourney', 'mlb_tv', 'myfitnesspal_premium', 'netflix', 'new_york_times', 'nfl_plus', 'nintendo_switch_online', 'noom', 'nordvpn', 'notion', 'paramount_plus', 'patreon', 'peacock', 'peloton', 'playstation_plus', 'proton', 'reddit_premium', 'ring_protect', 'roblox_premium', 'scribd', 'shutterstock', 'siriusxm', 'slack', 'sling_tv', 'snapchat_plus', 'soundcloud_go', 'spotify', 'squarespace', 'starz', 'strava', 'substack', 'surfshark', 'telegram_premium', 'tidal', 'tinder', 'todoist', 'twitch', 'typeform', 'uber_one', 'ubisoft_plus', 'wall_street_journal', 'walmart_plus', 'washington_post', 'weightwatchers', 'wix', 'x_premium', 'xbox_game_pass', 'youtube_premium', 'youtube_tv', 'zoom'], 'type': 'string', 'description': 'Vendor identifier (lowercase, underscore-separated).'}, 'product': {'enum': ['platform_subscription'], 'type': 'string', 'description': 'Required for Typeform. Excludes payments collected from form respondents.'}, 'contract_type': {'enum': ['self_serve'], 'type': 'string', 'description': 'Required for Typeform. Custom and enterprise contracts are not covered.'}, 'billing_cadence': {'enum': ['monthly', 'annual'], 'type': 'string', 'description': 'Required when the vendor applies different cancellation terms to monthly and annual plans.'}, 'purchase_channel': {'enum': ['direct'], 'type': 'string', 'description': 'Required for Typeform. Third-party purchases are not covered.'}, 'requested_action': {'enum': ['cancel_at_period_end'], 'type': 'string', 'description': 'Required for Typeform. Checks ending renewal at the paid term end; does not execute it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['verdict', 'code', 'message'], 'properties': {'code': {'type': 'string'}, 'policy': {'type': 'string'}, 'refund': {'enum': ['not_evaluated'], 'type': 'string'}, 'vendor': {'type': 'string'}, 'message': {'type': 'string'}, 'penalty': {'type': 'string'}, 'verdict': {'enum': ['FREE_CANCEL', 'CANCEL_AT_PERIOD_END', 'PENALTY', 'LOCKED', 'UNKNOWN'], 'type': 'string'}, 'notice_days': {'type': 'number'}, 'source_hash': {'type': 'string'}, 'evaluated_at': {'type': 'string'}, 'rules_version': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'automation_safe': {'type': 'boolean'}, 'billing_cadence': {'type': ['string', 'null']}, 'policy_evidence': {'type': 'object', 'required': ['schema_version', 'policy', 'vendor', 'status', 'reason', 'current', 'evaluated_at'], 'properties': {'policy': {'enum': ['refund', 'cancel', 'return', 'trial'], 'type': 'string'}, 'reason': {'type': 'string'}, 'status': {'enum': ['current', 'expired', 'unavailable', 'review_required'], 'type': 'string'}, 'vendor': {'type': 'string'}, 'current': {'type': 'boolean'}, 'checked_at': {'type': 'string'}, 'source_url': {'type': 'string'}, 'source_hash': {'type': 'string'}, 'valid_until': {'type': ['string', 'null']}, 'verified_at': {'type': 'string'}, 'evaluated_at': {'type': 'string'}, 'snapshot_hash': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'schema_version': {'enum': ['policy_evidence_v1'], 'type': 'string'}, 'snapshot_generated_at': {'type': 'string'}}, 'additionalProperties': True}, 'rulebook_result': {'type': 'object', 'additionalProperties': True}, 'required_context': {'type': 'array', 'items': {'type': 'string'}}, 'policy_source_url': {'type': 'string'}, 'execution_performed': {'type': 'boolean', 'const': False}, 'policy_last_checked': {'type': 'string'}, 'policy_source_notes': {'type': 'string'}, 'cancellation_confirmed': {'type': 'boolean', 'const': False}, 'cancellation_effective': {'enum': ['paid_term_end'], 'type': 'string'}, 'policy_last_verified_utc': {'type': 'string'}}, 'additionalProperties': True}
refund_eligibility
Check refund eligibility
Evaluate a US consumer subscription refund against versioned source-backed rules. Returns UNKNOWN when required conditions are absent or the vendor requires approval or manual policy review.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['vendor', 'days_since_purchase', 'region', 'plan'], 'properties': {'plan': {'enum': ['individual'], 'type': 'string', 'description': "Plan type. Currently only 'individual' plans are supported."}, 'region': {'enum': ['US'], 'type': 'string', 'description': "Region code. Currently only 'US' is supported."}, 'vendor': {'enum': ['1password', 'adobe', 'amazon_music_unlimited', 'amazon_prime', 'amc_plus', 'apple_app_store', 'apple_arcade', 'apple_music', 'apple_tv_plus', 'audible', 'bitwarden', 'britbox', 'bumble', 'calm', 'canva', 'chatgpt_plus', 'claude_pro', 'coursera_plus', 'crunchyroll', 'dashlane', 'deezer', 'discord_nitro', 'discovery_plus', 'disney_plus', 'doordash_dashpass', 'dropbox_us', 'duolingo', 'ea_play', 'espn_plus', 'evernote', 'expressvpn', 'figma', 'fitbit_premium', 'fubo_tv', 'github_pro', 'google_one', 'google_play', 'grammarly', 'headspace', 'hellofresh', 'hinge', 'hulu', 'icloud_plus', 'instacart_plus', 'keeper', 'kindle_unlimited', 'lastpass', 'linkedin_premium', 'masterclass', 'max', 'microsoft_365', 'midjourney', 'mlb_tv', 'myfitnesspal_premium', 'netflix', 'new_york_times', 'nfl_plus', 'nintendo_switch_online', 'noom', 'nordvpn', 'notion', 'paramount_plus', 'patreon', 'peacock', 'peloton', 'playstation_plus', 'proton', 'reddit_premium', 'ring_protect', 'roblox_premium', 'scribd', 'shutterstock', 'siriusxm', 'slack', 'sling_tv', 'snapchat_plus', 'soundcloud_go', 'spotify', 'squarespace', 'starz', 'strava', 'substack', 'surfshark', 'telegram_premium', 'tidal', 'tinder', 'todoist', 'twitch', 'uber_one', 'ubisoft_plus', 'wall_street_journal', 'walmart_plus', 'washington_post', 'weightwatchers', 'wix', 'x_premium', 'xbox_game_pass', 'youtube_premium', 'youtube_tv', 'zoom'], 'type': 'string', 'description': 'Vendor identifier (lowercase, underscore-separated).'}, 'days_since_purchase': {'type': 'number', 'minimum': 0, 'description': 'Number of days since the subscription was purchased.'}, 'qualifying_conditions_met': {'type': 'boolean', 'description': 'Required when the vendor policy has source-specific conditions such as first purchase, unused benefits, or an eligible annual plan.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['verdict', 'code', 'message'], 'properties': {'code': {'type': 'string'}, 'vendor': {'type': 'string'}, 'message': {'type': 'string'}, 'verdict': {'enum': ['ALLOWED', 'DENIED', 'UNKNOWN'], 'type': 'string'}, 'refundable': {'type': ['boolean', 'null']}, 'source_hash': {'type': 'string'}, 'window_days': {'type': 'number'}, 'evaluated_at': {'type': 'string'}, 'rules_version': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'automation_safe': {'type': 'boolean'}, 'policy_evidence': {'type': 'object', 'required': ['schema_version', 'policy', 'vendor', 'status', 'reason', 'current', 'evaluated_at'], 'properties': {'policy': {'enum': ['refund', 'cancel', 'return', 'trial'], 'type': 'string'}, 'reason': {'type': 'string'}, 'status': {'enum': ['current', 'expired', 'unavailable', 'review_required'], 'type': 'string'}, 'vendor': {'type': 'string'}, 'current': {'type': 'boolean'}, 'checked_at': {'type': 'string'}, 'source_url': {'type': 'string'}, 'source_hash': {'type': 'string'}, 'valid_until': {'type': ['string', 'null']}, 'verified_at': {'type': 'string'}, 'evaluated_at': {'type': 'string'}, 'snapshot_hash': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'schema_version': {'enum': ['policy_evidence_v1'], 'type': 'string'}, 'snapshot_generated_at': {'type': 'string'}}, 'additionalProperties': True}, 'rulebook_result': {'type': 'object', 'additionalProperties': True}, 'required_context': {'type': 'array', 'items': {'type': 'string'}}, 'policy_source_url': {'type': 'string'}, 'days_since_purchase': {'type': 'number'}, 'policy_last_checked': {'type': 'string'}, 'policy_source_notes': {'type': 'string'}, 'policy_last_verified_utc': {'type': 'string'}}, 'additionalProperties': True}
return_eligibility
Check return eligibility
Evaluate whether a US consumer subscription purchase can be reversed under versioned source-backed rules. Returns UNKNOWN when required conditions are absent or manual review is required.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['vendor', 'days_since_purchase', 'region', 'plan'], 'properties': {'plan': {'enum': ['individual'], 'type': 'string', 'description': "Plan type. Currently only 'individual' plans are supported."}, 'region': {'enum': ['US'], 'type': 'string', 'description': "Region code. Currently only 'US' is supported."}, 'vendor': {'enum': ['1password', 'adobe', 'amazon_music_unlimited', 'amazon_prime', 'amc_plus', 'apple_app_store', 'apple_arcade', 'apple_music', 'apple_tv_plus', 'audible', 'bitwarden', 'britbox', 'bumble', 'calm', 'canva', 'chatgpt_plus', 'claude_pro', 'coursera_plus', 'crunchyroll', 'dashlane', 'deezer', 'discord_nitro', 'discovery_plus', 'disney_plus', 'doordash_dashpass', 'dropbox_us', 'duolingo', 'ea_play', 'espn_plus', 'evernote', 'expressvpn', 'figma', 'fitbit_premium', 'fubo_tv', 'github_pro', 'google_one', 'google_play', 'grammarly', 'headspace', 'hellofresh', 'hinge', 'hulu', 'icloud_plus', 'instacart_plus', 'keeper', 'kindle_unlimited', 'lastpass', 'linkedin_premium', 'masterclass', 'max', 'microsoft_365', 'midjourney', 'mlb_tv', 'myfitnesspal_premium', 'netflix', 'new_york_times', 'nfl_plus', 'nintendo_switch_online', 'noom', 'nordvpn', 'notion', 'paramount_plus', 'patreon', 'peacock', 'peloton', 'playstation_plus', 'proton', 'reddit_premium', 'ring_protect', 'roblox_premium', 'scribd', 'shutterstock', 'siriusxm', 'slack', 'sling_tv', 'snapchat_plus', 'soundcloud_go', 'spotify', 'squarespace', 'starz', 'strava', 'substack', 'surfshark', 'telegram_premium', 'tidal', 'tinder', 'todoist', 'twitch', 'uber_one', 'ubisoft_plus', 'wall_street_journal', 'walmart_plus', 'washington_post', 'weightwatchers', 'wix', 'x_premium', 'xbox_game_pass', 'youtube_premium', 'youtube_tv', 'zoom'], 'type': 'string', 'description': 'Vendor identifier (lowercase, underscore-separated).'}, 'days_since_purchase': {'type': 'number', 'minimum': 0, 'description': 'Number of days since the subscription was purchased.'}, 'qualifying_conditions_met': {'type': 'boolean', 'description': 'Required when the vendor policy has source-specific conditions such as first purchase, unused benefits, or an eligible annual plan.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['verdict', 'code', 'message'], 'properties': {'code': {'type': 'string'}, 'method': {'type': 'string'}, 'vendor': {'type': 'string'}, 'message': {'type': 'string'}, 'verdict': {'enum': ['RETURNABLE', 'EXPIRED', 'NON_RETURNABLE', 'UNKNOWN'], 'type': 'string'}, 'returnable': {'type': ['boolean', 'null']}, 'return_type': {'type': 'string'}, 'source_hash': {'type': 'string'}, 'evaluated_at': {'type': 'string'}, 'rules_version': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'automation_safe': {'type': 'boolean'}, 'policy_evidence': {'type': 'object', 'required': ['schema_version', 'policy', 'vendor', 'status', 'reason', 'current', 'evaluated_at'], 'properties': {'policy': {'enum': ['refund', 'cancel', 'return', 'trial'], 'type': 'string'}, 'reason': {'type': 'string'}, 'status': {'enum': ['current', 'expired', 'unavailable', 'review_required'], 'type': 'string'}, 'vendor': {'type': 'string'}, 'current': {'type': 'boolean'}, 'checked_at': {'type': 'string'}, 'source_url': {'type': 'string'}, 'source_hash': {'type': 'string'}, 'valid_until': {'type': ['string', 'null']}, 'verified_at': {'type': 'string'}, 'evaluated_at': {'type': 'string'}, 'snapshot_hash': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'schema_version': {'enum': ['policy_evidence_v1'], 'type': 'string'}, 'snapshot_generated_at': {'type': 'string'}}, 'additionalProperties': True}, 'rulebook_result': {'type': 'object', 'additionalProperties': True}, 'required_context': {'type': 'array', 'items': {'type': 'string'}}, 'policy_source_url': {'type': 'string'}, 'return_window_days': {'type': 'number'}, 'days_since_purchase': {'type': 'number'}, 'policy_last_checked': {'type': 'string'}, 'policy_source_notes': {'type': 'string'}, 'policy_last_verified_utc': {'type': 'string'}}, 'additionalProperties': True}
trial_terms
Check trial terms
Evaluate a live US consumer subscription trial offer. Supply observed availability, duration, card, and auto-conversion facts; the tool returns UNKNOWN instead of inferring current offers from static data.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['vendor', 'region', 'plan'], 'properties': {'plan': {'enum': ['individual'], 'type': 'string', 'description': "Plan type. Currently only 'individual' plans are supported."}, 'region': {'enum': ['US'], 'type': 'string', 'description': "Region code. Currently only 'US' is supported."}, 'vendor': {'enum': ['1password', 'adobe', 'amazon_music_unlimited', 'amazon_prime', 'amc_plus', 'apple_app_store', 'apple_arcade', 'apple_music', 'apple_tv_plus', 'audible', 'bitwarden', 'britbox', 'bumble', 'calm', 'canva', 'chatgpt_plus', 'claude_pro', 'coursera_plus', 'crunchyroll', 'dashlane', 'deezer', 'discord_nitro', 'discovery_plus', 'disney_plus', 'doordash_dashpass', 'dropbox_us', 'duolingo', 'ea_play', 'espn_plus', 'evernote', 'expressvpn', 'figma', 'fitbit_premium', 'fubo_tv', 'github_pro', 'google_one', 'google_play', 'grammarly', 'headspace', 'hellofresh', 'hinge', 'hulu', 'icloud_plus', 'instacart_plus', 'keeper', 'kindle_unlimited', 'lastpass', 'linkedin_premium', 'masterclass', 'max', 'microsoft_365', 'midjourney', 'mlb_tv', 'myfitnesspal_premium', 'netflix', 'new_york_times', 'nfl_plus', 'nintendo_switch_online', 'noom', 'nordvpn', 'notion', 'paramount_plus', 'patreon', 'peacock', 'peloton', 'playstation_plus', 'proton', 'reddit_premium', 'ring_protect', 'roblox_premium', 'scribd', 'shutterstock', 'siriusxm', 'slack', 'sling_tv', 'snapchat_plus', 'soundcloud_go', 'spotify', 'squarespace', 'starz', 'strava', 'substack', 'surfshark', 'telegram_premium', 'tidal', 'tinder', 'todoist', 'twitch', 'uber_one', 'ubisoft_plus', 'wall_street_journal', 'walmart_plus', 'washington_post', 'weightwatchers', 'wix', 'x_premium', 'xbox_game_pass', 'youtube_premium', 'youtube_tv', 'zoom'], 'type': 'string', 'description': 'Vendor identifier (lowercase, underscore-separated).'}, 'offer_confirmed': {'type': 'boolean', 'description': 'For account- or promotion-specific trials, whether a live offer has been confirmed for this account.'}, 'observed_trial_days': {'type': 'integer', 'maximum': 365, 'minimum': 0, 'description': 'Trial duration shown by the confirmed live offer. Required when offer_confirmed is true for a variable offer.'}, 'observed_auto_converts': {'type': 'boolean', 'description': 'Whether the confirmed live offer converts to a paid subscription after the trial.'}, 'observed_card_required': {'type': 'boolean', 'description': 'Whether the confirmed live offer requires a payment card.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['verdict', 'code', 'message'], 'properties': {'code': {'type': 'string'}, 'vendor': {'type': 'string'}, 'message': {'type': 'string'}, 'verdict': {'enum': ['TRIAL_AVAILABLE', 'NO_TRIAL', 'UNKNOWN'], 'type': 'string'}, 'trial_days': {'type': 'integer'}, 'source_hash': {'type': 'string'}, 'evaluated_at': {'type': 'string'}, 'auto_converts': {'type': 'boolean'}, 'card_required': {'type': 'boolean'}, 'rules_version': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'automation_safe': {'type': 'boolean'}, 'policy_evidence': {'type': 'object', 'required': ['schema_version', 'policy', 'vendor', 'status', 'reason', 'current', 'evaluated_at'], 'properties': {'policy': {'enum': ['refund', 'cancel', 'return', 'trial'], 'type': 'string'}, 'reason': {'type': 'string'}, 'status': {'enum': ['current', 'expired', 'unavailable', 'review_required'], 'type': 'string'}, 'vendor': {'type': 'string'}, 'current': {'type': 'boolean'}, 'checked_at': {'type': 'string'}, 'source_url': {'type': 'string'}, 'source_hash': {'type': 'string'}, 'valid_until': {'type': ['string', 'null']}, 'verified_at': {'type': 'string'}, 'evaluated_at': {'type': 'string'}, 'snapshot_hash': {'type': 'string'}, 'policy_version': {'type': 'string'}, 'schema_version': {'enum': ['policy_evidence_v1'], 'type': 'string'}, 'snapshot_generated_at': {'type': 'string'}}, 'additionalProperties': True}, 'rulebook_result': {'type': 'object', 'additionalProperties': True}, 'trial_available': {'type': 'boolean'}, 'required_context': {'type': 'array', 'items': {'type': 'string'}}, 'policy_source_url': {'type': 'string'}, 'policy_last_checked': {'type': 'string'}, 'policy_source_notes': {'type': 'string'}, 'policy_last_verified_utc': {'type': 'string'}}, 'additionalProperties': True}
Added
trial_terms
Sept. 17, 2026, 12:41 p.m.
Added
return_eligibility
Sept. 17, 2026, 12:41 p.m.
Added
cancellation_penalty
Sept. 17, 2026, 12:41 p.m.
Added
refund_eligibility
Sept. 17, 2026, 12:41 p.m.