Skip to main content
Glama

Server Details

US bank, savings and credit-card signup bonuses, each source-checked, with expiry dates.

Ownership verified
Status
Healthy
Uptime
100.0% over 30 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
entradox/agent-ledger-benefits-city
GitHub Stars
0

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation4/5

Each tool has a stated use-case trigger, and get_bonus (full detail) vs search_bonuses (summary listing) vs compare_bonuses (side-by-side) are meaningfully separated. expiring_soon overlaps conceptually with a filtered search_bonuses, but the description explicitly carves out the timing use case, leaving only minor confusion.

Naming Consistency3/5

Four tools follow a verb_noun pattern (get_bonus, search_bonuses, compare_bonuses), but expiring_soon is an adjective-style name and the two meta tools use a noun-prefix style (benefits_api_docs, benefits_examples). The conventions are mixed yet still readable and clearly grouped.

Tool Count5/5

Six tools is well-scoped for a signup-bonus lookup domain: one search, one detail, one compare, one timing filter, plus two lightweight support tools. No tool feels redundant or inflated.

Completeness4/5

The read-only surface covers discovery (search_bonuses), detail (get_bonus), comparison (compare_bonuses), and timing (expiring_soon), which matches the domain without needing create/update/delete. Minor gaps remain, e.g. no explicit listing by bank/provider or state filter, but agents can work around these.

Available Tools

6 tools
benefits_api_docsRead this server's documentationA
Read-only
Inspect

Use when you need field definitions, ordering guarantees or the error format before calling another tool.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
docsYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the doc's topical scope, which helps with the go/no-go decision, but says nothing about freshness, caching, size or whether the content is static — minor behavioral gaps for a docs endpoint.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the trigger condition comes first and each clause (field definitions, ordering guarantees, error format) earns its place by scoping the content.

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

Completeness4/5

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

With zero parameters, full schema coverage, an output schema covering the return payload, and annotations covering safety, the description supplies everything needed to decide to call it. Only a note on staleness or scope limits would add more.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. Schema coverage is 100% and the empty object schema is consistent with a no-argument docs read.

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

Purpose4/5

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

The description enumerates the concrete content the tool exposes ('field definitions, ordering guarantees or the error format'), which clarifies the resource well enough to separate it from siblings like benefits_examples, search_bonuses and get_bonus. It stops short of an explicit verb ('returns/reads the server docs') and leans on the title for the resource framing, so it is clear but not fully self-contained.

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

Usage Guidelines4/5

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

It gives a clear trigger — use it 'before calling another tool' when you need field definitions, ordering rules or error format. That is actionable context, but it names no alternatives or exclusions (e.g. when the examples or search tools are preferred instead).

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

benefits_examplesGet runnable example callsC
Read-only
Inspect

Use to copy a working example call instead of guessing tool arguments.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
examplesYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether the examples are scoped to a tool, returned as a list, or whether the output is static or live. With annotations carrying the safety burden, the marginal behavioral content is near zero.

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?

A single short sentence, front-loaded with the subject. It wastes no words, though the phrasing 'Use to copy...' is slightly informal and the sentence could have carried more routing information at no length cost.

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?

With no parameters, an output schema present, and annotations covering safety, the structured data carries most of the load, so the description is close to sufficient. What it still leaves open is the key routing question among five siblings: when an agent should call this instead of benefits_api_docs. That gap keeps it at minimum viable.

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

Parameters4/5

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

There are zero parameters, so per the rubric the baseline is 4 and there is nothing for the description to compensate for. The description's implicit warning against guessing arguments does not need to document parameters that do not exist.

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

Purpose3/5

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

The name and title both signal a retrieval of runnable examples, and the description states the intent (copy a working example call). But the verb is soft ('use to') and the description never says what is being fetched or from where, nor does it distinguish itself from the sibling benefits_api_docs, which an agent might reasonably pick instead.

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

Usage Guidelines2/5

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

