Decide Policy Notaries
Server Details
Fail-closed refund, cancellation, return, and trial checks for 100 US subscription vendors.
- Status
- Healthy
- Uptime
- 99.8% over 37 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- decidefyi/decide
- GitHub Stars
- 1
- Server Listing
- decide
TDQS
Scored across 4 tools
Each tool targets a distinct policy area: cancellation penalties, refund eligibility, return eligibility, and trial terms. Even though refund and return could conceptually overlap, the descriptions clearly differentiate between money-back refunds and reversing a purchase, so an agent can reliably select the correct tool.
All tool names follow a consistent snake_case pattern with a domain noun (cancellation, refund, return, trial) followed by a descriptive term. The naming is uniform and predictable, making it easy to infer tool purpose.
With exactly 4 tools, the server is tightly scoped for its purpose of evaluating consumer subscription policies. Each tool covers a specific policy decision point, and the count feels neither sparse nor overwhelming.
The surface covers the core policy evaluation needs for cancellation, refund, return, and trial terms. Minor gaps exist (e.g., no tool for subscription modifications or renewal policies), but these are not central to the stated purpose and can be worked around.
Available Tools
4 toolscancellation_penaltyCheck cancellation penaltyARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | Use 'basic' for Typeform; 'individual' for other supported vendors. | |
| region | Yes | Region code. Currently only 'US' is supported. | |
| vendor | Yes | Vendor identifier (lowercase, underscore-separated). | |
| product | No | Required for Typeform. Excludes payments collected from form respondents. | |
| contract_type | No | Required for Typeform. Custom and enterprise contracts are not covered. | |
| billing_cadence | No | Required when the vendor applies different cancellation terms to monthly and annual plans. | |
| purchase_channel | No | Required for Typeform. Third-party purchases are not covered. | |
| requested_action | No | Required for Typeform. Checks ending renewal at the paid term end; does not execute it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| policy | No | |
| refund | No | |
| vendor | No | |
| message | Yes | |
| penalty | No | |
| verdict | Yes | |
| notice_days | No | |
| source_hash | No | |
| evaluated_at | No | |
| rules_version | No | |
| policy_version | No | |
| automation_safe | No | |
| billing_cadence | No | |
| policy_evidence | No | |
| rulebook_result | No | |
| required_context | No | |
| policy_source_url | No | |
| execution_performed | No | |
| policy_last_checked | No | |
| policy_source_notes | No | |
| cancellation_confirmed | No | |
| cancellation_effective | No | |
| policy_last_verified_utc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds behavioral details beyond these: it returns CANCEL_AT_PERIOD_END rather than an immediate cancellation or refund, and returns UNKNOWN when scope or evidence is missing. This enriches the agent's understanding of outcomes and edge cases beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the primary purpose, and then adds essential details about Typeform-specific requirements and possible return values. Every sentence adds value without redundancy, achieving high conciseness and clear structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with 8 parameters and an output schema. The description covers key behaviors (non-execution, return values, UNKNOWN case) and clarifies Typeform's requirements. The output schema documents return details, so the description need not repeat them. It does not explicitly address non-Typeform vendors' behavior, but the generic 'US subscription cancellation terms' implies coverage. Overall, sufficient for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters have descriptions in the schema. The description adds context about Typeform requiring Basic, direct/self-serve platform subscription scope, which reinforces the schema's 'Required for Typeform' notes but does not add new semantic meaning. It does not clarify parameter formats beyond what the schema provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Check US subscription cancellation terms without executing cancellation.' It specifies the resource (US subscriptions), the action (check terms), and explicitly disclaims executing cancellation, distinguishing it from sibling tools like refund_eligibility and return_eligibility. It also mentions the specific return value CANCEL_AT_PERIOD_END, further clarifying its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating it checks cancellation terms and does not execute cancellation, which separates it from refund and return tools. However, it does not explicitly name alternatives or state when not to use it. The sibling tool names are known from context, but the description itself lacks explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_eligibilityCheck refund eligibilityARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | Plan type. Currently only 'individual' plans are supported. | |
| region | Yes | Region code. Currently only 'US' is supported. | |
| vendor | Yes | Vendor identifier (lowercase, underscore-separated). | |
| days_since_purchase | Yes | Number of days since the subscription was purchased. | |
| qualifying_conditions_met | No | Required when the vendor policy has source-specific conditions such as first purchase, unused benefits, or an eligible annual plan. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| vendor | No | |
| message | Yes | |
| verdict | Yes | |
| refundable | No | |
| source_hash | No | |
| window_days | No | |
| evaluated_at | No | |
| rules_version | No | |
| policy_version | No | |
| automation_safe | No | |
| policy_evidence | No | |
| rulebook_result | No | |
| required_context | No | |
| policy_source_url | No | |
| days_since_purchase | No | |
| policy_last_checked | No | |
| policy_source_notes | No | |
| policy_last_verified_utc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral detail beyond that: it evaluates against 'versioned source-backed rules' and returns UNKNOWN when required conditions are absent or the vendor requires approval/manual review. This helps an agent predict edge-case outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. Two sentences convey the core purpose, the rule source, and the important UNKNOWN outcome. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not document return values. The description covers the key behavioral nuance (UNKNOWN cases) and the source-backed nature of the rules. It is complete for most use cases, though it could briefly clarify when someone should prefer return_eligibility or cancellation_penalty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters well. The description's mention of 'required conditions are absent' loosely relates to qualifying_conditions_met, but it does not add substantive per-parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Evaluate a US consumer subscription refund.' It is unambiguous about what the tool checks. However, it does not explicitly differentiate itself from siblings like return_eligibility, cancellation_penalty, or trial_terms; the distinction is only implicit through the word 'refund.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool is relevant: US consumer subscription refund eligibility checks. It does not state exclusions or explicitly direct the agent to alternatives, so it stops short of a 5, but the intended use is reasonably evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
return_eligibilityCheck return eligibilityARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | Plan type. Currently only 'individual' plans are supported. | |
| region | Yes | Region code. Currently only 'US' is supported. | |
| vendor | Yes | Vendor identifier (lowercase, underscore-separated). | |
| days_since_purchase | Yes | Number of days since the subscription was purchased. | |
| qualifying_conditions_met | No | Required when the vendor policy has source-specific conditions such as first purchase, unused benefits, or an eligible annual plan. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| method | No | |
| vendor | No | |
| message | Yes | |
| verdict | Yes | |
| returnable | No | |
| return_type | No | |
| source_hash | No | |
| evaluated_at | No | |
| rules_version | No | |
| policy_version | No | |
| automation_safe | No | |
| policy_evidence | No | |
| rulebook_result | No | |
| required_context | No | |
| policy_source_url | No | |
| return_window_days | No | |
| days_since_purchase | No | |
| policy_last_checked | No | |
| policy_source_notes | No | |
| policy_last_verified_utc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context beyond that: outcomes are governed by versioned, source-backed rules, and the tool can return UNKNOWN when conditions are absent or manual review is required. This helps the agent anticipate nondeterministic or incomplete results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and every clause adds meaning: scope, rule basis, and the UNKNOWN fallback. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, output schema, and safety annotations, the description covers the essential purpose and key edge-case behavior. It does not explicitly explain how 'required conditions' maps to qualifying_conditions_met or how this differs from refund_eligibility, but the structured fields fill most of that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters thoroughly, including enums and qualifying_conditions_met semantics. The description does not add parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: evaluating whether a US consumer subscription purchase can be reversed under versioned source-backed rules. It clearly conveys what the tool does, but it does not explicitly distinguish this return-eligibility check from the closely named sibling refund_eligibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage through the phrase 'Evaluate whether...', but provides no explicit guidance on when to choose this tool over refund_eligibility, cancellation_penalty, or trial_terms. There are no when-to-use/when-not-to-use instructions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trial_termsCheck trial termsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | Plan type. Currently only 'individual' plans are supported. | |
| region | Yes | Region code. Currently only 'US' is supported. | |
| vendor | Yes | Vendor identifier (lowercase, underscore-separated). | |
| offer_confirmed | No | For account- or promotion-specific trials, whether a live offer has been confirmed for this account. | |
| observed_trial_days | No | Trial duration shown by the confirmed live offer. Required when offer_confirmed is true for a variable offer. | |
| observed_auto_converts | No | Whether the confirmed live offer converts to a paid subscription after the trial. | |
| observed_card_required | No | Whether the confirmed live offer requires a payment card. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| vendor | No | |
| message | Yes | |
| verdict | Yes | |
| trial_days | No | |
| source_hash | No | |
| evaluated_at | No | |
| auto_converts | No | |
| card_required | No | |
| rules_version | No | |
| policy_version | No | |
| automation_safe | No | |
| policy_evidence | No | |
| rulebook_result | No | |
| trial_available | No | |
| required_context | No | |
| policy_source_url | No | |
| policy_last_checked | No | |
| policy_source_notes | No | |
| policy_last_verified_utc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral detail beyond those hints: it explicitly states that the tool returns UNKNOWN rather than inferring current offers, and that it depends on observed live-offer facts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core action and immediately clarifies the key limitation (UNKNOWN instead of inference), making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage, output schema present, and annotations covering the safety profile, the description only needs to add intent and behavioral nuance. It does that effectively. Nothing critical is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have full descriptions in the schema, so the baseline is 3. The description adds only a coarse grouping ('availability, duration, card, and auto-conversion facts') rather than any new parameter-level meaning, which is acceptable given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Evaluate') and resource ('live US consumer subscription trial offer'), making the tool's purpose immediately clear. It also distinguishes itself from siblings like refund_eligibility and cancellation_penalty by focusing specifically on trial terms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on how to use the tool: supply observed availability, duration, card, and auto-conversion facts. It also warns against expecting inference from static data. However, it does not explicitly name or contrast alternative sibling tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
cancellation_penalty12 fields changed- added
Input schema / properties / contract_typeAdded value: +{ + "description": "Required for Typeform. Custom and enterprise contracts are not covered.", + "enum": [ + "self_serve" + ], + "type": "string" +} - changed
Input schema / properties / plan / descriptionPrevious value: -"Plan type. Currently only 'individual' plans are supported."New value: +"Use 'basic' for Typeform; 'individual' for other supported vendors." - changed
Input schema / properties / plan / enumPrevious value: -[ - "individual" -]New value: +[ + "individual", + "basic" +] - added
Input schema / properties / productAdded value: +{ + "description": "Required for Typeform. Excludes payments collected from form respondents.", + "enum": [ + "platform_subscription" + ], + "type": "string" +} - added
Input schema / properties / purchase_channelAdded value: +{ + "description": "Required for Typeform. Third-party purchases are not covered.", + "enum": [ + "direct" + ], + "type": "string" +} - added
Input schema / properties / requested_actionAdded value: +{ + "description": "Required for Typeform. Checks ending renewal at the paid term end; does not execute it.", + "enum": [ + "cancel_at_period_end" + ], + "type": "string" +} - changed
Input schema / properties / vendor / enumPrevious value: -[ - "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" -]New value: +[ + "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" +] - added
Output schema / properties / cancellation_confirmedAdded value: +{ + "const": false, + "type": "boolean" +} - added
Output schema / properties / cancellation_effectiveAdded value: +{ + "enum": [ + "paid_term_end" + ], + "type": "string" +} - added
Output schema / properties / execution_performedAdded value: +{ + "const": false, + "type": "boolean" +} - added
Output schema / properties / refundAdded value: +{ + "enum": [ + "not_evaluated" + ], + "type": "string" +} - changed
Output schema / properties / verdict / enumPrevious value: -[ - "FREE_CANCEL", - "PENALTY", - "LOCKED", - "UNKNOWN" -]New value: +[ + "FREE_CANCEL", + "CANCEL_AT_PERIOD_END", + "PENALTY", + "LOCKED", + "UNKNOWN" +]
4 tool updates
- Changed
cancellation_penalty3 fields changed- added
Output schema / properties / automation_safeAdded value: +{ + "type": "boolean" +} - changed
Output schema / properties / billing_cadence / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / policy_evidenceAdded value: +{ + "additionalProperties": true, + "properties": { + "checked_at": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "evaluated_at": { + "type": "string" + }, + "policy": { + "enum": [ + "refund", + "cancel", + "return", + "trial" + ], + "type": "string" + }, + "policy_version": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "schema_version": { + "enum": [ + "policy_evidence_v1" + ], + "type": "string" + }, + "snapshot_generated_at": { + "type": "string" + }, + "snapshot_hash": { + "type": "string" + }, + "source_hash": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "status": { + "enum": [ + "current", + "expired", + "unavailable", + "review_required" + ], + "type": "string" + }, + "valid_until": { + "type": [ + "string", + "null" + ] + }, + "vendor": { + "type": "string" + }, + "verified_at": { + "type": "string" + } + }, + "required": [ + "schema_version", + "policy", + "vendor", + "status", + "reason", + "current", + "evaluated_at" + ], + "type": "object" +}
- Changed
refund_eligibility3 fields changed- added
Output schema / properties / automation_safeAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / policy_evidenceAdded value: +{ + "additionalProperties": true, + "properties": { + "checked_at": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "evaluated_at": { + "type": "string" + }, + "policy": { + "enum": [ + "refund", + "cancel", + "return", + "trial" + ], + "type": "string" + }, + "policy_version": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "schema_version": { + "enum": [ + "policy_evidence_v1" + ], + "type": "string" + }, + "snapshot_generated_at": { + "type": "string" + }, + "snapshot_hash": { + "type": "string" + }, + "source_hash": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "status": { + "enum": [ + "current", + "expired", + "unavailable", + "review_required" + ], + "type": "string" + }, + "valid_until": { + "type": [ + "string", + "null" + ] + }, + "vendor": { + "type": "string" + }, + "verified_at": { + "type": "string" + } + }, + "required": [ + "schema_version", + "policy", + "vendor", + "status", + "reason", + "current", + "evaluated_at" + ], + "type": "object" +} - changed
Output schema / properties / refundable / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +]
- Changed
return_eligibility3 fields changed- added
Output schema / properties / automation_safeAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / policy_evidenceAdded value: +{ + "additionalProperties": true, + "properties": { + "checked_at": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "evaluated_at": { + "type": "string" + }, + "policy": { + "enum": [ + "refund", + "cancel", + "return", + "trial" + ], + "type": "string" + }, + "policy_version": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "schema_version": { + "enum": [ + "policy_evidence_v1" + ], + "type": "string" + }, + "snapshot_generated_at": { + "type": "string" + }, + "snapshot_hash": { + "type": "string" + }, + "source_hash": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "status": { + "enum": [ + "current", + "expired", + "unavailable", + "review_required" + ], + "type": "string" + }, + "valid_until": { + "type": [ + "string", + "null" + ] + }, + "vendor": { + "type": "string" + }, + "verified_at": { + "type": "string" + } + }, + "required": [ + "schema_version", + "policy", + "vendor", + "status", + "reason", + "current", + "evaluated_at" + ], + "type": "object" +} - changed
Output schema / properties / returnable / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +]
- Changed
trial_terms2 fields changed- added
Output schema / properties / automation_safeAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / policy_evidenceAdded value: +{ + "additionalProperties": true, + "properties": { + "checked_at": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "evaluated_at": { + "type": "string" + }, + "policy": { + "enum": [ + "refund", + "cancel", + "return", + "trial" + ], + "type": "string" + }, + "policy_version": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "schema_version": { + "enum": [ + "policy_evidence_v1" + ], + "type": "string" + }, + "snapshot_generated_at": { + "type": "string" + }, + "snapshot_hash": { + "type": "string" + }, + "source_hash": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "status": { + "enum": [ + "current", + "expired", + "unavailable", + "review_required" + ], + "type": "string" + }, + "valid_until": { + "type": [ + "string", + "null" + ] + }, + "vendor": { + "type": "string" + }, + "verified_at": { + "type": "string" + } + }, + "required": [ + "schema_version", + "policy", + "vendor", + "status", + "reason", + "current", + "evaluated_at" + ], + "type": "object" +}
1 tool update
- Changed
trial_terms2 fields changed- added
Input schema / properties / observed_auto_convertsAdded value: +{ + "description": "Whether the confirmed live offer converts to a paid subscription after the trial.", + "type": "boolean" +} - added
Input schema / properties / observed_card_requiredAdded value: +{ + "description": "Whether the confirmed live offer requires a payment card.", + "type": "boolean" +}
4 tool updates
- First observed
cancellation_penalty - First observed
refund_eligibility - First observed
return_eligibility - First observed
trial_terms
Related MCP Connectors
Score a subscription cancellation flow against federal, CA, CO, VT, and OR click-to-cancel laws.
Score a subscription flow against US click-to-cancel / auto-renewal laws.
Check WooCommerce checkout-change risk using public evidence and privacy-safe store signals.
Verify companies, domains and counterparties before transacting. Sanctions, UBO, fraud scoring.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI shopping agents to verify whether a specific product can be returned by supplying a product URL and buyer country, returning a verified verdict with exact policy clauses, return window, and confidence score.-
- AlicenseAqualityBmaintenanceInvestigate fraud directly from Claude, Cursor, or any MCP-compatible client. Analyze suspicious activity with clear, evidence-backed verdicts. Pivot from a single signup to every account sharing the same device, IP address, or email inbox. Check entities against a cross-operator abuse network, review linked accounts, and efficiently process your fraud review queue. Read-only by default, with no r1089 npmMIT
- FlicenseNot gradedqualityCmaintenanceProvides real validation and live registry lookups for ecommerce and fintech workflows, including EU VAT, EORI, email domain, IBAN, ABA routing, and GTIN checks.-

Kordi MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceTrack, analyze, and act on your streaming & SaaS subscriptions from any AI agent.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.