MCP 서버

Benefits City

io.github.entradox/benefits-city
금융 및 투자 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Searches, compares, and tracks expiration dates and requirements for US bank, savings, and credit-card signup bonuses.

benefits_api_docs
Read this server's documentation
Use when you need field definitions, ordering guarantees or the error format before calling another tool.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['docs'], 'properties': {'docs': {'type': 'string'}}, 'additionalProperties': False}
benefits_examples
Get runnable example calls
Use to copy a working example call instead of guessing tool arguments.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['examples'], 'properties': {'examples': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'tool', 'arguments'], 'properties': {'tool': {'type': 'string'}, 'title': {'type': 'string'}, 'arguments': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
compare_bonuses
Compare 2-4 bonuses side by side
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 4, 'minItems': 2, 'description': "2 to 4 bonus ids to compare, e.g. ['chase-total-checking-400', 'sofi-checking-savings-400']."}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bonuses', 'summary'], 'properties': {'bonuses': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'status': {'enum': ['active', 'expired', 'needs_review'], 'type': 'string'}, 'apply_url': {'type': ['string', 'null']}, 'sponsored': {'type': 'boolean'}, 'bonus_type': {'enum': ['bank_account', 'credit_card', 'savings'], 'type': 'string'}, 'source_url': {'type': ['string', 'null']}, 'eligibility': {'anyOf': [{'type': 'object', 'required': ['new_to_bank', 'once_per_lifetime', 'cooldown_months', 'issuer_rules'], 'properties': {'new_to_bank': {'type': ['boolean', 'null']}, 'issuer_rules': {'type': 'array', 'items': {'type': 'string'}}, 'cooldown_months': {'type': ['number', 'null']}, 'once_per_lifetime': {'type': ['boolean', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'expiry_date': {'type': ['string', 'null']}, 'bonus_points': {'type': ['number', 'null']}, 'product_name': {'type': 'string'}, 'requirements': {'type': 'array', 'items': {'type': 'string'}}, 'verification': {'anyOf': [{'type': 'object', 'required': ['method', 'verified_at', 'sources'], 'properties': {'method': {'enum': ['issuer_page', 'aggregator_consensus'], 'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified_at': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'bonus_max_usd': {'type': ['number', 'null']}, 'offer_history': {'type': 'array', 'items': {'type': 'object', 'required': ['amount_usd', 'valid_from', 'valid_to'], 'properties': {'valid_to': {'type': ['string', 'null']}, 'amount_usd': {'type': 'number'}, 'valid_from': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'annual_fee_usd': {'type': ['number', 'null']}, 'bank_or_issuer': {'type': 'string'}, 'disclosure_url': {'type': 'string'}, 'application_url': {'type': ['string', 'null']}, 'min_deposit_usd': {'type': ['number', 'null']}, 'bonus_amount_usd': {'type': 'number'}, 'states_available': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'last_verified_date': {'type': ['string', 'null']}, 'direct_deposit_required': {'type': 'boolean'}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['highest_bonus_usd', 'earliest_expiry'], 'properties': {'earliest_expiry': {'type': ['string', 'null']}, 'highest_bonus_usd': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
expiring_soon
List bonuses expiring soon
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 365, 'minimum': 1, 'description': 'Lookahead window in days (default 30).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bonuses'], 'properties': {'bonuses': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'status': {'enum': ['active', 'expired', 'needs_review'], 'type': 'string'}, 'apply_url': {'type': ['string', 'null']}, 'sponsored': {'type': 'boolean'}, 'bonus_type': {'enum': ['bank_account', 'credit_card', 'savings'], 'type': 'string'}, 'source_url': {'type': ['string', 'null']}, 'eligibility': {'anyOf': [{'type': 'object', 'required': ['new_to_bank', 'once_per_lifetime', 'cooldown_months', 'issuer_rules'], 'properties': {'new_to_bank': {'type': ['boolean', 'null']}, 'issuer_rules': {'type': 'array', 'items': {'type': 'string'}}, 'cooldown_months': {'type': ['number', 'null']}, 'once_per_lifetime': {'type': ['boolean', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'expiry_date': {'type': ['string', 'null']}, 'bonus_points': {'type': ['number', 'null']}, 'product_name': {'type': 'string'}, 'requirements': {'type': 'array', 'items': {'type': 'string'}}, 'verification': {'anyOf': [{'type': 'object', 'required': ['method', 'verified_at', 'sources'], 'properties': {'method': {'enum': ['issuer_page', 'aggregator_consensus'], 'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified_at': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'bonus_max_usd': {'type': ['number', 'null']}, 'offer_history': {'type': 'array', 'items': {'type': 'object', 'required': ['amount_usd', 'valid_from', 'valid_to'], 'properties': {'valid_to': {'type': ['string', 'null']}, 'amount_usd': {'type': 'number'}, 'valid_from': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'annual_fee_usd': {'type': ['number', 'null']}, 'bank_or_issuer': {'type': 'string'}, 'disclosure_url': {'type': 'string'}, 'application_url': {'type': ['string', 'null']}, 'min_deposit_usd': {'type': ['number', 'null']}, 'bonus_amount_usd': {'type': 'number'}, 'states_available': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'last_verified_date': {'type': ['string', 'null']}, 'direct_deposit_required': {'type': 'boolean'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_bonus
Get one bonus offer in full
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "Bonus id, e.g. 'chase-total-checking-400'. Use search_bonuses to find ids."}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bonus'], 'properties': {'bonus': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'status': {'enum': ['active', 'expired', 'needs_review'], 'type': 'string'}, 'apply_url': {'type': ['string', 'null']}, 'sponsored': {'type': 'boolean'}, 'bonus_type': {'enum': ['bank_account', 'credit_card', 'savings'], 'type': 'string'}, 'source_url': {'type': ['string', 'null']}, 'eligibility': {'anyOf': [{'type': 'object', 'required': ['new_to_bank', 'once_per_lifetime', 'cooldown_months', 'issuer_rules'], 'properties': {'new_to_bank': {'type': ['boolean', 'null']}, 'issuer_rules': {'type': 'array', 'items': {'type': 'string'}}, 'cooldown_months': {'type': ['number', 'null']}, 'once_per_lifetime': {'type': ['boolean', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'expiry_date': {'type': ['string', 'null']}, 'bonus_points': {'type': ['number', 'null']}, 'product_name': {'type': 'string'}, 'requirements': {'type': 'array', 'items': {'type': 'string'}}, 'verification': {'anyOf': [{'type': 'object', 'required': ['method', 'verified_at', 'sources'], 'properties': {'method': {'enum': ['issuer_page', 'aggregator_consensus'], 'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified_at': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'bonus_max_usd': {'type': ['number', 'null']}, 'offer_history': {'type': 'array', 'items': {'type': 'object', 'required': ['amount_usd', 'valid_from', 'valid_to'], 'properties': {'valid_to': {'type': ['string', 'null']}, 'amount_usd': {'type': 'number'}, 'valid_from': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'annual_fee_usd': {'type': ['number', 'null']}, 'bank_or_issuer': {'type': 'string'}, 'disclosure_url': {'type': 'string'}, 'application_url': {'type': ['string', 'null']}, 'min_deposit_usd': {'type': ['number', 'null']}, 'bonus_amount_usd': {'type': 'number'}, 'states_available': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'last_verified_date': {'type': ['string', 'null']}, 'direct_deposit_required': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}
search_bonuses
Search bank and credit card signup bonuses
Use when a user wants to find a US bank account, savings, or credit card signup bonus, or asks which offers are worth opening. Returns matching offers sorted by bonus value, highest first.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Max results to return.'}, 'query': {'type': 'string', 'description': "Keyword matched against bank/issuer and product name, e.g. 'Chase' or 'Sapphire'."}, 'state': {'type': 'string', 'description': "2-letter US state code, e.g. 'TX'. Nationwide offers always match; regional offers match only their states."}, 'bonus_type': {'enum': ['bank_account', 'credit_card', 'savings'], 'type': 'string', 'description': 'Restrict to bank account bonuses, credit card signup bonuses, or savings account bonuses.'}, 'min_bonus_amount_usd': {'type': 'number', 'minimum': 0, 'description': 'Minimum bonus value in USD. For credit cards this is the estimated USD value of the points/miles bonus.'}, 'direct_deposit_required': {'type': 'boolean', 'description': 'Filter on whether the bonus requires a qualifying direct deposit.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bonuses'], 'properties': {'bonuses': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'status': {'enum': ['active', 'expired', 'needs_review'], 'type': 'string'}, 'apply_url': {'type': ['string', 'null']}, 'sponsored': {'type': 'boolean'}, 'bonus_type': {'enum': ['bank_account', 'credit_card', 'savings'], 'type': 'string'}, 'source_url': {'type': ['string', 'null']}, 'eligibility': {'anyOf': [{'type': 'object', 'required': ['new_to_bank', 'once_per_lifetime', 'cooldown_months', 'issuer_rules'], 'properties': {'new_to_bank': {'type': ['boolean', 'null']}, 'issuer_rules': {'type': 'array', 'items': {'type': 'string'}}, 'cooldown_months': {'type': ['number', 'null']}, 'once_per_lifetime': {'type': ['boolean', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'expiry_date': {'type': ['string', 'null']}, 'bonus_points': {'type': ['number', 'null']}, 'product_name': {'type': 'string'}, 'requirements': {'type': 'array', 'items': {'type': 'string'}}, 'verification': {'anyOf': [{'type': 'object', 'required': ['method', 'verified_at', 'sources'], 'properties': {'method': {'enum': ['issuer_page', 'aggregator_consensus'], 'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified_at': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'bonus_max_usd': {'type': ['number', 'null']}, 'offer_history': {'type': 'array', 'items': {'type': 'object', 'required': ['amount_usd', 'valid_from', 'valid_to'], 'properties': {'valid_to': {'type': ['string', 'null']}, 'amount_usd': {'type': 'number'}, 'valid_from': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'annual_fee_usd': {'type': ['number', 'null']}, 'bank_or_issuer': {'type': 'string'}, 'disclosure_url': {'type': 'string'}, 'application_url': {'type': ['string', 'null']}, 'min_deposit_usd': {'type': ['number', 'null']}, 'bonus_amount_usd': {'type': 'number'}, 'states_available': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'last_verified_date': {'type': ['string', 'null']}, 'direct_deposit_required': {'type': 'boolean'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
추가됨
benefits_examples
2026년 10월 4일 2:40 AM
추가됨
benefits_api_docs
2026년 10월 4일 2:40 AM
추가됨
compare_bonuses
2026년 10월 4일 2:40 AM
추가됨
expiring_soon
2026년 10월 4일 2:40 AM
추가됨
get_bonus
2026년 10월 4일 2:40 AM
추가됨
search_bonuses
2026년 10월 4일 2:40 AM