It implies a situation (when you don't want to guess arguments), which is a mild use cue, but it gives no when-not guidance and never references benefits_api_docs, the obvious alternative sibling. The agent gets no rule for choosing between this and the docs tool.

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

compare_bonusesCompare 2-4 bonuses side by sideA
Read-only
Inspect

Use when a user is choosing between specific offers. Returns each offer's key fields plus a summary naming the highest bonus and the earliest expiry.

NameRequiredDescriptionDefault
idsYes2 to 4 bonus ids to compare, e.g. ['chase-total-checking-400', 'sofi-checking-savings-400'].

Output Schema

NameRequiredDescription
bonusesYes
summaryYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds output-level behavior (the summary highlights highest bonus / earliest expiry) but says nothing about auth needs, missing-id handling, or ordering, so it adds only modest value beyond the structured fields.

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

Conciseness5/5

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

Two sentences, zero filler: the usage condition comes first and the return shape second. Every clause earns its place and nothing is repeated from the schema or annotations.

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

Completeness4/5

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

For a simple read-only comparison tool with a full output schema and complete parameter documentation, the description supplies the missing usage context and need not explain return values. Minor gaps remain around error behavior for invalid or non-existent ids, which keeps it below a 5.

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 coverage is 100% and the 'ids' property already documents the 2-4 range with a concrete example. The description's phrase '2-4 bonuses' merely mirrors the schema's minItems/maxItems and adds no new syntax or format meaning, so the baseline 3 applies.

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

Purpose4/5

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

The description states a concrete output: each offer's key fields plus a summary naming the highest bonus and earliest expiry, which makes the comparison purpose inferable even though the verb 'compare' lives in the title rather than the text. It distinguishes itself from single-record siblings like get_bonus by covering multiple offers, but it never names a sibling explicitly.

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

Usage Guidelines4/5

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

'Use when a user is choosing between specific offers' gives a clear triggering scenario and implicitly contrasts with exploratory tools such as search_bonuses. It does not state when-not to use it or name the alternative for a single-offer lookup, so it falls short of full routing guidance.

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

expiring_soonList bonuses expiring soonA
Read-only
Inspect

Use when timing matters — a user asking what is about to end, or whether to act now. Offers with no stated end date are never included here.

NameRequiredDescriptionDefault
daysNoLookahead window in days (default 30).

Output Schema

NameRequiredDescription
bonusesYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint), so the bar is lower, and the description adds a genuinely non-obvious inclusion policy: offers with no stated end date are excluded. That materially changes how an agent should interpret empty or partial results, which the schema does not convey.

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?

Two short sentences with no filler, and the exclusion rule is placed last as a qualifier after the usage trigger. Slightly weak front-loading in that the first sentence leads with usage rather than stating the core action.

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

Completeness4/5

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

With one optional parameter at full schema coverage, an output schema to explain returns, and annotations carrying the safety profile, the description only needed to add usage context and any interpretive caveat — both of which it does. Naming the nearest sibling alternatative is the only notable omission.

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 the single 'days' parameter documents its default (30) and bounds (1-365). The description adds no additional meaning about the lookahead window, so the baseline of 3 applies.

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

Purpose3/5

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

The description never explicitly states the verb+resource ('list bonuses ending within a window'); that meaning is carried almost entirely by the name and title. The phrase 'a user asking what is about to end' implies the scope but gives no differentiation from sibling search_bonuses, which an agent could plausibly pick instead.

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

Usage Guidelines4/5

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

'Use when timing matters — a user asking what is about to end, or whether to act now' gives a concrete situational trigger that clearly separates this from a general lookup. It stops short of naming alternatives (e.g. search_bonuses) or stating when NOT to use it.

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

get_bonusGet one bonus offer in fullA
Read-only
Inspect

Use before recommending an offer, to read its exact requirements, minimum deposit, direct-deposit rules, expiry date, state availability and the date its terms were last verified. Quote the requirements rather than paraphrasing money amounts.

NameRequiredDescriptionDefault
idYesBonus id, e.g. 'chase-total-checking-400'. Use search_bonuses to find ids.

Output Schema

