Skip to main content
Glama

dealpulse

DealPulse: Global deal intelligence API. AI-synthesized best deals, price history, coupon discovery, cashback optimization, subscription reviews, credit card stack analysis, grocery savings, student discounts, an

Coverage: Global

Endpoints: • store ($0.05): Store coupon codes and promotions • item ($0.08): Best deal on a specific product • compare ($0.08): Live price comparison across retailers • event ($0.10): Sale event intelligence • subscriptions ($0.08): Subscription review — cancel vs. keep analysis with cost savings • cards ($0.08): Credit card cashback optimization for a purchase or category • stack ($0.10): Deal stacking — combine sale + coupon + cashback for maximum savings • student ($0.05): Student discounts on software, services, food, and travel • history ($0.08): Price history and best-time-to-buy analysis for a product • subscription-rights ($0.05): Subscription-trap rights check — state auto-renewal law duties, violations, and remedy math (deterministic, no LLM) • subscription-letter ($2.00): Citation-locked subscription demand letter — refund / unconditional-gift / cancellation-obstruction ($2) • check ($0.50): Verify which deals are real at a store right now • giftcard ($0.25): Report live discounted gift-card rates for a brand • subscription-check ($0.25): Deterministic $0.25 preview of the subscription demand letter • check-lite ($0.25): Deterministic $0.25 subset of deal-check — merchant-feed offers only

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoA specific claimed promo code to verify against first-party sources
itemNoSpecific product name (e.g. Samsung 65 inch QN90B, Dyson V15)
langNolang
eventNoSale event name (e.g. black-friday, prime-day, cyber-monday)
queryNoProduct name or description (e.g. 65 inch TV, AirPods Pro)
stateNostate
storeNoStore or restaurant name (e.g. Target, Chilis, Nike)
actionYesWhich endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription-rights | subscription-letter | check | giftcard | subscription-check | check-lite
budgetNoMaximum budget in USD
countryNocountry
categoryNoProduct category filter (e.g. electronics, appliances, clothing)
retailerNoretailer
servicesNoservices
no_consentNono_consent
trial_daysNotrial_days
seller_nameNoseller_name
seller_typeNoseller_type
signup_dateNosignup_date
product_kindNoproduct_kind
consumer_nameNoconsumer_name
no_disclosureNono_disclosure
total_chargedNototal_charged
cancel_blockedNocancel_blocked
discovery_dateNoYYYY-MM-DD you discovered the practice — drives OR 1-yr and GA 2-yr discovery clocks
signup_channelNosignup_channel
small_businessNosmall_business
no_trial_noticeNono_trial_notice
cancel_attemptedNocancel_attempted
written_contractNowritten_contract
last_renewal_dateNolast_renewal_date
initial_term_monthsNoinitial_term_months
no_renewal_reminderNono_renewal_reminder
renewal_term_monthsNorenewal_term_months
cancel_channel_mismatchNocancel_channel_mismatch
price_increase_no_noticeNoprice_increase_no_notice

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription-rights | subscription-letter | check | giftcard"New value: +"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription-rights | subscription-letter | check | giftcard | subscription-check | check-lite"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "store",
      -  "item",
      -  "compare",
      -  "event",
      -  "subscriptions",
      -  "cards",
      -  "stack",
      -  "student",
      -  "history",
      -  "subscription-rights",
      -  "subscription-letter",
      -  "check",
      -  "giftcard"
      -]New value: +[
      +  "store",
      +  "item",
      +  "compare",
      +  "event",
      +  "subscriptions",
      +  "cards",
      +  "stack",
      +  "student",
      +  "history",
      +  "subscription-rights",
      +  "subscription-letter",
      +  "check",
      +  "giftcard",
      +  "subscription-check",
      +  "check-lite"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription-rights | subscription-letter"New value: +"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription-rights | subscription-letter | check | giftcard"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "store",
      -  "item",
      -  "compare",
      -  "event",
      -  "subscriptions",
      -  "cards",
      -  "stack",
      -  "student",
      -  "history",
      -  "subscription-rights",
      -  "subscription-letter"
      -]New value: +[
      +  "store",
      +  "item",
      +  "compare",
      +  "event",
      +  "subscriptions",
      +  "cards",
      +  "stack",
      +  "student",
      +  "history",
      +  "subscription-rights",
      +  "subscription-letter",
      +  "check",
      +  "giftcard"
      +]
    • addedInput schema / properties / code
      Added value: +{
      +  "description": "A specific claimed promo code to verify against first-party sources",
      +  "type": "string"
      +}
  3. Changed25 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription_rights | subscription_letter"New value: +"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription-rights | subscription-letter"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "store",
      -  "item",
      -  "compare",
      -  "event",
      -  "subscriptions",
      -  "cards",
      -  "stack",
      -  "student",
      -  "history",
      -  "subscription_rights",
      -  "subscription_letter"
      -]New value: +[
      +  "store",
      +  "item",
      +  "compare",
      +  "event",
      +  "subscriptions",
      +  "cards",
      +  "stack",
      +  "student",
      +  "history",
      +  "subscription-rights",
      +  "subscription-letter"
      +]
    • addedInput schema / properties / cancel_attempted
      Added value: +{
      +  "description": "cancel_attempted",
      +  "type": "string"
      +}
    • changedInput schema / properties / cancel_blocked / description
      Previous value: -"true if cancellation was obstructed"New value: +"cancel_blocked"
    • addedInput schema / properties / cancel_channel_mismatch
      Added value: +{
      +  "description": "cancel_channel_mismatch",
      +  "type": "string"
      +}
    • addedInput schema / properties / consumer_name
      Added value: +{
      +  "description": "consumer_name",
      +  "type": "string"
      +}
    • addedInput schema / properties / discovery_date
      Added value: +{
      +  "description": "YYYY-MM-DD you discovered the practice — drives OR 1-yr and GA 2-yr discovery clocks",
      +  "type": "string"
      +}
    • addedInput schema / properties / initial_term_months
      Added value: +{
      +  "description": "initial_term_months",
      +  "type": "string"
      +}
    • addedInput schema / properties / last_renewal_date
      Added value: +{
      +  "description": "last_renewal_date",
      +  "type": "string"
      +}
    • changedInput schema / properties / no_consent / description
      Previous value: -"true if no affirmative consent was obtained"New value: +"no_consent"
    • addedInput schema / properties / no_disclosure
      Added value: +{
      +  "description": "no_disclosure",
      +  "type": "string"
      +}
    • changedInput schema / properties / no_renewal_reminder / description
      Previous value: -"true if no renewal reminder arrived"New value: +"no_renewal_reminder"
    • addedInput schema / properties / no_trial_notice
      Added value: +{
      +  "description": "no_trial_notice",
      +  "type": "string"
      +}
    • addedInput schema / properties / price_increase_no_notice
      Added value: +{
      +  "description": "price_increase_no_notice",
      +  "type": "string"
      +}
    • addedInput schema / properties / product_kind
      Added value: +{
      +  "description": "product_kind",
      +  "type": "string"
      +}
    • addedInput schema / properties / renewal_term_months
      Added value: +{
      +  "description": "renewal_term_months",
      +  "type": "string"
      +}
    • changedInput schema / properties / seller_name / description
      Previous value: -"Seller name for the letter"New value: +"seller_name"
    • addedInput schema / properties / seller_type
      Added value: +{
      +  "description": "seller_type",
      +  "type": "string"
      +}
    • addedInput schema / properties / signup_channel
      Added value: +{
      +  "description": "signup_channel",
      +  "type": "string"
      +}
    • changedInput schema / properties / signup_date / description
      Previous value: -"YYYY-MM-DD — selects the rule version in force"New value: +"signup_date"
    • addedInput schema / properties / small_business
      Added value: +{
      +  "description": "small_business",
      +  "type": "string"
      +}
    • changedInput schema / properties / state / description
      Previous value: -"US state code (CA|NY|DC|VA|IL|VT|OR|HI|DE|FL|CO|WA|GA encoded)"New value: +"state"
    • changedInput schema / properties / total_charged / description
      Previous value: -"USD total from your billing records"New value: +"total_charged"
    • addedInput schema / properties / trial_days
      Added value: +{
      +  "description": "trial_days",
      +  "type": "string"
      +}
    • addedInput schema / properties / written_contract
      Added value: +{
      +  "description": "written_contract",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / state / description
      Previous value: -"US state code (CA|NY|DC|VA|IL|CO|WA encoded)"New value: +"US state code (CA|NY|DC|VA|IL|VT|OR|HI|DE|FL|CO|WA|GA encoded)"
  5. Changed9 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history"New value: +"Which endpoint to call. Options: store | item | compare | event | subscriptions | cards | stack | student | history | subscription_rights | subscription_letter"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "store",
      -  "item",
      -  "compare",
      -  "event",
      -  "subscriptions",
      -  "cards",
      -  "stack",
      -  "student",
      -  "history"
      -]New value: +[
      +  "store",
      +  "item",
      +  "compare",
      +  "event",
      +  "subscriptions",
      +  "cards",
      +  "stack",
      +  "student",
      +  "history",
      +  "subscription_rights",
      +  "subscription_letter"
      +]
    • addedInput schema / properties / cancel_blocked
      Added value: +{
      +  "description": "true if cancellation was obstructed",
      +  "type": "string"
      +}
    • addedInput schema / properties / no_consent
      Added value: +{
      +  "description": "true if no affirmative consent was obtained",
      +  "type": "string"
      +}
    • addedInput schema / properties / no_renewal_reminder
      Added value: +{
      +  "description": "true if no renewal reminder arrived",
      +  "type": "string"
      +}
    • addedInput schema / properties / seller_name
      Added value: +{
      +  "description": "Seller name for the letter",
      +  "type": "string"
      +}
    • addedInput schema / properties / signup_date
      Added value: +{
      +  "description": "YYYY-MM-DD — selects the rule version in force",
      +  "type": "string"
      +}
    • addedInput schema / properties / state
      Added value: +{
      +  "description": "US state code (CA|NY|DC|VA|IL|CO|WA encoded)",
      +  "type": "string"
      +}
    • addedInput schema / properties / total_charged
      Added value: +{
      +  "description": "USD total from your billing records",
      +  "type": "string"
      +}
  6. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It adds meaningful behavioral context by disclosing per-endpoint pricing (e.g., '$0.05', '$2.00'), highlighting deterministic versus LLM behavior ('subscription-rights — deterministic, no LLM'), and noting citation-locked output for the demand letter. It does not cover auth, rate limits, or side effects of mutating endpoints like 'store', but the cost and determinism disclosures are substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with a front-loaded summary and a bulleted endpoint list. Each endpoint has a concise one-line purpose and price. Some information is redundant with the schema's action enum, but the pricing and endpoint-specific notes earn their place. A slightly tighter grouping or explicit parameter mapping would improve it, but it remains readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 35 parameters and 15 endpoints, the description gives a solid endpoint-level overview and costs, but it does not map which parameters apply to which endpoint, nor does it describe return formats. Since there is no output schema, the description leaves the agent to infer expected outputs from endpoint names. This is sufficient for simple tasks but incomplete for complex invocations like the subscription-letter endpoints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and parameter descriptions already explain fields like item, store, event, and query. The tool description adds no parameter-level semantics beyond what the schema provides; it only lists endpoint names. Baseline of 3 is appropriate since the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'DealPulse: Global deal intelligence API' and enumerates 15 distinct endpoints with specific intents (e.g., 'Best deal on a specific product', 'Live price comparison across retailers'). This clearly identifies the tool's function and differentiates it from sibling pulse tools by focusing on deals, coupons, cashback, and subscription savings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The endpoint list provides strong implicit usage guidance (e.g., use 'item' for a product, 'compare' for price comparison, 'event' for sales). However, it does not explicitly discuss when to prefer DealPulse over sibling tools like shopperpulse, nor does it state any exclusions or alternatives. The guidance is clear but stops short of full when-to-use vs. when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.