NameRequiredDescription
bonusYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish this is a safe read (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so an agent knows the safety profile. The description adds real value beyond that by surfacing the terms-verified date (a freshness signal) and an operational directive to quote money amounts verbatim rather than paraphrase — context annotations cannot carry. It omits failure behavior for unknown ids, keeping it from a 5.

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?

Two sentences with no filler: the first establishes the precondition and the payload, the second is a crisp output-handling rule. It opens with usage rather than a one-line statement of what the tool returns, so the core purpose is marginally back-loaded.

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

Completeness4/5

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

An output schema exists, so return fields need not be re-explained, and readOnly annotations cover the safety profile; what remains is when to call it can't be misread. The only gap is behavior on an invalid or unknown id, which is minor for a single-param read tool.

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?

With a single parameter at 100% schema description coverage, the schema already documents the id format and even points to search_bonuses for discovery. The description adds no parameter-level syntax or constraints beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description conveys a specific read operation on a single bonus offer and enumerates the fields it exposes (requirements, minimum deposit, direct-deposit rules, expiry, state availability, terms-verified date), which implicitly distinguishes it from search_bonuses/compare_bonuses. It never states the verb+resource directly ('fetch the full record for a bonus id'), leaving the purpose implied by the field list rather than declared.

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

Usage Guidelines4/5

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

Gives an explicit trigger: 'Use before recommending an offer', which tells the agent when this tool belongs in a workflow. It does not name alternatives such as search_bonuses (that routing hint lives only in the id parameter schema) and offers no when-not guidance, so it stops short of full routing clarity.

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

search_bonusesSearch bank and credit card signup bonusesA
Read-only
Inspect

Use when a user wants to find a US bank account, savings, credit card or brokerage signup bonus, or asks which offers are worth opening. Returns matching offers sorted by bonus value, highest first — except when balance_transfer is true, which sorts by intro window instead.

NameRequiredDescriptionDefault
limitNoMax results to return.
queryNoKeyword matched against bank/issuer, product name and the offer's requirement text, e.g. 'Chase', 'Sapphire' or 'balance transfer'.
stateNo2-letter US state code, e.g. 'TX'. Nationwide offers always match; regional offers match only their states.
bonus_typeNoRestrict to bank account, credit card, savings or brokerage signup bonuses.
balance_transferNoSet true to return only cards whose issuer states a 0% or intro rate on transferred balances. Results come back ordered by the length of that intro window, cheapest transfer fee first as the tie-break — NOT by bonus value, because these cards carry no signup bonus.
min_bonus_amount_usdNoMinimum bonus value in USD. For credit cards this is the estimated USD value of the points/miles bonus.
direct_deposit_requiredNoFilter on whether the bonus requires a qualifying direct deposit.

Output Schema

NameRequiredDescription
bonusesYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the bar is lower. The description still adds real behavioral value by disclosing the default sort order (bonus value, highest first) and the balance_transfer exception that re-sorts by intro window.

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

Conciseness5/5

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

Two sentences: the first front-loads the usage trigger, the second front-loads the default return ordering before the exception. No filler and nothing buried.

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

Completeness4/5

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

An output schema exists, so return fields need no explanation, and the description covers the one non-obvious output trait (result ordering). With 0 required parameters and full schema coverage, an agent has everything needed to call it, though sibling routing remains unaddressed.

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%, so all seven parameters are already documented in the schema, including the balance_transfer ordering rule and the direct-deposit filter. The description restates the balance_transfer sorting behavior but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('find a US bank account, savings, credit card or brokerage signup bonus') plus the user intent it serves ('which offers are worth opening'). It is clearly distinguishable from a generic search, but it never contrasts itself with siblings like compare_bonuses, expiring_soon or get_bonus.

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

Usage Guidelines4/5

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

It gives an explicit trigger condition ('Use when a user wants to find...') rather than leaving usage implied. However, it names no exclusions or alternatives, so an agent still has to infer when compare_bonuses or expiring_soon is the better pick.

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. 1 tool update
    • Changedsearch_bonuses2 fields changed
      • addedInput schema / properties / balance_transfer
        Added value: +{
        +  "description": "Set true to return only cards whose issuer states a 0% or intro rate on transferred balances. Results come back ordered by the length of that intro window, cheapest transfer fee first as the tie-break — NOT by bonus value, because these cards carry no signup bonus.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Keyword matched against bank/issuer and product name, e.g. 'Chase' or 'Sapphire'."New value: +"Keyword matched against bank/issuer, product name and the offer's requirement text, e.g. 'Chase', 'Sapphire' or 'balance transfer'."
  2. 4 tool updates
    • Changedcompare_bonuses5 fields changed
      • addedOutput schema / properties / bonuses / items / properties / bt_fee_min_usd
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_fee_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_intro_apr_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_intro_months
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / bonuses / items / required
        Previous value: -[
        -  "id",
        -  "bank_or_issuer",
        -  "product_name",
        -  "bonus_type",
        -  "bonus_amount_usd",
        -  "bonus_max_usd",
        -  "bonus_points",
        -  "annual_fee_usd",
        -  "requirements",
        -  "min_deposit_usd",
        -  "direct_deposit_required",
        -  "expiry_date",
        -  "states_available",
        -  "application_url",
        -  "source_url",
        -  "last_verified_date",
        -  "offer_history",
        -  "verification",
        -  "status",
        -  "eligibility",
        -  "sponsored",
        -  "apply_url",
        -  "disclosure_url"
        -]New value: +[
        +  "id",
        +  "bank_or_issuer",
        +  "product_name",
        +  "bonus_type",
        +  "bonus_amount_usd",
        +  "bonus_max_usd",
        +  "bonus_points",
        +  "annual_fee_usd",
        +  "bt_intro_apr_pct",
        +  "bt_intro_months",
        +  "bt_fee_pct",
        +  "bt_fee_min_usd",
        +  "requirements",
        +  "min_deposit_usd",
        +  "direct_deposit_required",
        +  "expiry_date",
        +  "states_available",
        +  "application_url",
        +  "source_url",
        +  "last_verified_date",
        +  "offer_history",
        +  "verification",
        +  "status",
        +  "eligibility",
        +  "sponsored",
        +  "apply_url",
        +  "disclosure_url"
        +]
    • Changedexpiring_soon5 fields changed
      • addedOutput schema / properties / bonuses / items / properties / bt_fee_min_usd
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_fee_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_intro_apr_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_intro_months
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / bonuses / items / required
        Previous value: -[
        -  "id",
        -  "bank_or_issuer",
        -  "product_name",
        -  "bonus_type",
        -  "bonus_amount_usd",
        -  "bonus_max_usd",
        -  "bonus_points",
        -  "annual_fee_usd",
        -  "requirements",
        -  "min_deposit_usd",
        -  "direct_deposit_required",
        -  "expiry_date",
        -  "states_available",
        -  "application_url",
        -  "source_url",
        -  "last_verified_date",
        -  "offer_history",
        -  "verification",
        -  "status",
        -  "eligibility",
        -  "sponsored",
        -  "apply_url",
        -  "disclosure_url"
        -]New value: +[
        +  "id",
        +  "bank_or_issuer",
        +  "product_name",
        +  "bonus_type",
        +  "bonus_amount_usd",
        +  "bonus_max_usd",
        +  "bonus_points",
        +  "annual_fee_usd",
        +  "bt_intro_apr_pct",
        +  "bt_intro_months",
        +  "bt_fee_pct",
        +  "bt_fee_min_usd",
        +  "requirements",
        +  "min_deposit_usd",
        +  "direct_deposit_required",
        +  "expiry_date",
        +  "states_available",
        +  "application_url",
        +  "source_url",
        +  "last_verified_date",
        +  "offer_history",
        +  "verification",
        +  "status",
        +  "eligibility",
        +  "sponsored",
        +  "apply_url",
        +  "disclosure_url"
        +]
    • Changedget_bonus5 fields changed
      • addedOutput schema / properties / bonus / properties / bt_fee_min_usd
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonus / properties / bt_fee_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonus / properties / bt_intro_apr_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonus / properties / bt_intro_months
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / bonus / required
        Previous value: -[
        -  "id",
        -  "bank_or_issuer",
        -  "product_name",
        -  "bonus_type",
        -  "bonus_amount_usd",
        -  "bonus_max_usd",
        -  "bonus_points",
        -  "annual_fee_usd",
        -  "requirements",
        -  "min_deposit_usd",
        -  "direct_deposit_required",
        -  "expiry_date",
        -  "states_available",
        -  "application_url",
        -  "source_url",
        -  "last_verified_date",
        -  "offer_history",
        -  "verification",
        -  "status",
        -  "eligibility",
        -  "sponsored",
        -  "apply_url",
        -  "disclosure_url"
        -]New value: +[
        +  "id",
        +  "bank_or_issuer",
        +  "product_name",
        +  "bonus_type",
        +  "bonus_amount_usd",
        +  "bonus_max_usd",
        +  "bonus_points",
        +  "annual_fee_usd",
        +  "bt_intro_apr_pct",
        +  "bt_intro_months",
        +  "bt_fee_pct",
        +  "bt_fee_min_usd",
        +  "requirements",
        +  "min_deposit_usd",
        +  "direct_deposit_required",
        +  "expiry_date",
        +  "states_available",
        +  "application_url",
        +  "source_url",
        +  "last_verified_date",
        +  "offer_history",
        +  "verification",
        +  "status",
        +  "eligibility",
        +  "sponsored",
        +  "apply_url",
        +  "disclosure_url"
        +]
    • Changedsearch_bonuses5 fields changed
      • addedOutput schema / properties / bonuses / items / properties / bt_fee_min_usd
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_fee_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_intro_apr_pct
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / bonuses / items / properties / bt_intro_months
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / bonuses / items / required
        Previous value: -[
        -  "id",
        -  "bank_or_issuer",
        -  "product_name",
        -  "bonus_type",
        -  "bonus_amount_usd",
        -  "bonus_max_usd",
        -  "bonus_points",
        -  "annual_fee_usd",
        -  "requirements",
        -  "min_deposit_usd",
        -  "direct_deposit_required",
        -  "expiry_date",
        -  "states_available",
        -  "application_url",
        -  "source_url",
        -  "last_verified_date",
        -  "offer_history",
        -  "verification",
        -  "status",
        -  "eligibility",
        -  "sponsored",
        -  "apply_url",
        -  "disclosure_url"
        -]New value: +[
        +  "id",
        +  "bank_or_issuer",
        +  "product_name",
        +  "bonus_type",
        +  "bonus_amount_usd",
        +  "bonus_max_usd",
        +  "bonus_points",
        +  "annual_fee_usd",
        +  "bt_intro_apr_pct",
        +  "bt_intro_months",
        +  "bt_fee_pct",
        +  "bt_fee_min_usd",
        +  "requirements",
        +  "min_deposit_usd",
        +  "direct_deposit_required",
        +  "expiry_date",
        +  "states_available",
        +  "application_url",
        +  "source_url",
        +  "last_verified_date",
        +  "offer_history",
        +  "verification",
        +  "status",
        +  "eligibility",
        +  "sponsored",
        +  "apply_url",
        +  "disclosure_url"
        +]
  3. 4 tool updates
    • Changedcompare_bonuses1 field changed
      • changedOutput schema / properties / bonuses / items / properties / bonus_type / enum
        Previous value: -[
        -  "bank_account",
        -  "credit_card",
        -  "savings"
        -]New value: +[
        +  "bank_account",
        +  "credit_card",
        +  "savings",
        +  "brokerage"
        +]
    • Changedexpiring_soon1 field changed
      • changedOutput schema / properties / bonuses / items / properties / bonus_type / enum
        Previous value: -[
        -  "bank_account",
        -  "credit_card",
        -  "savings"
        -]New value: +[
        +  "bank_account",
        +  "credit_card",
        +  "savings",
        +  "brokerage"
        +]
    • Changedget_bonus1 field changed
      • changedOutput schema / properties / bonus / properties / bonus_type / enum
        Previous value: -[
        -  "bank_account",
        -  "credit_card",
        -  "savings"
        -]New value: +[
        +  "bank_account",
        +  "credit_card",
        +  "savings",
        +  "brokerage"
        +]
    • Changedsearch_bonuses3 fields changed
      • changedInput schema / properties / bonus_type / description
        Previous value: -"Restrict to bank account bonuses, credit card signup bonuses, or savings account bonuses."New value: +"Restrict to bank account, credit card, savings or brokerage signup bonuses."
      • changedInput schema / properties / bonus_type / enum
        Previous value: -[
        -  "bank_account",
        -  "credit_card",
        -  "savings"
        -]New value: +[
        +  "bank_account",
        +  "credit_card",
        +  "savings",
        +  "brokerage"
        +]
      • changedOutput schema / properties / bonuses / items / properties / bonus_type / enum
        Previous value: -[
        -  "bank_account",
        -  "credit_card",
        -  "savings"
        -]New value: +[
        +  "bank_account",
        +  "credit_card",
        +  "savings",
        +  "brokerage"
        +]
  4. 6 tool updates
    • First observedbenefits_api_docs
    • First observedbenefits_examples
    • First observedcompare_bonuses
    • First observedexpiring_soon
    • First observedget_bonus
    • First observedsearch_bonuses

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search, filter, and monitor curated AI model API free credits and low-cost token promotions through eight tools, four resources, and three prompts — including finding deals expiring soon, checking eligibility and blocked conditions, and producing daily briefs.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Cold plunge, sauna and contrast-therapy venues across 23 US metros (548 venues). Every published water temperature and price is read from the venue's own pages and returned with its source URL, capture date and verbatim quote; every record carries the date it was last checked. Absent fields mean "not published", never zero. Five read-only tools: search_venues, get_venue, list_cities, get_city_stat
    5
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Self-hosted, read-only MCP server that connects banks, credit cards, loans, and brokerage accounts via Plaid. 9 tools for balances, transactions, recurring charges, liabilities, and investment holdings.
    9
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.